The invention of a programming language

Cultures of Programming — Part 3

Tomas Petricek, Charles University, Prague

tomas@tomasp.net
https://tomasp.net
@tomasp.net

How did we get

From plugging cables...
Programming the ENIAC

...to languages?
Algol language definition

Metaphors

Computers as giant electronic brains

What was a com­puter in the 1940s?

Female computers doing numerical calculations by hand!

Patsy Simmers, Mrs. Gail Taylor, Mrs. Milly Beck, Mrs. Norma Stec

ENIAC 1945 demonstration

Trajectory of a shell in 20 sec, not 40 hours

Labeled ping pong balls showing the "memory"

Electronic brains

Popular imagination

  • Anthropomorphic metaphor
  • Portrayal in media
  • Berkeley's 1949 book

Cybernetics movement

  • Post-World War II movement
  • Self-regulative control systems
  • Electronic and biological alike

Collaboration

Hacker programming tricks

EDSAC computer (1949)

Initial orders

  • Read program from the tape
  • Support for sub-routines

External orders

  • Non-standard codes
  • Interpretive routines

Debugging tricks

  • Step-by-step execution
  • Postmortem tapes

Sub-routine library

Open sub-routines
Copied at each point

Closed sub-routines
Using control transfer

Program coding

Before a language

  • Brief Code - John Mauchly (BINAC, 1949)
  • A-0 - Grace Hopper (UNIVAC, 1951-2)
  • Autocode - Alick Glennie (Manchester, 1952)

Brief Code /
Short Code

Step 2 to Step 3 translation done automatically
by an editor

Not exactly a
language yet...

Collaboration

Mathematical theories

Formal language

Language models in logic

  • Tarski, Carnap, early 20th century
  • Language starts with a set of symbols

Language models in linguistics

  • Formal structural linguistics
  • Ongoing research on machine translation
  • Chomsky's grammars (late 1950s)

Translation metaphor

Hopper's illustration of the A-2 compiler (1954)

From giant electronic brains to logic and linguistics

Formal languages and grammars for description

Collaboration

Managerial need

Software gap

More software needed

  • Industry crisis perception
  • Getting the computers
    to do what we need!

Programming is the limit

  • Creating software is hard
  • Hiring programmers is hard
  • Also, excluding women did not help!

Automatic coding

User groups and computer installation managers

Solve the software gap!

Common universal notations
Cross-machine compatibility
Allow program exchange
Teaching at universities

Would you guess the publication year (1957)?

Collaboration

Programming language

IBM FORTRAN
FORmula TRANslator

John Backus (IBM, 1957)

Translation metaphor, hacker tricks, managerial need

Not referred to as a programming language!

International Algebraic Language (IAL, 1958)

Algol - Algorithmic Language

Scientific notation

  • Extension of mathematical language
  • Description of algorithms in publication
  • Translatable into machine programs

Independent of a computer

A formal mathematical, linguistic object, not just a messy adjunct to the technical business of getting a computer to run.

Programming language

Remarkable new idea

  • Hacker culture
    Implementation tricks, sub-routines, external codes
  • Managerial culture
    Needs to simplify programming and universal codes
  • Mathematical culture
    Formal description using language of logic

Cultures of Programming

Home    Continue to Part 4