A quick History of the CONCATINATIVE Programming

1930's                                                   1950's

theoretical

practical work

theories of Functional Programming

  • The Lambda Calculus (Alanzo Church)
  • Combinatory Logic (Moses Schönfinkel and Haskell Curry)

1930's                                                   1950's

theoretical

Lisp Haskel ML

functional Languages that came out of

Lambda calculus and

Combinatory Logic

1950's                                                   1970's

expressed as [Variables, Functions,

Combinators, and Applications]

Forth

1970 Chuck Moore

  • RPN (post-fix notation, mostly)
  • stack-based

practical work

Forth, the programming language.

UPS and Fedex: digital signature tablets 
Power companies: electrical switches
GE SONET switch: Forth is the OS and REPL 
NASA satellites run on Forth. 
The space shuttle’s robotic arm and flight navigation computers were programmed in Forth.

coded in Forth:

Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs

  • creates languages: FP, FP84, FL
  • makes a distinction between 'value-level' and 'function-level' languages

1977

 John Backus Turing Award lecture

theoretical

Postscript

  • RPN (post-fix notation)
  • stack-based

1982

practical work

Joy

  • RPN (post-fix notation)
  • stack-based
  • functional

2001 Manfred von Thun

theoretical

practical work

Concatenation Calculus

"The Theory of Concatenative Combinators"

all expressions denote functions […] juxtaposition…denotes function composition.

a search for minimal set of combinators:

swap, dup, zap, unit, cat, cons, i, dip

2002 Brent Kirby

theoretical

Factor

  • RPN (post-fix notation)
  • stack-based
  • functional
  • dynamic types, with an object system

2003 Slava Pestov

theoretical

practical work

Factor

2003 Slava Pestov

Cat

  • RPN (post-fix notation)
  • stack-based
  • functional
  • strongly typed

2006 Christopher Diggins

theoretical

practical work

Off shoots

  • RawrCat (github.com/ephsec/RawrCat)

Kitten

  • RPN (post-fix notation) also in-fix
  • stack-based
  • functional
  • strongly typed

2011 Jon Purdy

practical work

theoretical

Made with Slides.com