adriaan van wijngaarden atlas autocode besm brian randell burroughs corporation burroughs large systems cobol comecon compiler computer programming computer science context-free grammar cyrillic alphabet data general eclipse donald knuth espol es evm eth zurich edinburgh imp elliott algol english electric deuce evaluation strategy hello world program iswim imperative programming jovial john backus kristen nygaard lisp machine meta ii man or boy test neliac newp niklaus wirth ole-johan dahl p-code machine peter naur procedural programming programming language programming paradigm pseudocode ravi sethi s-algol simula structured programming thomas eugene kurtz thunk turing univac van wijngaarden grammar wally feurzeig whetstone zam