Language and Compiler Design


Specification and implementation issues for general or special-purpose languages. Optimization, code-generation and compiler performance. Experience implementing complex language features and maintaining acquired technology.

I have developed compilers for C, C++, Pascal, Ada, Modula-2, FORTRAN, BLISS and many other languages. Significant use of lex and yacc parser tools, Diana IDL, experience with the internals of the GNU C Compiler and GNU binutils.

Either fixed-price or time-and-materials consulting engagements are possible. Activities can be at your site or remote over the Internet.

Languages:

 Ada Algol AWK APL
Basic Bliss C C++
COBOL FORTRAN LISP Modula-2
Pascal PL/1 Perl Simula-67
Smalltalk Snobol/SPITBOL Assembler Microcode
Verilog VHDL Java

Operating Systems:

 Unix/Linux (Solaris,OSF/1,HP/UX,AIX) Windows (NT/2000) MacOS 8,9,X
VAX/VMS RSX-11M/D TOPS-10/20
Domain/OS

Hardware:

 Intel IA32/IA64 PowerPC MIPS R3000
 ADI 2106x DSP Motorola 68k National 32k
 SPARC DEC Alpha VAX11
 PDP-11 PDP-10 PDP-8
 Ubicom IP2K ARM/XScale  

Education:

Experience:

Carbon Design Systems, Waltham MA

Verilog/VHDL compiler producing code that runs 10-1000x faster than competing simulators. Involved in parsing, sophisticated expression simplifier and code generation. Implemented arbitrary precision integer arithmetic package and bitfield manipulation with C++ templates. Hosted on SunOS and Linux, targetting Win32, Linux32, Linux64 or Sun.
Intel, Hudson, MA

Enhancements, performance analysis and target system support work for Xscale (ARM) compilers ­ working with gcc and Intel's Proton Compiler Technology.

Optimization-based tools for IA-64. Worked with Intel teams based in Shanghai, PRC and Haifa, Israel in specification, implementation and testing of complex compiler-like tools.

Embedded Chip Vendor, CA

C compiler for 8-bit chip. Supports almost-ANSI C (no i/o), including single-precision floating-point emulation. Chip has 4kb RAM, 64 kw instruction space and very strange instruction set. Modified simulator, assembler and linker to support special instructions..

Gigabit Router Startup, Acton, MA

Port GCC 1.1.2, and binutils 2.9.1 to proprietary RISC ASIC architecture having instruction-set specially tuned for parsing and manipulating IP packets. Implemented C compiler, assembler, linker and object tools. Implemented machine dependent code optimizations to meet stringent code-size targets on very tight deadline.

Upgrade to GCC 3.0 and improve code-generation to permit additional functionality to fit within 2kw application instruction space. Implemented CGEN functional simulator to automate compiler testing.

Rational Software, Inc., Lexington, MA

Critique ClearGuide's`process definition language' used to describe and automate software development processes in conjunction with vendor's configuration management, source control and defect tracking tools. Provided advice on parser error recovery, semantic and lexical improvements. Recommendations for object-oriented mechanisms to support a hierarchy of process definitions to support code-reuse and sharing.
 
Provided critical support to deployment in large Asia-Pacific bank, resulting in $500k revenue. Tracked down problems in Perl interpreter involving reference-counting and eval-stack type-variant errors.

Analog Devices, Inc. Norwood, MA

Fixed backlog of defects with SHARC g21k cross-compiler reported to ADI by customers, including compiler bugs and large number of runtime support bugs in double-precision floating-point, interrupt handling, signals, setjmp()/longjmp(). Increased compiler conformance to ANSI/ISO C; provided compiler defect fixes and build environment improvements to new fixed-point DSP chip under development.

Mercury Computer, Inc. Chelmsford, MA

Modified gcc port to ADI 21060 SHARC DSP to meet requirement for virtual 8-bit bytes (on machine architecture that's only physically word addressable) Implemented code generation and optimization improvements. Provided compiler workarounds for hardware defects in early silicon for DSP. Consulting and technical analysis for position-independent code design (C and Ada compilers) Rewrote double-precision floating point code to correctly handle NaNs and denorms. Co-recipient of Q2'96 Award for Excellence in recognition for contribution to successful product development efforts.

Developing extensions to compiler to support COFF format for bss and common. Implemented little-endian version of byte-compiler and position-independent code support.

Compiler Vendor, Cambridge, MA

Produced proposal to DSP chip vendor for C language-extensions and runtime model supporting a new generation of digital signal processor chips. Evaluated design alternatives, features needed in C library, optimization and code-generation issues for complex, irregular architecture.

Compiler Startup, Burlington, MA

Evaluating language implementation against features in other vendors products; specify and implement front-end changes; port i/o runtime system to Alpha OSF/1. Reimplemented full IBM PL/1 PICTURE parsing and runtime support in PL/1 and C.

Open Environment Corp., Cambridge, MA

Managed development of multi-platform client-server CASE tools, automating server framework generation using IDL compiler with multiple backends (C, Perl, COBOL, Visual Basic, Powerbuilder, 4th Dimension, Hypercard).

Open Software Foundation, Cambridge, MA

Extended localedef(1) - compiler for internationalization architecture. Maintained UNIX runtime (libc, libm). Machine-independent math routines capable of passing various floating-point torture tests. Runtime library changes for multibyte internationalization, POSIX 1003.2 and XPG/4.

Apollo Computer, Chelmsford, MA

Project leader for Ada, Pascal, and Common backend - teams of from 2 to 8 engineers. Modified Verdix Ada for new generation of hardware. Corrected over 100 existing defects in 3 months. Validated two releases of Ada. Designed and implemented much of Apollo's global optimizer (value propagation, live analysis, register allocation) and peephole optimizer. Superior compiler technology allowed Apollo machine to outperform faster Sun. Also worked on C, C++, FORTRAN, LISP and Modula-2 compilers.

Digital Equipment Corp., Nashua,NH

Project leader for all Bliss compilers (VAX, DEC-10, and PDP-11), technical leader for 8 developers and 1 writer. Provided high quality optimizing compilers for DEC's internal use in operating systems, languages and CASE tools. Delivered three compiler products to leading edge technology companies.

 

Back to Quality Software Management