Terry's Computer Activities at UW - Madison

                                                                                                                                                            Return to Computers Page

In the late 1960's while at the University of Wisconsin Madison, Terry worked on several large scale projects.  Computers and there programming was an important part of Terry's college life.  He basically lived in the basement of the University of Wisconsin Computing Center (UWCC) and had an apartment conveniently less than one block away.

 

FLAIR - Fortran Language Assembler and Interpreter Routine

In the 1960's Donald Knuth, the author of an extremely significant series of textbooks for teaching Computer Science called The Art of Computer Programming, developed a hypothetical computer called MIX which had characteristics of a large number of then current computer architectures.  All the of programming examples in The Art of Computer Programming were presented in the Mix language.

As the MIX Computer was entirely hypothetical, it was initially impossible for students to write and test programs written in MIX as a class assignment.

As a class project, Terry developed a Fortran IV language to MIX assembler code compiler and a MIX interpreter that would 'execute' the assembler code and generate the output of the MIX Fortran program.  The Fortran implementation has the require basic functionality such as input, output, and FORMAT capability but lacked features such as mathematical functions that were not required for programming classes.

It is Terry's understanding that UW made the FLAIR system available to other universities for their programming instruction.

 

AutoLing - Automated Linguist

Toward the end of the 1960's, Terry was hired to Professor Sheldon Klein to assist in enhancements to a massive, multi-person project called Autoling, an automated linguist- essentially a computer program that learned languages.  Its' objectives were ambitious:

The AUTOLING system represents an attempt to replace the human linguist with a machine in the process of linguistic fieldwork with an informant. To the extent that the attempt succeeds, the analytic and heuristic methodology of live linguists can be considered formalized. The current system consists of three as yet unjoined components: a morphological analyzer, a program for learning context-free phrase structure grammar, and a program for learning monolingual and bilingual transformations. All programs are written in ALGOL and operational on the Burroughs B-5500 computer. The capabilities of the system are illustrated with examples of its treatment of selected problems in English, Latin, Roglai, Indonesian, Thai, Chinese and German.  From: The Autoling System

Terry's involvement was with the morphological analyzer.  The basic capability of AutoLing was to learn from a human informant, the context-free transformational grammar of a language.  Context-free means that while AutoLing was learning the grammar rules, it did not have any concept of the meaning of the words there were being used to teach the language.  Morphology adds meaning the words by analyzing word that are entered into morphemes

In English grammar and morphology, a morpheme is a meaningful linguistic unit consisting of a word such as dog, or a word element, such as the -s at the end of dogs, that can't be divided into smaller meaningful parts.

In this example from What is a Morpheme, The English word 'dog' represents a four-legged furry mammal and 's' means more than one.  The minimum meaning unit (morpheme) 's' can be appended to many words to indicate the sense of more than one.  Similarly, the morpheme 'pre' can be prepended to many words to indicate the sense of before or prior to.

There is a paper available written by Terry and Professor Klein explaining the operation the morphological analyzer. An Interactive Program for Learning the Morphology of Natural Languages

 

Extensions to the Burroughs B5500 Operating Software

As discussed in the Computer History Page The Burroughs B5500 had an architecture ideally suited for applications requiring recursive calling of program routines.  Another aspect of its data storage was its ability to store data in n-dimensional arrays of data rather than the (plane, row, column) limited capability of other computer architectures.  The B5500 managed these arrays by storing the entire structure on a disk drive and having only the current uses row in memory.  If another row was required, a page-fault occurred and the operating system wrote the current row back to the disk if the 'change-bit' was on and retrieved the requested row.  This architecture allowed a relatively small memory to support several dozen simultaneous programs.

During the Autoling project, most of the work was done during the third shift at the UWCC when the project as basically the only user.  Terry felt that productivity could be increased if it was possible to override the standard process of storing array rows to indicate programmatically that certain very frequently used rows were 'locked in memory'.  In order to allow for this enhancement, Terry added syntax to the ALGOL complier to allow a program to indicate that a row was to be locked until unlocked.  This was made significantly easier as the B5500 ALGOL complier was written in ALGOL and the changed version could be compiled and executed as like any other program.

The second change was more interesting, it required a modification to the B5500 operating system, the Master Control Program (MCP) to understand the request for array row locking made by the complied ALGOL program and effect the request locking and unlock action.  The MCP was written in ESPOL, a dialect of ALGOL with addition instructions to emit machine instruction syllables.  Terry made a copy of the MCP source code and made the required modifications to properly interpret requests made to the MCP to lock and unlock specific rows.  Extensive runs of the Autoling program utilizing compiled code from the modifed ALGOL compiler was made after the B5500 was reboot with the modified MCP operating system.