ascii abstract syntax tree ada lovelace alain colmerauer algorithm alonzo church aspect-oriented programming assembly language association for computing machinery autocode bell labs block structure burroughs large systems cobol comtran charles babbage code compiler computational complexity theory computer architecture context-free grammar dennis ritchie difference engine flow-matic functional programming generic programming grace hopper herman hollerith history of artificial intelligence history of computer hardware in soviet bloc countries history of computer science history of computing history of computing hardware history of laptops history of operating systems history of personal computers history of software engineering history of the internet history of the world wide web history of the graphical user interface jacquard loom konrad zuse kristen nygaard lambda calculus list of programming languages logic programming metaprogramming mixin niklaus wirth object-oriented programming ole-johan dahl perl player piano programming language programming style prolog robert kowalski robin milner sql simula smalltalk source code squeak statement block structured programming timeline of computing timeline of programming languages train turing machine unicode van wijngaarden grammar xml