Paul Raveling
Notes on professional
experience in
system-level tools
As with operating systems, most experience in system-level tools is old
simply because of limited availability of opportunities for OS work in
more recent times. Application system tools could be considered a
related category.
- Compilers: I was responsible for Unify
Corporation's 4GL compiler for about 2 years in the early 1990s.
A more challenging compiler was one that I did as a UCLA Extension
class project. It compiled an ADA subset using recursive descent
parsing for most language syntax, operator precedence parsing for
expressions, and code generation to emit C code. The compiler supplied
a moderate level of optimization.
- Assemblers: I developed the MACN-11 cross assembler to
support resarch at USC-ISI and other research organizations on the
ARPANET which used the same platforms in the 1970s. MACN-11 executed on
TENEX, running originally on PDP-10s, to compile DEC's MACRO-11
language for the PDP-11. It supported the full set of MACRO-11 language
features with minor extensions.
- Loaders: I developed CCNLOAD in 1967 for UCLA's
OS/360 systems. This might have been the first linking loader: It
preceded IBM's OS Loader and was very close in time to ADP's LDR.
- Debuggers: As technical group manager and lead developer at
FutureData I managed development of debuggers for several families of
microprocessors: Intel 8086, 8085, 8080, Motorola 68000,
68010, 68020, 6809, Zilog Z8000 and Z80, and MOS Technology 6509.
Debuggers were structured as one main layer used for all
microprocessors and smaller processor-specific modules for each target
processor.
- GUI and image infrastructure: In the 1980s I developed a
package called the Img Software Set in connection with the Integrated
Interfaces research project at USC-ISI. I integrated this with an early
GIS system developed by two others at ISI to supply map graphics in a
GUI interface. Others on the project integrated that with an AI rule
engine, a knowledge base, and an Oracle database. Various data were
presented automatically as icons, text boxes, color marking, and
synthesized English language text, with the user interface making
decisions autonomously under the guidance of a small rule set.
I developed several pre-GUI user interfaces with limited
multi-window support for a variety of uses prior to availability of
bit-mapped graphics, using capabilities of "smart" terminal hardware
with only text capabilities. This ranged from the IBM 2848/2260
starting in 1967 through HP terminals in the late
1970s, FutureData systems in the early 1980s. An additional
example of a GUI interface preceding use of window systems was the
FutureNet ECAD system. My role with FutureNet was as an independent
consultant serving as project leader.
- Utilities: Innumerable small utilities. One
example used at Oracle is a Perl script for postprocessing lint
results. One from the time of the real time speech work at ISI was a
standalone downloading/uploading tool using an RS-232 connection on a
PDP-11. The earliest example was a sort function using a radix exchange
algorithm that was installed in the UCLA Computing Facility's IBSYS
system in 1963.