H. Conrad Cunningham
24 August 2017
Acknowledgements: These slides accompany section 1.2, “Evolving Computer Hardware Affects Programming Languages” of Chapter 1 “Fundamental Concepts” of “Introduction to Functional Programming Using Haskell”.
Advisory: The HTML version of this document may require use of a browser that supports the display of MathML. A good choice as of August 2017 is a recent version of Firefox from Mozilla.
ENIAC (Electronic Numerical Integrator and Computer) completed 1946
Processors
Main memory
Processors per machine
External storage
Processors per person
Physical presence
Range of applications
Cost of human staff to support?
Computers versus humans
Processor time and memory
Problem size
Computers versus applications
Security
First using cables and switches
Machine language
Assembly language
High-level languages appeared in mid-1950s
Allocate/deallocate memory automatically rather than manually
Interpret rather than compiled to machine code
Exploit multicore systems rather than just one processor
Incorporate declarative features rather than imperative