Giampiero Caprino 530 La Conner Dr. Apt. 17 Sunnyvale, CA, 94087 USA
Staff Software Engineer, with more than 20 years experience, ranging from application software development, languages and compilers, operating system architecture and implementation.
Staff Engineer - Co-Development Engineering group.
This group facilitates third party's software and
hardware integration with VMware's virtualization products.
Staff engineer - XRAY and EDGE debugger development.
As a co-architect of the EDGE debugger I was responsible for
design and development of several key aspects of the debuggers,
with specific focus on symbolic information handling, high-level
expression evaluation, command line interpreter, stack
trace analysis.
Previously I completely re-designed and developed the GUI
portion of the XRAY debugger in MFC.
Member of the team developing tools for IA64 64-bit processor (Itanium).
Design, development and enhancement of the XRAY Debugger, with particular focus on object file format readers and symbol table management; development and optimization of simulator technology for SPARC, AMD29000, PowerPC 60x and other microprocessors used in the embedded market.Member of the CORE debugger technology team, responsible for the development of the new generation of XRAY debuggers, the XRAY Pro Debugger Suite.
Implemented the object format reader for DWARF2, CodeView and PDB.
Joint activities between Olivetti and DEC: the analysis of Digital's "Habitat" technology as a means to present a UNIX System V Rel. 4 on an OSF/1 system; porting of part of MCC (a DEC product) to OFS/1 using the Alpha chip. The porting involves the highlighting of bad coding practices, use of ANSI C prototypes and type abstraction, and differences in floating point formats between the VAX and IEEE standard. The conversion of floating point formats were required by the use of ASN.1 as the communication protocol between heterogeneous systems.
Porting of the Tuxedo Transaction Processing Environment to the DC/OSx Pyramid Technology system (using the MIPS R3000 processor).
Porting of the SCO 3.2.4 MPX operating system to the LSX5030 system. LSX5030 is a multiprocessor system based on the Intel 486 processor. SCO MPX is the multiprocessor implementation of UNIX 3.2 based on Corollary technology.
Published an article on the Italian magazine "Informatica oggi", Jackson Publishers, Milan, with the title "Metodologie di debugging" (Debugging Methodologies), in which various methods of debugging software at the assembly level are presented; many examples of recognition by disassembling of high level language structures were described.
Implementation in the Green Hills family of compilers of UNIX System V Rel. 4.0 features (ELF object format, Position Independent Code and dynamic library code generation, DWARF information for symbolic debugging, line profiler support). Extensive debugging of the code generator for the Intel i860 RISC processor used in Olivetti's PWS system.
As part of this activity, a software simulator with embedded full screen debugger for the Intel i860 RISC microprocessor was written on a 68020 UNIX system
Design and implementation of the user interface used in Olivetti's "vdb" (visual debugger) debugger for UNIX System V Rel. 4.0. The product features a full screen user interface both in the symbolic environment, and in the assembly environment, conditional breakpoints, C++ and Pascal support. It was also used to extend the SCO 386 and the 68000 debuggers (both on UNIX 3.2), and the GNU gdb debugger.
The text only interface evolved toward an X Window interface as part of a thesis work on the subject "Advanced User Interfaces for Debuggers". I mentored the candidate on the design of the user interface, and on its implementation in C. The dissertation was held at the University of Pisa, Italy.
Development of a common code generator for C, Pascal, ISO BASIC and ANSI 85 COBOL. The objective of the code generator was to generate code for the 68020 microprocessor using a common intermediate language produced by four different front-ends. The compilation system so formed was built as a native UNIX compiler, a cross-development compiler, and a native compiler on Olivetti's proprietary MOS operating system. Plenty of machine specific optimizations were introduced to achieve the performances of the leading-edge Micro Focus COBOL compiler.
Design and implementation of a single user, single task operating system to support diagnostic programs on the "Linea 1" systems, using Zilog's Z8000 16-bit microprocessor. Many utilities were provided: a vi-like screen editor, a full screen assembly level debugger, a Z8000 assembler and linker. The operating system was modeled after the CP/M operating system; both the operating system and the utilities were written entirely in Z8000 assembly language.
A software simulator for the 8080 microprocessor was written to support the emulation of the real CP/M operating system on the Z8000 microprocessor.
During the years a good experience in application programming was collected. Applications were written for the CP/M, MS-DOS, MS-Windows 3.1, Win32 and UNIX environments. They ranged from a collection of statistical tests (for Formenti SpA, Milan), to image storage and retrieval, to applications for the public administration (used by the city of Paderno Dugnano, Milan).
UNIX system V 3.2 and 4.0; SunOS 4.x; UNIX BSD 4.3; Linux;
X-Windows, Motif, MFC;
MS Windows, MS-DOS 3.x, CP/M
C, C++, Java, Pascal, COBOL, Microsoft BASIC, Paradox's PAL.
Assembly languages: 80x86, 68000, Z8000, i860, R3000, DEC Alpha, PDP11, VAX, Z80, 6502, PowerPC603
- REC a portable decompiler. In the late seventies and early eighties the Portable C Compiler was ported to countless host and generated code for many different microprocessors, from the IBM370 to the VAX to the Cray. Thus the idea of a portable de-compiler.
- Tain Director, a railroad network simulation game.
Back to CG's Home Page