home         what & why       overview       publications (w/descriptions)       projects (incomplete)        Sidebars (not yet)


Career Sketch

I began work in software in June of 1962, four days after graduating from Barnard College with a degree in math. Most of my work has revolved around programming languages and their compilers, data base models, natural language processing and, at a late date, some HCI (human-computer interfaces). And, in fact, my career can roughly be described as focusing on those subjects in turn, divided into two subsequences.

The first subsequence, dating from 1962 to 1990, and technically from compilers, to data bases + languages, to natural language processing, was a very fortunate one. It allowed me to work in areas central to the computer science of the time. Then there is a cycle back to compilers, explained, at least in part, by IBM's financial struggles in the late 1980s, which reduced opportunities.

Compilers: The compiler work began first, primarily with maintaining IBM’s FORTRAN II & IV pioneering optimizing compilers at IBM’s Service Bureau Corporation. Then, after leaving SBC for Computer Applications Incorporated, a small software company, I worked on a compiler for a special-purpose language for controlling the operation of a steam power plant. Following that, I managed development of the BASIC compiler of the IBM CALL/360 timesharing system (under IBM contract to CAI) and designed the interface which enabled use of a compiler. This was significant in that other small contemporary timesharing systems used BASIC interpreters, at a serious cost in performance. Finally, back at IBM proper, I joined the ACS project during its last phase, and was responsible for the design of the machine independent optimizer part of the compiler, reporting to Fran Allen. The design combined and extended ideas documented by (a) John Cocke and Fran Allen of IBM (both Turing award winners), (b) Jack Schwartz of NYU, who often consulted to the project, and (c) members of a Computer Sciences Corporation team who consulted to the project before I arrived.

Data Base Models and Programming Languages After ACS (and a short compiler-only extension), I changed focus, to data bases, working in a development lab. After studying then-existing data base models, I eventually led a group specifying database design tools for IBM’s Future Systems (FS) project. Following that, on a data dictionary project, my work involved critiquing current data models for the purpose, and I eventually outlined an alternative data model. Then, moving to IBM's Los Angeles Scientific Center in 1977, I adapted that data model and combined it with ideas from the Jack Schwartz's SETL language to obtain a programming language serving to erase the gap between local and database data access.

Natural Language Processing: LASC re-oriented to AI work circa 1984, and I chose to concentrate on natural language processing. After studying the subject, I organized and led a machine translation research group that designed a semi-interlingual approach centering around a shared lexicon as the focus of transformation rules. I also developed, and presented to many IBM-internal and other audiences, an in-depth description of IBM NLP research. And I helped organize two IBM-internal conference series, on programming languages and NLP, respectively.

Compilers, again: After LASC closed in 1990, I led a compiler tools group at the Palo Alto Scientific Center (PASC), and, when PASC also closed, moved to a development lab to build much of the dependency analysis component of an advanced Fortran optimizer.

Natural Language Processing, again: Retiring from IBM in 1995, I joined Xerox PARC’s Xerox Linguistic Environment (XLE) project, extending its grammar configuration tools, and also turning its generator prototype into a usable component.

Human Computer Interfaces and Natural Language Processing: Later at PARC, circa 2000, I became involved in HCI. This work was inspired by a one-time need to study many long-winded discussion forums associated with standards groups. So, some time later, I designed and built an email forum processor providing innovative ways of visualizing and summarizing forum content. I also began work on a fast, accurate symbolic NL parser, before retiring from PARC in 2004. (Afterwards I completed and published the NL parser, and built software for a local library friends group.)

I should also mention (a) that this overview doesn't cover all projects I've been involved in over the decades and (b) that technical details of much of the post-1977 work are given in papers listed and discussed in the publications section of this website.