H. Conrad Cunningham
18 August 2018
Copyright (C) 2017, 2018, H. Conrad Cunningham
Acknowledgements: I created these slides in Fall 2017 and revised them in Summer 2018 to accompany what is now Section 1.2, Evolving Computer Hardware Affects Programming Languages, of the book Exploring Languages with Interpreters and Functional Programming.
Browser 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 2018 is a recent version of Firefox from Mozilla.
Survey the evolution of computers since the 1940’s
Examine how this affects the evolution of programming languages
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
Computer hardware has changed greatly since the 1940’s
Computing practice has changed as a result.
Programming languages have evolved to accommodate the evolving hardware and usage patterns.