CSci 555: Functional Programming
Spring 2016


Effect of Computing Hardware Evolution on Programming Languages

Note: These brief notes are expanded from the handwritten notes used by the instructor for the lecture/discussion on this topic in CSci 450/503 (Organization of Programming Languages) on 27 August 2014.

When were the first "modern" computers developed? That is, programmable electronic computers.

Although the mathematical roots of computing go back more than a thousand years, it is only with the invention of the programmable electronic digital computer during the World War II era of the 1930s and 1940s that modern computing began to take shape.

One of the first computers was the ENIAC (Electronic Numerical Integrator and Computer), developed in the mid-1940s at the University of Pennsylvania. When construction was completed in 1946, the ENIAC cost about $500,000. In today's terms, that is more than $5,000,000. It weighed 30 tons, occupied as much space as a small house, and consumed 160 kilowatts of electric power.

The ENIAC and most other computers of that era were designed for military purposes, such as calculating firing tables for artillery or breaking codes. As a result, many observers viewed the market for such devices to be quite small. The observers were wrong!

Electronics technology has improved greatly in 70 years. Today, a computer with the capacity of the ENIAC would be smaller than a coin from our pockets, would consume little power, and cost just a few dollars on the mass market.

How have computer systems and their use evolved over the past 70 years?

How have these changes affected programming practice?

The first higher-level programming languages began to appear in the 1950s. IBM released the first compiler for a programming language in 1957--for the scientific programming language Fortran. Although Fortran has evolved considerably during the past 60 years, it is still in use today.

How have the above changes affected programming language design and implementation over the past 60 years?

As we study programming and programming languages in this course--in particular functional and logic languages--we need to keep the above nature of the contemporary programming scene in mind.


UP to CSci 555 Lecture Notes root document?


Copyright © 2016, H. Conrad Cunningham
Last modified: Thu Apr 21 07:43:43 CDT 2016