II. There are only 5 actions that a computer has
to
perform in order to do "anything"
III. There are only 3 ways of combining these
actions (into more complex ones)
that are needed in order for a computer
to do "anything"
- Every problem requires you to do something to
(i.e., perform some action
on)
some objects in order to
transform them in
some way
- Therefore, programming languages need
nouns, verbs, & rules
of grammar
to describe these transformations
* Insight I = only need 2
nouns
* Insight II = only need
5 verbs
* Insight III = only need
3 rules of grammar
& they are nouns, verbs,
& rules
that a
computer can easily deal with.
(e.g., Morse code: dots & dashes)
a) - Every instruction
can
be expressed in some
language (English, Pascal, Java, ...)
i.e., as a sequence ("string") of
words, numerals, etc.
-
Every letter of every word
can be expressed as a numeral
e.g., A = 1, ..., Z = 26
e.g., ASCII
code
* has codes for caps, lower case,
symbols, numerals,
punctuation
* there are codes for other
alphabets (Unicode)
* langs like Japanese, Chinese,
Arabic, Hebrew, etc.,
pose other problems
- open area of research
-
Note:
A numeral is a representation for a
number;
e.g., 1, I, one, / , un, uno
are 6 numerals
representing the same number
5, V, five, ///// , cinq, cinque,
are 6 numerals
representing another number
-
Every numeral can be expressed
in binary notation
i.e., as 0s and 1s
e.g.,
decimal | binary |
---|---|
0 | 0 |
1 | 1 |
2 | 10 |
3 | 11 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
8 | 1000 |
9 | 1001 |
10 | 1010 |
11 | 1011 |
... | ... |
99 | |
100 | |
101 | |
... | |
999 | |
1000 |
* exericise for reader:
fill in the rest of the "binary" column
* decimal notation:
___ | ___ | ___ | ___ | ___ |
10000s
place |
1000s
place |
100s
place |
10s
place |
1s
place |
Each "place" is 10 times the one to its right.
e.g., 748 = 7 100s + 4 10s + 8 1s
= 7x100 + 4x10 + 8x1
= 700 + 40 + 8
NOTE: The symbols "0", "1", "2", "3",
"4", "5", "6", "7", "8", "9"
are called "digits"
* binary notation:
___ | ___ | ___ | ___ | ___ |
16s
place |
8s
place |
4s
place |
2s
place |
1s
place |
Each "place" is 2 times the one to its right.
e.g., 101 (in binary) = 1 4s + 0 2s + 1 1s
= 1x4 + 0x2 + 1x1
= 4 + 0 +
1
= 5 (in decimal)
NOTE: 5 (in decimal) and 101 (in
binary) are 2 numerals
representing the same
number.
NOTE: The symbols "0", "1" are called
"binary digits", or "bits" for short
-
0s and 1s can be physically represented
(or "implemented") by:
* electrical signals
(on/off, high/low voltage)
* magnets
(north/south,
magnetized/not magnetized)
* etc. -- anything with 2 states
> those 2 states are the 2 objects
that "0" and "1" are nouns for
-
BUT: This does NOT imply that
"computers (only) deal with
numbers"
Rather: (digital) computers deal with 2
states
e.g.
WRITE(7) could be coded
(or represented) in ASCII as:
8782738469405541
(where 87 is ASCII for "W", ...,
& 41 is ASCII for ")" )
NOTE: In ASCII, which runs from
"blank" = 32 (decimal)
= 00100000 (binary)
to "~" = 126 (decimal)
= 001111110 (binary),
"0" = 48, ..., "9" = 57, ...,
"A" = 65, ..., "Z" = 90
(& 0-31, 127-255 are either
not used or used for non-printing
"characters" like <return>)
which, converted to binary, would be:
01010111...00101001
(where 87 (decimal) = 01010111 (binary),
etc.)
-
How to represent more complex info?
* that's the study of "data structures"
(in computer science)
& "knowledge representation" (in AI)