Computer Architecture influences
Language Design:
-
Von Neumann Computer Architecture
- Data
and programs stored in the memory.
-
Memory is
separate from CPU
- Instructions and data are piped
from memory to CPU
- Features
of Imperative Language: using variables
to do assignment statements. Also,
iteration is
efficient
- Example
of Imperative Language: Fortran, Pascal, Cobol, C,.....


-
Functional Language is not as fast as Imperative Language.
- There is
no variable in Functional Language.
-
Parallel Architecture: try to speed up functional programs.
Programming Methodologies
-
1950s and early 1960s: Simple applications; worry about machine efficiency
-
Late 1960s: People efficiency became important; readability, better control
structures
-
structured programming
-
top-down design and step-wise refinement
-
1970's
Top
down design and stepwise refinement
get rid of GOTO , use DO/WHILE
Process - Oriented
-
Late 70's shift to data-oriented
method
Abstract Data Type (encapsulate)
-
1980's Object-Oriented
Design
inheritance and dynamic type binding
Data
abstraction + inheritance + polymorphism
Compare Smalltalk with C++ in chapter 11