When I arrived at Tandem in June of 1978, I dove into learning the Tandem Assembly Language (TAL). It was more C-like than assembly and it was proprietary to Tandem, but it was a pretty good language. My assignment was to create a Data Definition Language (DDL) compiler that would take COBOL-like data structure definitions, copy them into a database and generate COBOL, FORTRAN and TAL output files.
Mike Green (one of Tandem’s four founders) had written a Language Analyzer Left-to-Right (LALR) compiler that took Backus Nauer Form (BNF) input and generated a parser table. I wrapped a big switch statement around this, added in a scanner that tokenized the input stream and voila! I had a language processor.
Working with the LALR parser stack was great fun and led me to write “How To Build a Language Processor in 60 Minutes or Less.” I took the heart of the DDL compiler, stripped off all the DDL specific code and what remained was a general purpose template for building a language processor. This code was a big hit with the other Tandem developers and was used to create many other products.