The first program I wrote was in 1961, in Algol 60, on an EL X1 in Utrecht, where I studied Experimental Physics. From 1968 to 1970 I worked as a systems programmer at the Technion in Haifa, working with an Elliott 503, Algol 60, assembly code and punched tape, and an IBM-360 in PL/1 and PL/360, on punched cards.
From 1970 to 1982 I worked at the Mathematisch Centrum in Amsterdam, as part of a team trying to implement an Algol68 compiler on an EL-X8. There I gained experience with a CDC-6600 and its assembly language COMPASS. Then the PDP-11 and the VAX came along and I learned Unix, C, Emacs and troff.
After my PhD with Prof A. van Wijngaarden in 1982 I moved to The Vrije Universiteit, also in Amsterdam, where I worked on Andy Tanenbaum's Amsterdam Compiler Kit, taught programming languages and compiler construction, and wrote books on these subjects before and after my retirement in 2004.
After I finished my last CS book in 2012 I took up studying Korean which rekindled my interest in languages.
C and Emacs have stayed with me up to this day, but Unix has become MSDOS+GnuWin and around 2000 I began replacing troff by LaTeX.
Modern Compiler Design, 2nd Edition (2012)
Parsing Techniques - A Practical Guide, Second Edition (2008)
Modern Compiler Design (1st Edition, 2000, out of print)
Programming Language Essentials (1994)
Parsing Techniques - A Practical Guide (1st Edition, 1990, out of print)
Teckel — An Interpreter for Abstract Algorithms in LaTeX
Other Writings in Computer Science
he(ℒ2 ∩ ℒ2):
A Most Wonderful Theorem (2014)
Two-way Stack Automata and Compiling (2012)
Lecture on Parsing Using Push-Down Automata (2008, Draft)
"Parsing -- Who Needs It?",
Lecture at Markup Technologies '98 Conference, Nov 19-20, 1998, Chicago.
Computer Science Literature Summaries (until 2012)
Software Similarity Tester, new release, Version 3.0.2 (2017-12-15).
A LaTeX checker for nesting, syntax, and other problems.
A LaTeX error log analyser.
A program explaining LALR (bison) conflicts.
A Two-Level Sentence Generator
A program for printing book signatures from PostScript
Gnomesort - The simplest sort program (4 lines in C)
Numerical conversion from binary to mixed base -- without division
Legacy Software and Manuals
Some documentation of the early Dutch computer ZEBRA (1957)
Some material on the Dutch computer EL-X8
Some Algol 68 material (from miscellaneous sources)
Concurrent Versions System CVS (original, obsolete, version)
Magnetic Tape Handling Programs and Routines
Computer Science / Dick Grune /