Computer language history: Difference between revisions

From Hackers & Designers
Line 121: Line 121:


=== UML modelling language ===
=== UML modelling language ===
Visual notation to express design: [https://nl.wikipedia.org/wiki/Unified_Modeling_Language UML modelling language]
Visual notation to express design: UML modelling language


=== Margaret H Hamilton ===
=== Margaret H Hamilton ===

Revision as of 16:51, 21 October 2015

By Vadim Zaytsev

Notes by Anja, Maaike and Vicky

Introduction on Vadim

  • Vadim is also known as spider (Vadims alter ego)
  • His connection to Jeffrey: ascii café – anarchist café "free software needs a home"
  • Babel tower on a/his thesis
  • Knows Jimmy Wales from Wikipedia & Lydia Pyncher from Wikidata > Wikimedia Conference Netherlands
  • Participated in Wiki loves monuments 2011: cultural heritage project
  • Vadim also made pixel art and made the small blue star in Wikipedia in svg
  • Vadim also made a font
  • And he plays Ingress

History of computational linguistics

Language is the ability to acquire and use complex systems of communication, particularly the human ability to do so, and a language is any specific example of such a system. The scientific study of language is called linguistics.

How do we talk to computers?

Examples:

  • Doctor Who: Science fiction series from the 60's> people talking to machines using programming language called Algol 68
  • Startrek: Engineers travelling back in time speaking to computers, uses mouse as microphone but the keyboard and screen are the actual communication tools

Blaise Pascal

1642: Invented a wooden mechanical ‘computer’ or ‘calculator’ which had six digits input called the Pascaline

Charles Babbage

1837: The analytical engine, also a mechanical computer.

Ada Lovelace

1843: First programmer: Ada Lovelace translated and reviewed the book “Sketch of the Analytical Engine” by Charles Babbage. “Notes by the translator”. Her notes on the engine include what is recognised as the first algorithm intended to carried out by a machine. She introduced the concept of a variable in her writings.

Conceiving Ada -Film directed by American artist Lynn Hershman (1995)

Joseph Marie Jacquard

1801: The Jacquard Loom Uses punched cards, also called Jacquard Cards, to operate threads in a weaving machine – multi threaded (joke for hackers?) 

Mechanism also used to operate musical clocks and street organs. Can be viewed in Museum Speelklok in Utrecht.

Adriaan J. Van Wijngaarden

1948: Hired women that were good in mathematics to operate the calculator because they were cheaper. They were called “De Rekenmeisjes van Van Wijngaarden”. They knew how the machines worked and how to operate them.

Debugging punched cards

Adele Kate Goldstine Punched cards: don’t link them so you’re able to remove parts and debug the program.

"Language documentation is also software" (?)

Communication between CPU and memory

1935: John von Neumann invented communication between CPU and memory. Is still used as computer model.

Flow diagrams

Haskell Brooks Curry 1947: Logician. Mechanical translation to computer from flow diagrams. Three programming languages named after him: Haskell, Brooks and Curry. First programming language. Flow diagrams are the first computer language (John von Neumann, Herman Goldstine, Adele Goldstine) > an attempt to speak "to yourself in the future" but still very slow translation Pseudo code

Short code

Used short code. John Mauckly and Willam Schmitt

	00 is jump to the left
	01 is move your arms
	02 is sit down
	03 is random dance
	The program is: 03 00 01 02 00

Math.matic, Flow-Matic and Cobol 

Invented by Grace Murray Hopper

Math.Matic Implemented more words to the programming language so the program is readable.

Flow-Matic

	Example: Go from operation 13; if equal to operation 4; otherwise go to operation 2. 

1959:Cobol

Still in use now.

	Display ‘…’ ; Set ‘current player’

The end of COBOL

Ed Yourdon predicted the end of Cobol (but it's still here) 2000 issues programming with COBOL

Fortran

  • Fortran: Formula translator by John Backus
  • 1958: Algol. Ment as a global language. Backus wanted to generalise it.

APL language

- APL language by Kenneth Iverson (math madness…). Makes every program a one-liner. The problem with this language is that you need a special keyboard to program.

Example: prime number  (~R∊R∘.×R)/R←1↓ιR

Example: Conway's game of life life←{↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵}

Logo programming language

Seymour Papert co-invented the Logo programming language with Wally Feurzei. He is one of the pioneers of artificial intelligence. Remembered for its use of ‘turtle graphics’

Language development for audience

1974: language development for Audience by Radia Perlman Tortis (for kids) --> later MIT developed Scratch 

Libre office writer https://de.libreoffice.org/ > Free as in freedom not free as in free beer :-) https://scratch.mit.edu/ https://scratch.mit.edu/projects/70831348/#editor

Model-driven software development

By Markus Völter studies generic tools: PhD Model-driven software development or [MDSD] (https://en.wikipedia.org/wiki/Model-driven_software_development)

UML modelling language

Visual notation to express design: UML modelling language

Margaret H Hamilton

10936 software engineering in Apollo program

Software language engineering

Uniform treating of language.

Milestones

  •  Hardware
  • Universal hardware + programs
  • Automated code generation
  • Programming with words
  • Language documentation 
  • Domain-specific languages
  • Engineer languages when needed