1
Timeline

Here is a brief list of programming languages that are significant for one reason or another and that are/were used by many people or for a long time:

around 1960

Algol 60

IFIP, block structure, recursion, BNF syntax

dead

 

COBOL

business data processing

legacy

 

COMIT

MIT, string processing

Snobol

 

Fortran

IBM, workhorse for numerical problems

updated

 

Lisp

McCarthy, workhorse for artificial intelligence

updated

around 1965

APL

Iverson, numerical mathematics

J

 

Basic

Dartmouth, interactive programming

updated

 

PL/I

IBM, attempt at a universal language

dead

 

Simula

Dahl et al., simulation, class concept

SmallTalk

 

Snobol

Griswold, string processing

Icon

around 1970

Algol 68

very formally defined, updated successor to Algol 60

stillborn

 

C

Ritchie et al., workhorse for systems programming

 

 

Pascal

Wirth's first for academia

Delphi

around 1975

awk

Aho et al., scripting, report generation

Perl

 

bc

Unix, high precision interactive calculator

 

 

m4

Unix, macro processor

 

 

Prolog

Clocksin et al.,declarative programming

dying

around 1980

Icon

Griswold's successor to Snobol

exotic

 

Modula

Wirth's first for modular programming in academia

exotic

 

Objective C

Cox, NeXT, C with object orientation

MacOS X

 

SGML

Goldfarb et al., document markup

XML

 

sh

Bourne et al., Unix command languages

 

 

SmallTalk 80

PARC, proverbial object orientation

 

around 1985

Ada

DoD, designed through requirements

updated

 

C++

Stroustrup, C with object orientation

dying

around 1990

Oberon

Wirth's best C ever

exotic

around 1995

Java

Gosling et al., selection from C++ and Objective C

 

around 2000

C#

Microsoft's own brand of Java, common runtime

 

 

Haskell

Thompson, functional programming

 

 

XML

W3C, structured data representation

 

 

XSLT

W3C, functional language for XML manipulation

 

LEGO Mindstorms Timeline

 

Mindstorms is (part of) the title of a famous book, mostly about LOGO, by Seymour Papert .

Fred Martin and others at MIT created the Handy Board with Interactive C. This lead to the much smaller Cricket , just recently in a commercial version .

Already in 1984 FischerTechnik introduced a connection between their kits and a parallel computer interface. This led 1997 to a serial interface with a programmable microprocessor and just recently to a USB interface .

LEGO offered the Cybermaster with a radio connection in Europe and introduced the RCX with an infrared connection in the US in 1998. The details about the RCX were quickly disassembled and disclosed on the Internet and this lead to a multitude of programming environments. In 2000 LEGO produced a slightly extended firmware for the RCX and this time described the details in an extensive Software Development Kit .

LEGO added other programmable bricks: the Scout which can be accessed and programmed with the IR tower , and the MicroScout which can be programmed with a Visible Light Link from the Scout, and just recently the new brick for the Spybotics series. However, all of these bricks are much more limited then the RCX.

Controller Basics

 

All of these controllers use more or less the same architecture: there are outputs for motors and lamps, inputs for switches, light-sensitive diodes, and other sensors, and usually a simple display with switches to operate the unit.

All of this is accessible to a microprocessor — the RCX uses a Hitachi H8/300 chip .

There has to be at least a small program in read-only memory (ROM) that communicates with a host computer in order to load other programs into memory. LEGO and the MIT group mostly use infrared devices for communication; the Cybermaster is radio controlled.

Typically, the user code itself is compact and consists of byte codes which are interpreted by a program that is loaded into volatile memory and stays there until the batteries are empty. This is called firmware — together with the code in ROM it provides operating system services (access to the inputs and outputs) for the user code.

The RCX became so popular mostly because people were able to disassemble the ROM code and create their own firmware ( Interactive C , pbForth , legOS , leJOS , etc.).

LEGO published the byte code specifications for their firmware and people decoded the infrared protocol so that they could write byte code programs using arbitrary environments (Visual Basic, Not Quite C , Java , etc.).