Most Delphi developers know that Delphi is based on Pascal, and some of us were Turbo Pascal developers before Delphi 1.0 even came out. How many of you know the history of ALGOL, and its influence on people like Niklaus Wirth who created Pascal. Did you know that ALGOL is where Delphi got BEGIN and END from, for instance? Did you know that the final end in an ALGOL program has a dot, just like Pascal. How about colon and equals for assignment (A := 5;) and semicolons as separators? Yup. Algol. How about the fact that early Pascal code samples are often written with all keywords like BEGIN and END in uppercase is a holdover from the fact that original early computer character sets often lacked lowercase letters?

Most Delphi developers know that Delphi is based on Pascal, and some of us were Turbo Pascal developers before Delphi 1.0 even came out. How many of you know the history of ALGOL, and its influence on people like Niklaus Wirth who created Pascal.  Did you know that ALGOL is where Delphi got BEGIN and END from, for instance? Did you know that the final end in an ALGOL program has a dot, just like Pascal.  How about colon and equals for assignment (A := 5;) and semicolons as separators? Yup. Algol.  How about the fact that early Pascal code samples are often written with all keywords like BEGIN and END in uppercase is a holdover from the fact that original early computer character sets often lacked lowercase letters? 

If I've caught your interest, then you might be interested to read about the adventures of a programmer who worked at Burroughs who helped write their Algol compiler.  You might call it "Turbo Algol" as it was the fastest single-pass compiler for a structure programming language, in its day. It was the spiritual predecessor of Turbo Pascal, if you like, even though the original programmer of Turbo Pascal didn't use any of the code from "Burroughs Algol 60", he certainly used the concepts that were invented by that team, including the design for a recursive descent parser and a three stage scan/parse/emit compiler that are now common practice in all high performance single pass recursive descent binary compilers.  Oh, and how about the documentation for the Turbo Pascal compiler which included a flow-chart for the syntax?   That practice was adopted by the Turbo Pascal implementers because they saw Niklaus Wirth do it, and Niklaus Wirth learned about the practice from the first person to ever do it:

Richard Waychoff at Burroughs.  You've never heard of him, but you should know his story, if you care about the history of computing.  "don knuth" figures in the story too.  I'd guess he'd be in his 70's now, and some day I'd love to meet Waychoff, and drink a beer and talk about coding.

http://ed-thelen.org/comp-hist/B5000-AlgolRWaychoff.html
http://ed-thelen.org/comp-hist/B5000-AlgolRWaychoff.html

Comments

  1. That is a very cool thing.  Ada Lovelace was truly a pioneer.

    ReplyDelete
  2. I did not know of Waychoff, but knew most of the rest. The CPMUG collection actually had an Algol for CP/M, and I played with it a bit, but not very seriously. Before TP, I tried UCSD Pascal, Pascal/M from Sorcim, and Pascal/MT. I also briefly suffered with MS ISO Pascal. Waychoff's "railroad track" diagrams (or so they were called by Pascal days) were a phenomenal tool.

    ReplyDelete
  3. Thanks for sharing. It's always good to know the background of the evolution of a programming language (or principles).

    ReplyDelete
  4. Algol represents the first serious begin-end-block-oriented attempt towards an algorithmic/structured high-level language with subprograms.   Subprograms (sometimes called subroutines, or procedures) was the first form of organization that lead towards the "Structured programming" improvements which ultimately  are the predecessors of both OOP and Functional programming languages of today.  C fits in the "structured" (but not safe) category, which makes it a lot like ALGOL.

    W

    ReplyDelete

Post a Comment