Resumé for Milton Barber

Work Experience:

1/94 - 6/2004  Senior Staff Engineer
Sun Microsystems, Menlo Park, CA
Work on multiple different parts of the backends for the Sun compilers. During a portion of this period, I held the title of "Compiler Architect". I initiated, designed, and saw carried through a number of important innovations for Sun's compilers, including the creation of new method of communication between compiler frontends and backends that permitted both an increase in performance and a great increase in the modularity of compiler components. I also participated in Sun's research project for a new supercomputer for the DARPA competition.
Programming Language: C
Compiler Source Languages: C, Fortran 77, & Fortran 90.
Compiler Target Machines: Several different SPARC architectures.
3/89 - 12/93 President
Apogee Software, Inc., Campbell, CA
With a technical staff of just 5 people, including myself, Apogee Software implemented, from scratch, highly optimizing C and Fortran 77 compilers and marketed them successfully. Three very large computer companies purchased the source code and started optimizing compiler projects based on Apogee technology. On SPARC, the compilers outperformed Sun's compilers and were used to quote SPEC numbers by Sun. Technically, I contributed the instruction scheduling and alias analysis portions of the compiler. Administratively, I guided the company to profitability starting with the second year, and closed the significant business deals that made the company successful.
Programming Language: C
Compiler Source Languages: C & Fortran 77.
Compiler Target Machines: RS6K, SPARC, M88K, & Intergraph Clipper.
10/88 - 3/89 Founder & Senior Programmer
Apogee Software, Inc., Santa Clara, CA
I joined with the principals from the Cydrome compiler department to found Apogee Software, planning to bring supercomputer compiler optimization techniques to UNIX workstations.
6/88 - 8/88 Senior Programmer
Cydrome Inc., Milpitas, CA
Cydrome was a mini-supercomputer start-up. The machine was a unique VLIW-based design organized for high performance on scientific loops via hardware support for software pipelining. During the three months I was at Cydrome, I studied the architecture and the design of the compiler, and had begun design of a new mode of instruction scheduling. Cydrome laid off 2/3 of the technical staff on 8/30/88 and folded completely shortly thereafter.
Programming Language: C.
Compiler Source Language: Fortran 77.
Compiler Target Machine: Cydra 5.
5/86 - 8/87 Principal Engineer
Workstation System Engineering
Digital Equipment Corp., Palo Alto, CA
Participation in the engineering process of producing a new workstation as a member of the architecture team. Study of graphics computations and hardware architectures for accelerating graphics computations. Organizational design of a floating-point accelerator chip based on VLIW ideas. Major contributions to the vector design of PRISM, a CRAY-based architecture planned (at the time) to be DEC's next generation processor.
Programming Language: C.
Compiler Target Machine: VAX.
6/85 - 1/86 Member of the Technical Staff
American Supercomputers Inc., Sunnyvale, CA
ASI was a mini-supercomputer start-up. The machine was CRAY XMP-compatible. The work consisted of: 1) global design work on a state-of-the-art vectorizing FORTRAN compiler, 2) porting PCC to the ASI machine, 3) detailed design of coding primitives (such as the ABI, the string operations, etc.) 4) Benchmarking the machine with Fortran, C, and COBOL benchmarks to estimate its performance, and 5) the global design of a language-independent code scheduler. The code scheduler design incorporated the new (at that time) idea of link-time scheduling to deal with the very large CRAY register set. ASI failed to get 2nd round funding and died 1/86.
Programming Language: C
Compiler Source Languages: C & Fortran 77.
Compiler Target Machine: CRAY XMP.
12/75 - 6/85 Software Consultant
Summit Software, Los Gatos, CA
Varied work as an independent software consultant. This included the preparation of designs, the review of designs, the leading of design teams, the refereeing of design conflicts, and the teaching of classes. The large majority of the work was in area of compilers. During this period I had the opportunity to study many different compiler architectures, covering a wide spectrum of approaches.
5/73 - 12/75 Consultant (the next technical job grade above Senior Programmer)
System Design Dept.
Control Data Corp., Sunnyvale, CA
This was a "technical management" position. It carried the design responsibility for all compilers and compiler-related products for the CDC 6000/CYBER 70/CYBER 170 machines. The job responsibility meant assuring that proper design plans were in place prior to coding and that the final products conformed to the design plans. The actual work included the preparation of designs, the review of designs, the conducting of design review meetings, etc. During this period I initiated, coordinated, and carried through a shift from static memory management to dynamic memory management for the whole set of compilers and related support tools -- a multi-year multi-product effort.
10/69 - 5/73 Senior Programmer (final job grade)
Control Data Corp., Sunnyvale, CA
Programming experience on a variety of compilers and compiler-related products. This was mostly work on Fortran and PL/I compilers and on math libraries, but there was some work on COBOL, the macro assembler, and SYMPL (a JOVIAL-derived systems language).
Programming Languages: Assembler, SYMPL
Compiler Source Languages: Fortran 66, PL/I, COBOL, SYMPL.
Compiler Target Machines: The CDC 6000 family.
1/71 - 12/75 Member, ANSI X3J1
ANSI X3J1 is the PL/I standardization committee. Throughout its lifetime, a member of the X3J1 editing subcommittee, which actually wrote the standard, and from 2/72 to 9/73, Chairman of X3J11, the subcommittee responsible for making all language decisions.
9/65 - 10/69 Graduate student
Computer Science Dept.
Stanford University, Stanford, CA
Programming Languages: Assembler, ALGOL 60, LISP, Fortran II.
Computers: IBM 7090, Burroughs B5500, IBM 360.
4/69 - 6/69 Programmer
Control Data Corp., Palo Alto, CA
Fortran compiler maintenance.
Programming Language: Assembler.
Computer: CDC 6600.
4/68 - 10/68 Graduate Research Assistant
Stanford Linear Accelerator Center, Stanford, CA
Development of simulation models for the evaluation of time-sharing systems.
Programming Language: PL/I.
Computer: IBM 360/91.
Summer of 1967 Programmer
Scientific Computation Lab
Loma Linda University, Loma Linda, CA
Graphics applications, design & development of remote graphics terminals.
Programming Languages: Assembler & Fortran.
Computer: IBM 1620.
Summer of 1966 Programmer
Control Data Corp., Palo Alto, CA
Participation in the development of an optimizing Fortran compiler (the project was CDC FTN Extended 1.0, the first compiler to have modern instruction scheduling). This marks the beginning of my involvement with optimizing compilers. I also did some mathematical subroutine library development.
Programming Language: Assembler.
Computer: CDC 6600.
7/64 - 9/65 Director
Scientific Computation Lab
Loma Linda University, Loma Linda, CA
Managing a small university computer lab, scientific programming, biomedical modeling, graphics applications, design & development of a graphics terminal.
Programming Languages: Assembler & Fortran.
Computer: IBM 1620.
7/63 - 7/64 Instructor in Physics & Director, Computer Lab
Pacific Union College, Angwin, CA
Managing a small college computer lab, teaching Physics and Computer Programming, miscellaneous application programming.
Programming Languages: Assembler & INTERCOM.
Computer: Bendix G-15.
Summers of 1960, 1961, & 1962 Programmer
Bendix Computer Division, Bendix Corp., El Segundo, CA
Miscellaneous utility development and junior programming tasks.
Programming Language: Assembler.
Computers: Bendix G-15 & G-20.
9/59 - 6/63 Programmer
Computer Lab, Pacific Union College, Angwin, CA
Miscellaneous application development and junior programming tasks (part-time, during college).
Programming Language: Assembler.
Computer: Bendix G-15.