actor model alan kay alonzo church carl hewitt category theory chomsky hierarchy cognitive science communicating sequential processes computability theory computational model computer science continuation coroutine domain-specific language foreign function interface formal semantics of programming languages fortran function-level programming gerald jay sussman greek alphabet ibm instruction set john backus journal konrad zuse kristen nygaard lambda lambda papers lambda calculus linguistics mathematics metaprogramming noam chomsky object-oriented programming language ole-johan dahl philip wadler process calculus program transformation programming language programming paradigm robin milner run-time system set theory simula smalltalk software engineering stephen cole kleene structure and interpretation of computer programs timeline of programming languages type system type theory virtual machine