- Early computers were difficult to program and use
- Input devices were switches, output devices were blinking lights
- All communication with the computer was in binary machine
language (1's and 0's)
- Programming in machine language was very tedious and error-prone
00000100 10000010
00000001 10000001
00000101 10000100
00001011 10000100
00001101 00010000
00010100 00000010
00000101 10000011
00001111 00000000
00010100 00000011
00000101 10000011
00001111 00000000
|
- Assembly language was invented as a shorthand for 1's and 0's
00000100 --> LOD (load)
00000001 --> SUB (subtract)
00000101 --> STO (store)
00000010 --> MUL (multiply)
10000001 --> X (memory location 129)
10000010 --> Y (memory location 130)
10000011 --> Z (memory location 131)
|
- Assembly language was easier to write, debug, and understand
Machine Code |
|
Assembly Code |
00000100 10000010
00000001 10000001
00000101 10000100
00001011 10000100
00001101 00010000
00010100 00000010
00000101 10000011
00001111 00000000
00010100 00000011
00000101 10000011
00001111 00000000
|
|
LOD Y
SUB X
STO T1
CPL T1
JMZ 16
LOD #2
STO Z
HLT
LOD #3
STO Z
HLT
|
- Programs called assemblers were written to do the translation from assembly
to machine language automatically
- Programming in assembly language was still tedious (but better than
machine language)
- High-level programming languages were invented to make assembly language
programming easier
Assembly Code |
|
High-Level Language |
LOD Y
SUB X
STO T1
CPL T1
JMZ 16
LOD #2
STO Z
HLT
LOD #3
STO Z
HLT
|
|
if (x > y) {
z = 2;
} else {
z = 3;
}
|
- Programs called compilers were written to do the translation from
high-level languages to machine language automatically
- First compiler written in 1952 by Grace Hopper

Grace Murray Hopper (1906-1992)
|
- Much computer science research since then has focused
on the development of ever more powerful and flexible computer
languages
-
FORTRAN developed by John Backus and a team of IBM programmers
in 1957
-
ALGOL developed in 1958 (ancestor of C)
-
COBOL developed in 1959 by Grace Hopper
-
LISP developed by John McCarthy at Stanford in 1958
-
BASIC developed in 1963 by Thomas Kurtz and John Kemeny at
Dartmouth
-
Pascal developed by Niklaus Wirth in 1968
-
Prolog developed by Alain
Colmerauer and Phillip Roussel in 1972
-
C developed by Brian Kernighan and Dennis Ritchie at Bell
Labs in early 1970s
-
Ada developed by U.S. DOD in early 1980s (named in honor of Lady
Lovelace)
-
Java developed in 1990s for the Internet by Sun Microsystems
-
Compilers translate a program to machine language all at
once
-
Interpreters translate a program to machine language line-by-line
|