For this lab, you will edit this lecture on the history of programming languages. Don't worry, you are not going to be tested on this lecture, and the homework assignment at the end of the document does not apply to you. You only have to format this file by following the instructions listed in lab. ----------------------------------------------------------------------
History of Programming Languages
Today's lecture will be a quick history of programming languages. Since 1957 when the first Fortran was introduced for the IBM 704, literaly hundreds of new programming languages have come and gone--well, some of them have gone, and others--like Fortran, have managed to stay around. The sheer number of languages makes it impossible to cover them all in any depth--indeed, even the most important languages we will only have time to discuss in shallow detail today. As a result, we talk about only the most important languages--those that had historical significance either for their new ideas or their influences on the languages that followed them.
Let me admit, up front, that I am not a history buff. So why, you might ask, do we waste a day on a "history lecture" at all, then? Well, there are two major reasons. First, this lecture will give you a brief introduction to the handful of languages we'll talk about in this course. Thus the short exposure to these languages you get today will serve as the scaffolding onto which we'll learn about language constructs and the languages to which they belong. Second, I hope that in this discussion, especially of early languages, you'll gain an appreciation for the historical contexts in which languages have been developed. Things we take for granted today--like interactive machines, standard keyboards and characters sets, etc., were (of course) not always around, and it is interesting to see how issues that no longer matter today played important roles back then. By understanding the differences between the historical contexts in which different languages were created, only then can we appreciate that we are, today, right now, framed in a computing context that, when viewed from 20 or 30 years from now, will probably seem like we are focusing on issues of perhaps trivial importance, and missing some big issues.
So, those goals in mind, let's talk about history. On page 39 of your book, there's a beautiful picture showing a timeline of languages, with a dot for each major language, and lines connecting languages that influenced other ones. Had I made any overheads for today, this would have been the primary one. (As I mentioned; I'm a little disorganized this week; by next I'll have some slides prepared before lecture.) I'm going to talk about a few of these languages and draw part of that diagram on the board; you needn't copy it as it's right from your textbook.
Computing in 1957 was largely scientific number crunching. Much hardware supported either integer operations, which floating point could be simulated on, or only floating point operations. IBM introduced its new IBM 704, which supported both integer and floating point operations, and this is the language on which the first successful programming language, Fortran, was built.
The idea for FORTRAN had been in the works for some time. The language compiler was advertised as one that would generate object code that was as efficient as hand-coded machine code, but the ease of the existing interpretive pseudo-code systems. Amazingly, FORTRAN did just that, and a new era of programming was born.
What was the language like? FORTRAN could use variables whose names were up to six characters long. It had both integers and floating point variables (based on the name: I-N integers). It had formatted input and output statements, to read and write data. It had an arithmetic IF statement, which compares two numbers and then branches to one of three locations depending...