Tim
Teitelbaum
Associate Professor
Department of
Computer Science
Cornell University
4143 Upson Hall
Ithaca,
New York 14853
Phone: (607) 255-7573
Fax: (607)
255-4428
Chairman and CEO
GrammaTech, Inc.
315 N. Aurora St.
Ithaca,
New York 14850
Phone: (607) 273-7340
Fax: (607)
273-8752
CONTENTS
EDUCATION
- [1975] Carnegie-Mellon University, Ph.D.,
Computer Science
- [1964] Massachusetts
Institute of Technology, B.S., Mathematics
POSITIONS
- [1988-] Chairman and CEO, GrammaTech, Inc., Ithaca, NY
- [1981-] Associate Professor, Department of
Computer Science, Cornell University
- [1982-83]
Visiting Researcher, Institut National de Recherche en Informatique et
en Automatique (INRIA), Rocquencourt, France
- [1979-81]
Senior Lecturer, Department of Computer Science, Cornell University
- [1973-79] Assistant Professor, Department of
Computer Science, Cornell University
- [1968-72]
Graduate Student, Department of Computer Science, Carnegie-Mellon
University
- [1965-68] Senior Research
Programmer, Physics Department, Columbia University
- [1964-65]
Programmer, Western Electric Corporation
AWARDS
- Dean's Award for Outstanding Teaching, June 1996.
- College of Engineering Teaching Award, 1996.
- Dean's
Prize for Innovation in Undergraduate Teaching, May 1986.
RESEARCH GRANTS and CONTRACTS (at Cornell)
- Software Engineering with a Transformational
System, NSF, 1995-98 (with D. Gries).
- Incremental
Computation, ONR, 1995-98.
- Incremental
Computation, ONR, 1992-95.
- The
Synthesizer Generator, NSF, 1990-91.
- Incremental
Computation, ONR, 1988-90.
- Generating
Efficient Language-based Programming Environments, NSF, 1988-89.
- Research
Experience for Undergraduates,
NSF, 1987-88.
- Generating Efficient
Language-based Programming Environments, NSF/ONR,
1986-89, (Supplement for Undergraduate Research, 1987-88).
- Coordinated
experimental research on systems for constructing and manipulating
complex objects, NSF, 1986-91, (with Gries, Constable and
Hopcroft).
- Language Editors and Their Generators,
IBM, 1984-85.
- Affiliation Program for
Education in Language Editors and their Implementations, IBM, 1984-85.
- Syntax-directed
Programming
Environments, NSF, 1982-85.
- Syntax-directed
Programming Environemnts, NSF, 1980-82.
RESEARCH CONTRACTS (at GrammaTech, Inc., with staff)
- Cognitive Techniques for Analysis of Complex Software Systems, Air Force, 2006.
- Ballistic Missile Defense Innovative Ant-Tamper Techniques, MDA, 2006.
- Sanitizing Software of Malicious and Unauthorized Code, OSD/AF, 2006-2008.
- Run-Time Process Monitoring, OSD/AF, 2006-2008.
- A Refactoring Environment for Ada, MDA, 2004-06.
- Techniques and Technologies for Malicious Code
Detection and Mitigation, CTC Subcontract, 2005.
- Model Checking Software Binaries, HSARPA, 2005-06.
- Source-Code Vulnerability Detection, Air
Force, 2003-05.
- An Aspect Oriented
Solution for Unit Test Generation, NSF, 2003-05.
- A
Refactoring Environment for Ada, MDA, 2002-03.
- Inline
Reference Monitors for Object Code, NIST, 2002-04.
- Programmable
Interfaces for Advanced Static Analysis, ONR, 2002-03.
- Detecting
Malicious Code in Firmware, Air Force, 2002-04.
- Verification
of Hierarchical Graph Structures, DARPA, 2002-04.
- Source-Code
Vulnerability Detection, Air Force, 2002-03.
- Support
for transition of URI research into the eXtensible Tactical C4I
Framework (XTCF), Navy (SPAWAR), 2002.
- Advanced
Static Analysis for Software Assurance, MDA, 2002.
- An
Aspect Oriented Solution for Unit Test Generation, NSF, 2002.
- Detecting
Malicious Code in Firmware, Air Force, 2001-02.
- Inlined
Reference Monitors for Object code, NIST, 2001-02.
- Model
Checking UML Designs, U.S. Navy, 2001-02.
- A
Refactoring Environment for Incremental Migration of Legacy Code, NASA,
2001-02.
- Static Analysis for Automatic
Differentiation, NASA, 2001-02.
- Dependence
Graphs for Internet Technologies, NSF, 2001.
- A
New Technique For Efficient Compression of Information, BMDO, 2001.
- Verification
of Hierarical Graph
Structures, DARPA, 2001.
- Dependence
Graphs for Information Assurance of Systems, DARPA, 2000-02.
- A
Framework for Aspect-Oriented Programming of Embedded Systems, DARPA,
2000-01.
- Multi-Lingual Dependence-Graph
Components for Software and Hardware Analysis and Specialization,
DARPA, Phase II, 1999-2002.
- Model
Checking of Software Designs, ONR, 1998-2001.
- User
Interfaces for Rule-Based Formal Methods Environments, ONR, 1997-99.
- Multi-Lingual
Dependence-Graph
Components for Software and Hardware Analysis and Specialization,
DARPA, 1997.
- A Prototype Formal Methods
Environment, ONR, 1996-97.
- User-Interfaces
for Rule-Based Formal Methods Environments, ONR, 1995-96.
- Language-Based
Software Environments, ONR, 1990-92.
- Language-Based
Software Environments, NY State Science and Technology Foundation,
1989-90.
- Language-Based Software
Environments, ONR, 1989-90.
PH.D. STUDENTS
- Aswin van den Berg (1998) [with D. Gries]
- Y.
Annie Liu (1995)
- John Reppy (1992)
- John
Field (1991)
- Allan Zaring (1990)
- Stephen
Peckham (1990)
- William Pugh (1988) [PYI, Packard
Fellow]
- Roger Hoover (1987)
- Susan
Horwitz (1985) [PYI]
- Thomas Reps (1982) [ACM
Doctoral Dissertation Award, PYI, Packard Fellow]
- GrammaTech, CodeSonar,
performs a deep static analysis on C/C++ code and identifies many types
of bugs. These include null-pointer dereferences, divide-by-zeros,
buffer overruns, buffer underruns, double-frees, use-after-frees, and
frees of non-heap memory.
Release 1.0, 2006, http://www.grammatech.com/products/codesonar/.
- GrammaTech, CodeSurfer,
a software development,
inspection, and maintenance tool that provides dependence-graph
browsing and precise interprocedural program slicing for C programmers.
Various releases, May 1999 to Present, http://www.grammatech.com/products/codesurfer/.
- GrammaTech, Ada-ASSURED,
a multi-purpose tool that ensures consistent coding style, prevents
syntax errors, and provides numerous productivity features for writing
and reviewing code. It features WYSIWYG language-sensitive editing,
automatic standards enforcement, high-quality pretty printing, and
hypertext browsing in a package that can be integrated with any Ada
compiler. Various releases, June 1996 to June 2004, http://www.grammatech.com/products/aa/.
- Reps, T. and Teitelbaum, T., The
Synthesizer Generator,
Various releases, December 1985 to April 1991 (Cornell); Various releases, September 1991 to Present (GrammaTech), http://www.grammatech.com/products/sg/.
The
Synthesizer Generator is a tool for creating language-based
environments from formal specifications. To date, it has been licensed,
in source code form, for research purposes, to approximately 350 sites
worldwide. Roughly half of the sites are in the U.S. and half are
overseas; roughly half the sites are academic and half are government
or industrial research laboratories. The Synthesizer Generator has been
commercialized by GrammaTech, Inc. of Ithaca, NY. Commercial products
based on it include Penelope, a formal verification system for Ada, by
ORA of Ithaca, NY; Raise, a rigorous approach to industrial software
engineering, by CRI of Copenhagen, DK; CRIE, a LOTOS editing tool, U.
Twente, Netherlands; and Ada-ASSURED, an Ada language-sensitive editor
and program analysis tool, by GrammaTech.
- Reps, T., Teitelbaum, T., et al., The
Cornell Program Synthesizer, Version 1, June 1979; Version
1.02, September 1980; Version 1.03, September 1981 (with T. Reps).
The
Cornell Program Synthesizer was a programming environment for a small
dialect of PL/I that demonstrated the feasibility of Integrated
Development Environment (IDES). During its lifetime, it was licensed to
110 sites
worldwide and was used by over 20,000 introductory programming
students.
- Reps, T. and
Teitelbaum, T., The Synthesizer Generator: A System for
Constructing Language-Based Editors, Springer-Verlag, New
York, 1988.
- Reps, T. and
Teitelbaum, T., The Synthesizer Generator Reference Manual:
Fourth Edition. Springer-Verlag, New York, NY, 1992
- Teitelbaum, T.,
Visual Languages and Applications. In Alex --- An Alexical
Programming Language., T. Ichikawa, E. Jungert and R.
Korfhage (eds.), Plenum Press, NY, 1990, .
- Reps,
T. and Teitelbaum, T., Interactive Programming Environments. In The
Cornell Program Synthesizer: A Syntax-directed Programming Environment.,
D. R. Barsow, E. Sanderwall, and H. Shrobe ( eds.), McGraw-Hill, NY,
1984, pages 97-116. (Also appeared in CACM 24(9), September 1981, pages
563-573.)
- Reps, T.,
Horowitz, S. and Teitelbaum, T., Tutorial: Software Development
Environments. The Why and Wherefore of the Cornell Program
Synthesizer. A.I. Wasserman (ed.), IEEE Computer Society
Press, November 1981, pages 64-72. (Also appeared in Proceedings of
ACM/SIGPLAN-SIGOA Symposium on Text Manipulation, Portland, OR, June
8-10, 1981, SIGPLAN NOTICES 16, 6 June 1981, pages 8-16.)
Journals
- Anderson, P., Reps, T., and Teitelbaum, T.,
Design and implementation of a fine-grained software inspection tool.
In IEEE Trans. on Software Engineering 29, 8 (Aug.
2003), 721-733.
- Anderson, P., Binkley, D., Rosay, G.,
and Teitelbaum, T., Flow
Insensitive Points-to Sets. In Information and
Software Technology (I&ST) 44, 13 (October 2002),
743-754.
- Clarke, E. M.,
Fujita, M., Rajan, P. S., Reps, T., Shankar, S. and Teitelbaum, T.,
Program Slicing for VHDL. In Software Tools for Technology
Transfer 4, 1 (October 2002), 125-137.
- Liu,
Y. A., Stoller, S. D. and Teitelbaum, T., Strengthening Invariants
for Efficient Computation. In Science of Computer
Programming (SCP) 41, 2 (October 2001), 139-172.
- Millett, L. and Teitelbaum, T., Issues in Slicing
Promela and its Applications to Model Checking, Protocol Understanding,
and Simulation. In International Journal on Software Tools
for Technology Transfer 2, 4 (2000), 343-349.
- Liu, Y. A., Stoller, S. D. and Teitelbaum, T., Static Caching for
Incremental Computation. In ACM Transactions on
Programming Languages and Systems (TOPLAS) 20, 3 (May 1998),
546-585.
- Liu, Y. A. and
Teitelbaum, T., Systematic
Derivation of Incremental Programs. In Science of
Computer Programming 24, 1 (1995), 1-39.
- Reps, T. and Teitelbaum, T., Language Processing
in Program Editors. In IEEE Computer 20, 11
(November 1987), 29-40.
- Demers,
A. J., Horwitz, S. and Teitelbaum, T., An Efficient General Iterative
Algorithm for Dataflow Analysis. In Acta Informatica 24,
6 (1987), 679-694.
- Horwitz,
S. and Teitelbaum, T., Generating Editing Environments Based on
Relations and Attributes. In TOPLAS 9, 3 (October
1986), 577-608.
- Reps, T.,
Teitelbaum, T. and Demers, A. J., Incremental Context-dependent
Analysis for Language-based Editors. In TOPLAS 5, 3
(July 1983), 449-477.
- Teitelbaum,
T. and Reps, T., The Cornell Program Synthesizer: A Syntax-directed
Programming Environment. In CACM 24, 9 (September
1981), 563-573. (Reprinted in Interactive Programming
Environments, Barsow, D.R., Sanderwall, E., and Shrobe, H.,
McGraw Hill, 1984.)
Refereed
Conference Proceedings
- Balakrishnan, G., Reps, T., Melski, D., and
Teitelbaum, T., WYSINWYX: What You See Is Not What You eXecute. In Proc.
IFIP Working Conference on Verified Software: Theories, Tools,
Experiments, Zurich, Switzerland, Oct. 10-13, 2005.
- Balakrishnan,
G., Reps, T., Kidd, N., Lal, A., Lim, J., Melski, D., Gruian, R., Yong,
S., Chen, C.-H., and Teitelbaum, T., Model checking x86 executables
with CodeSurfer/x86 and WPDS++, (tool-demonstration paper). In Proc.
Computer-Aided Verification, 2005.
- Balakrishnan,
G., Gruian, R., Reps, T., and
Teitelbaum, T., CodeSurfer/x86 -- A platform for analyzing x86
executables, (tool demonstration paper). In Proc. Int. Conf. on
Compiler Construction, April 2005.
- Anderson, P. and Teitelbaum,
T., Software
Inspection Using CodeSurfer. In WISE'01:
Proceedings of the 1st Workshop on Inspection in Software Engineering,
Paris, France, July 23, 2001.
- Clarke,
E. M., Fujita, M., Rajan, S. P., Reps, T., Shankar, S. and Teitelbaum,
T.,
Program Slicing of Hardware Description Languages. In 10th
IFIP WG10.5 Advanced Research Working Conference on Correct Hardware
Design and Verification Methods (CHARM '99), Bad Herrenalb,
Germany, September 1999.
- Millett,
L. and Teitelbaum,
T., Channel Dependence Analysis for Slicing Promela. In
Proceedings of the International Symposium on Software
Engineering for Parallel and Distributed Systems (PDSE'99),
Los Angeles, CA, pp. 52-61, May 1999.
- Millett,
L. and Teitelbaum,
T., Slicing Promela and its Applications to Protocol
Understanding and Analysis. In Proceedings of the 4th
Workshop on Automata Theoretic Verification with the SPIN Model Checker,
Paris, France, pp. 75-83, November 1998.
- Anderson,
P., Goldsmith, M. and Scattergood, B. and Teitelbaum,
T., An Environment for
Integrating Formal Methods Tools. In Proceeding of
User-Interfaces for Theorem Provers 97 (UITP97), INRIA,
Sophia-Antipolis, September 1997.
- Liu,
Y. A., Stoller, S. D. and Teitelbaum, T., Discovering Auxiliary
Information for Incremental Computation. In Proceedings
of 23rd ACM Symposium on Principles of Programming Languages,
St. Petersburg Beach, FL, pp. 157-170, January 21-24, 1996.
- Lui, Y. A. and Teitelbaum, T., Caching Intermediate
Results for Program Improvement. In Proceedings of
ACM SIGPLAN Symposium on PEPM, La Jolla, CA, pp. 190-201,
June 1995.
- Field, J. and
Teitelbaum, T., Incremental Reduction in the Lambda Calculus. Presented
at 1990 Lisp and Functional Programming Conference,
Nice, France, pp. 307-322, June 1990.
- Teitelbaum,
T. and Chapman, R., Higher-order Attribute Grammars and
Editing
Environments. In Proceedings of ACM SIGPLAN '90 Conference on
Programming Language Design and Implementation, White Plains,
NY, pp. 197-208, June 1990.
- Pugh,
W. and Teitelbaum,
T., Incremental Computation by Function Caching. In Proceedings
of 16th ACM Symposium on Principles of Programming Languages,
Austin, TX, January 11-13, 1989, pp. 269-276.
- Kozen,
D., Teitelbaum,
T., Chen, W., Field, J., Pugh, W., and Zanden, B. V.,
Alex - An Alexical
Programming Language. Workshop on Visual Language,
Linkoping, Sweden, August 19-21, 1987.
- Hoover,
R. and Teitelbaum,
T., Efficient Incremental Evaluation of Aggregate Values
in Attribute Grammars. In Proceedings of ACM SIGPLAN '86
Symposium on Compiler Construction, Palo Alto, CA, June 1986,
pp. 39-50.
- Reps, T.,
Marceau, C. and Teitelbaum, T., Remote Attribute Updating for
Language-based Editors. In Proceedings of 13th ACM Symposium
on Principles of Programming Languages, St. Petersburg, FL,
January 1986, pp. 1-13.
- Horwitz,
S. and Teitelbaum,
T., Relations and Attributes: A Symbiotic Basis for
Editing Environments. In Proceedings of ACM SIGPLAN '85
Symposium on Language Issues in Programming Environments,
Seattle, WA, June 1985, pp. 93-106.
- Reps,
T. and Teitelbaum, T., The Synthesizer Generator. In Proceedings
of ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical
Software Development Environments, Pittsburgh, PA, April
1984, pp. 42-48.
- Teitelbaum,
T., Reps, T. and Horowitz, S., The Why and Wherefore of the Cornell
Program Synthesizer. In Proceedings of ACM/SIGPLAN-SIGOA
Symposium on Text Manipulation, Portland, OR, June 8-10,
1981, pp. 8-16. (Reprinted in Tutorial: Software Development
Environments, Wasserman, A.I., IEEE Computer Society Press,
November 1981, pp. 64-72.)
- Demers,
A. J., Reps, T. and Teitelbaum,
T., Incremental Evaluation for Attribute
Grammars with Application to Syntax-directed Editors. In Proceedings
of 8th ACM Symposium Principles of Programming Languages,
Williamsburg, VA, January 26-28, 1981, pp. 105-116.
- Demers, A. J., Donahue, J., Teitelbaum, T., and
Williams, J.,
Encapsulated Data Types and Generic Procedures. In Proceedings
of DOD Workshop on a Common Programming Language for Embedded Systems,
Ithaca, NY, 1976, Springer-Verlag, pp. 171-214.
- Teitelbaum,
T., Context-free Error Correction by Evaluation of Algebraic Power
Series. In Proceedings of 5th ACM Symposium Theory of
Computing, Austin, TX, April 30-May 2, 1973, pp. 196-199.
- Teitelbaum, T., Newman, et al.,
A Study of Sigma Leptonic Decay Using an HPD in Pattern Recognition
Mode. In Proceedings International Conference Advanced Data
Processing for Bubble Chambers and Spark Chambers, New York,
NY, October 1968, pp. 256-265.
- Teitelbaum,
T. and Burd, D., Current Status of Automatic Scanning at Columbia
University. In 1967 International Conference on Programming
for Flying Spot Devices, Munich, Germany, January 1967.
- Semantic
Analysis. SIGPLAN '93 Conference on Programming Language
Design and Implementation, Albuquerque, NM, June, 1993.
- Generating Language-Sensitive Environment. SIGPLAN
'92 Conference on Programming Language Design and Implementation,
San Francisco, CA, June 15-19, 1992.
- Semantic
Analysis. SIGPLAN '88 Conference on Programming Language
Design and Implementation, Atlanta, GA, June 22-24, 1988.
- Semantic Analysis. SIGPLAN '86 Symposium
on Complier Construction, Palo Alto, CA, June 25-27, 1986.
- Reps, T.,
Balakrishnan, G., Lim, J., and Teitelbaum, T., A next-generation
platform for analyzing executables. In Proc. 3rd Asian
Symposium on Programming Languages and Systems, (Tsukuba,
Japan, Nov. 3-5, 2005).
- Balakrishnan, G., Reps, T., Kidd, N., Lal, A.,
Lim, J.,
Melski, D., Gruian, R., Yong, S., Chen, C.-H., and Teitelbaum, T.,
Model checking x86 executables with CodeSurfer/x86 and WPDS++. In Proc.
Workshop on the Evaluation of Software Defect Detection Tools,
June 2005.
- Anderson, P., Reps, T.,
Teitelbaum, T., and Zarins, M., Tool support for fine-grained software
inspection. IEEE Software 20(4): 42-50 (2003)
- Teitelbaum, T., Structure
of C Programs and Their Interpretation, Third Edition August
20, 1996, 58 pp. Approximately 1000 copies printed.
- Teitelbaum, T., The Cornell Program
Synthesizer: A Tutorial Introduction. Department of Computer
Science, Cornell University, First Edition, July 1979, Fifth Edition,
May 1983, 49 pp. Approximately 20,000 copies printed.
- Teitelbaum, T. And Reps, T., On the Value of
Syntax-directed Editors. CACM 25(5), May 1982, pp.
351-352.
- Teitelbaum, T., The
Cornell Program Synthesizer: Announcement. SIGPLAN NOTICES,
October 1979, page 75.
Technical
Reports
- Incremental
Computation for Transformational Software Development. Tech.
Rep. 95-1499, Department of Computer Science, Cornell Unversity,
Ithaca, NY, March 1995 (with Yanhong A. Liu).
- Caching Intermediate
Results for Program Improvement. Tech. Rep. 95-1498,
Department of Computer Science, Cornell University, Ithaca, NY, March
1995 (with Yanhong A. Liu).
- Systematic Derivation of
Incremental Programs. Tech. Rep. 94-1444, Department of
Computer Science, Cornell University, Ithaca, NY, August 1994 (with
Yanhong A. Liu).
- Deriving Incremental
Programs. Tech. Rep. 93-1384, Department of Computer Science,
Cornell University, Ithaca, NY, September (revised October) 1993 (with
Yanhong A. Liu).
- Alex
-- An Alexical Programming Language. Tech. Rep. 87-835,
Department of
Computer Science, Cornell University, Ithaca, NY, May 1987 (with D.
Kozen, et al.).
- The Cornell Program
Synthesizer: A Microcomputer Implementation of PL/CS. Tech.
Rep. 79-370, Department of Computer Science, Cornell University,
Ithaca, NY, March 1979.
- A Formal Syntax for PL/CS.
Tech. Rep. 76-281, Department of Computer Science, Cornell University,
Ithaca, NY, January 1976.
- A
Compiler Project. Department of Computer Science, Cornell
University, Ithaca, NY, January 1976.
- Minimal
Distance Analysis of Syntax Errors in Computer Programs. Ph
D. Thesis, Department of Computer Science, Carnegie-Mellon University,
Pittsburgh, PA, September 1975.
LECTURES
- Static-semantic Analysis Based on Dependence
Graphs.
- Sandia National Laboratory, Albuquerque,
NM, April 1999.
- Northrop-Grumman, Pico Rivera,
CA, April 1999.
- National Security Agency,
Linthicum Heights, MD, January 1999.
- Martin-Marietta,
Owego, NY, October 1997.
- Assuring
Software Quality Using an Ada Language-sensitive Programming
Environment.
- Martin-Marietta Corporation,
Syracuse, NY, April 1994.
- Loral Aerospace
Corporation, Owego, NY, June 1994.
- IBM Federal
Systems Division, Owego, NY, April 1993.
- Software
Productivity Laboratory, Herndon, VA, March 1993.
- SAIC,
Orlando, FL, March 1993.
- Martin-Marietta Corp.,
Orlando, FL, March 1993.
- ECC, Orlando, FL, March
1993.
- GE Aerospace Corp., Syracuse, NY, July
1992.
- IBM Federal Systems Division, Owego, NY,
July 1992.
- Higher-order
Attribute Grammars and Editing Environments.
- Rice
University, Houston, TX, April 1990.
- ACM SIGPLAN
'90 Conference on Programming Language and Design and Implementation,
White Plains, NY, June 1990.
- Static Semantic Analysis.
- ACM
SIGPLAN Conference-93, Albuquerque, NM, June 1993.
- Automatically Enforcing
Quality in ADA Software: Implications for Interactive Tools.
- 10th Annual Washington ADA Symposium, McLean, VA, June 1993.
- The Synthesizer Generator: A
System for Constructing Language-based Editors.
- AT&T
Bell Laboratories, Murray Hill, NJ, May 1993.
- HP
Laboratories, Palo Alto, CA, March 1993.
- Lockheed
Missiles and Space Co., Palo Alto, CA, March 1993.
- HP
Corp., Ft. Collins, CO, March 1993.
- Software
Productivity Consortium, Herndon, VA, March 1993.
- Digital
Equipment Corporation, Nashua, NH, February 1993.
- Ratheon
Corporation, Portsmouth, RI, November 1992.
- GE
Aerospace Corp., Syracuse, NY, July 1992.
- RADC,
Rome, NY, July 1992.
- CASE-92, Montreal, Canada,
July 1992.
- GTE, Research Triangle Park, NC, May
1992.
- Verdix Corporation, Herndon, VA, April
1992.
- Loral Space and Range Systems, San Jose,
CA, March 1992.
- Sun Microsystems Laboratories,
Inc., Mountain View, CA, March 1992.
- SunPro,
Mountain View, CA, March 1992.
- Lockheed Missiles
and Space Co., Palo Alto, CA, March 1992.
- Workshop
on Programming Environments, Dagstuhl, Germany, March 1992.
- Unisys/Paramax,
Arlington, VA, March, 1992.
- Software Productivity
Consortium, Herndon, VA, February 1992.
- Seer
Technologies, New York, NY, October 1991.
- Tandem
Computers, Cupertino, CA, September 1991.
- Software
Productivity Laboratory, Loral Aerospace Corp., San Jose, CA, September
1991.
- IDE, San Fransisco, CA, September 1991.
- Telesoft
Corp., San Diego, CA, Septmber 1991.
- Naval Oceans
Systems Center (NOSC), San Diego, CA, September 1991.
- NASA,
Langley Air Force Base, FL., May 1991.
- Ford
Aerospace Corp., San Jose, CA., January 1990.
- Annual
Meeting, Syracuse University CASE Center, Blue Mountain Lake, NY, July
1989.
- Incremental
Computation.
- Office of Naval Research, April
1988.
- Generation
of Language-based Programming Environments.
- Boston
SIGPLAN, Intermetrics, Cambridge, MA, November 1988.
- General
Motors, Warren, MI, March 1988.
- Department of
Computer Science, Bucknell University, Lewisburg, PA, November 1987.
- Department
of Mathematics and Computer Science, Dartmouth College, Hanover, NH,
October 1987.
- General Electric, Schnectady, NY,
July 1987.
- Institute for the Retraining in
Computer Science. Clarkson University, Potsdam, NY, July 1986.
- Office
of Naval Research, Washington, DC, February 1986.
- Wang
Institute, January, 1985.
- Department of Computer
Science, University of Maryland, October, 1984.
- Syntax-directed Programming
Environments.
- Department of Computer Science,
ETH, Lausanne, Switzerland, July 1984 (2 lectures).
- Department
of Computer Science, University of Oslo, Oslo, Norway, February 1983.
- Department
of Computer Science, University of Linkoping, Linkoping, Sweden,
February 1983.
- Incremental
Evaluation for Attribute Grammars with Application to Syntax-directed
Editors.
- Sino-American Symposium of Computer
Software Engineering, Changsha, People's Republic of China, April 1982.
- Central Research Laboratory, Nippon Electric
Company, Kawasaki-City, Japan, April 1982.
- Department
of Computer Science, New York University, New York, NY, March 1981.
- Department
of Computer Science, Purdue University, Lafayette, IN, February 1981.
- Eighth
Annual ACM Symposium on Principles of Programming Languages (POPL),
Williamsburg, VA, January 1981.
- Department of
Computer Science, Carnegie-Mellon University, Pittsburgh, PA, November
l980.
- Design
and Implementation of the Cornell Program Synthesizer, A
Syntax-directed Programming Environment (usually with demonstrations on
a Terak (LSI-11) microcomputer).
- Department of
Computer Science, Tsinghua University, Peking, Peoples Republic of
China, April 1982.
- Sino-American Symposium of
Computer Software Engineering, Changsha, Peoples Republic of China,
April 1982.
- Central Research Laboratory, Nippon
Electric Company, Kawasaki-City, Japan, April 1982.
- Language
Issues for Large-Scale Computing, Department of Energy, Gleneden Beach,
OR, March 1982.
- Department of Computer Science,
Pennsylvania State University, State College, PA, December 1981.
- Department
of Mathematical Sciences, Rensselaer Polytechnic Institute, Troy, NY,
December 1981.
- Department of Computer Science,
Brown University, Providence, RI, September 1981.
- Department
of Computer Science, SUNY Stony Brook, Stony Brook, NY, March 1981.
- National
Bureau of Standards, Gaithersburg, MD, March 1981.
- Department
of Computer Science, City University of New York, New York, NY, March
1981.
- Department of Computer Science, University
of Indiana, Bloomington, IN, February 1981.
- Department
of Computer Science, Purdue University, Lafayette, IN, February 1981.
- Department
of Computer Science, University of Rochester, Rochester, NY, January
1981.
- Schlumberger-Doll Research, Ridgefield, CT,
January 1981.
- IBM, T. J. Watson Research Center,
Yorktown Heights, NY, January 1981.
- Department of
Mathematics, Dartmouth, Hanover, NH, December 1980.
- Department
of Computer Science, University of Waterloo, Ontario, Canada, December
1980.
- Bell Telephone Laboratories, Murray Hill,
NJ, November 1980.
- IBM Endicott Development
Laboratory, Endicott, NY, November 1980.
- Department
of Electrical and Computer Engineering, and the Department of Computer
and Information Sciences (COINS), University of Massachusetts, Amherst,
MA, November 1980.
- Department of Computer
Science, New York University, New York, NY, October 1980.
- Department
of Computer Science, University of Texas, Austin, TX, October 1980.
- Department
of Mathematical Sciences, Rice University, Houston, TX, October 1980.
- General
Motors Research Laboratories, Warren, MI, May 1980.
- Department
of Computer and Information Sciences, University of Michigan, Ann
Arbor, MI, May 1980.
- Bell Telephone Laboratories,
Naperville, IL, May 1980.
- Department of
Mathematics, Ithaca College, Ithaca, NY, April 1980.
- Department
of Electrical Engineering and Computer Science, University of
Connecticut, Storrs, CT, April 1980.
- Department
of Mathematics, Wesleyan University, Middletown, CT, April 1980.
- Bell
Telephone Laboratories, Holmdel, NJ, March 1980.
- Department
of Computer Science, Queens University, Kingston, Canada, February
1980.
- Digital Equipment Corporation, Maynard, MA,
July 1979.
- Department of Computer Science,
University of Guelph, Guelph, Canada, June 1979.
- Department
of Mathematics, Hamilton College, Clinton, NY, April 1979.
- IEEE
Delaware Bay Chapter, Newark, DE, April 1979.
- Department
of Electrical Engineering, University of Delaware, Newark, DE, April
1979.
- Department of Computer Science,
Carnegie-Mellon University, Pittsburgh, PA, March 1979.
- Department
of Computer Science, North Carolina State University, Raleigh, NC,
March 1979.
- Department of Computer Science, Duke
University, Durham, NC, March 1979.
- IBM
Scientific Center, Cambridge, MA, March 1979.
- Zilog
Inc., Cupertino, CA, February 1979.
- Department of
Electrical Engineering and Computer Science, University of Santa Clara,
Santa Clara, CA, February 1979.
- Intel
Corporation, Santa Clara, CA, February 1979.
- IBM
Research Laboratory, San Jose, CA, February 1979.
- Department
of Electrical Engineering and Computer Science, Columbia University,
New York, NY, January 1979.
- Department of
Electrical Engineering and Computer Science, Princeton University,
Princeton, NJ, January 1979.
- IBM, T. J. Watson
Research Center, Yorktown Heights, NY, January 1979.
- Computer science and software
engineering education at Cornell. Changsha Institute of Technology,
Changsha, Peoples Republic of China, April 1982.
- On
encapsulated data types and generic procedures. Department of Computer
Science, SUNY Stony Brook, Stony Brook, NY, December 1976.
- On structured assembly languages. U.S. Army
Electronics Command, Fort Monmouth, NJ, December 1975.
- On the diagnosis and correction of syntax errors
in programs by evaluation of algebraic power series in non-commuting
variables.
- Fifth Annual ACM Symposium on Theory
of Computing (SIGACT), Austin, TX, May 1973.
- Department
of Computer Science, Cornell University, Ithaca, NY, March 1973.
- Department
of Electrical Engineering, Massachusetts Institute of Technology,
Cambridge, MA, March 1973.
- Department of Computer
Science, Duke University, Durham, NC, March 1973.
- School
of Electrical Engineering, University of Pennsylvania, Philadelphia,
PA, February 1973.
- Department of Electrical
Engineering, Princeton University, Princeton, NJ, February 1973.
- Department
of Computer Science, SUNY Stony Brook, Stony Brook, NY, December 1973.
- On automatic scanning of
bubble chamber photographs, Brookhaven Laboratory, Upton, NY, October
1967.
PROFESSIONAL ACTIVITIES
Chairman
- Doctoral Dissertation Award Committee, ACM,
1992-93.
Member
- Doctoral Dissertation Award Committee, ACM, July
1988-94.
- Academic Advisory Committee, ADAPSO,
October 16-19, 1988, Dallas, TX.
- Program
Committee, ACM SIGPLAN `88 Compiler Construction Conference, June
20-24, 1988, Atlanta, GA.
- Panel, Software
Engineering Program, NSF, April 4, 1988, Washington, DC.
- NSF
Software Engineering Workshop, February 24-26, 1988, Atlanta, GA.
- Program
Committee, Fifteenth Annual ACM SIGACT/SIGPLAN Symposium on Principles
of Programming Languages, January 1987.
- Program
Committee, ACM SIGPLAN '84 Symposium on Compiler Construction,
Montreal, Canada, June, 1984.
- Program Committee,
International Course on Syntax-Directed Editors, Aussois, France, April
18-22, 1983 (Co-director).
- Program Committee,
Tenth Annual ACM SIGACT/ SIGPLAN Symposium on Principles of Programming
Languages, January 24-26, 1983 (Co-chairman).
- Program
Committee, ACM SIGPLAN '82 Symposium on Compiler Construction, Boston,
MA, June 23-25, 1982.
- Delegate, Sino-American
Symposium on Computer Software Engineering, Changsha, Peoples Republic
of China, April 8-10, 1982.
- Program Committee,
ACM SIGSOFT/SIGPLAN Software Engineering Symposium on High-Level
Debugging, 1981-82.
- Panel, Productivity in
Education, IEEE COMPCON, Washington, DC, September 15, 1981.
- Association
for Computing Machinery
Consultant
- IBM (1985), AMS/ACM Summer Computer Science
Institute Planning Committee (1982), Terak Corp. (1979), U.S. Army
Electronics Command (1975), Digital Equipment Corp. (1970).
Reviewer
- ACM Computing Surveys, ACM
TOPLAS, IEEE Computer, IEEE
Software, IEEE Transactions on Software Engineering,
MIT Press.
- Review of DoD Programming Language
Policy, Computer Science and Telecommunications Board, National
Research Council (1996).
Referee
- NSF, NSERC
- Member,
Computing Policy Committee (1994-1996)
- Chairman,
Departmental Computer Facilities Committee (1990-91)
- Member,
2001 Committee (1990-91)
- Member, Committee on
Instructional Computer Technologies (1990-91)
- Member,
Search Committee for Associate Dean for Undergraduate Affairs (1986)
- Member,
CER Management Committee (1986-89); Chairman (1987-88)
- Chairman,
Department Chairman Search Committee (1986-87)
- Member,
Senior Faculty Recruiting Committee (1985-1992); Chairman (1985-87)
- Member,
Engineering College Resource Allocation Advisory Committee (1985-86)
- Member,
Engineering College Computing Board (1984-88); Chairman (1987-88)
- Member,
Computer Science Undergraduate Academic Affairs Committee (1984-85)
- Member,
University Appeals Panel (1984-89)
- Director,
Undergraduate Programs in Computer Science (1983-85)
- Member,
Engineering College Computer Advisory Committee (1983-84)
- Member,
Committee to Study Computers in Engineering Mathematics (1983-84)
- Co-director,
Computer Science Summer School Program (1981-82)
- Member,
University Computing Board subcommittee (1981-82)
- Member,
Faculty Appeals Board (1981-82)
- Director,
Computer Science Summer School Program (1979-80)
- Member,
Engineering College Core Curriculum Committee (1977-82)
- Undergraduate
program advisor (1977-1995)
Spring 2002, 147 students
Fall
2000, 298 students
Fall 1999, 205 students
Fall 1996,
181 students
Fall 1995, 189 students
Fall 1994, 270
students
Fall 1993, 317 students
Fall 1992 and Spring
1993, 478 students
Fall 1985, 645 students
Fall 1984,
758 students
Fall 1983, 749 students
Fall 1981, 725
students
Fall 1980 and Spring 1981, 1176 students
Fall
1979 and Spring 1980, 1020 students
Fall 1978 and Spring 1979,
952 students
Fall 1977, 475 students
Fall 1976, 544
students
Fall 1975, 460 students
Fall 1987, 45 students
Spring
1987, 10 students
Fall 1990, 85 students
Fall 1988, 42 students
Fall 1974, 35 students
Fall
1973, 48 students
Spring 1988, 23 students
Spring 2005, 30 students
Spring 1997, 30 students
Spring
1996, 47 students
Spring 1994, 37 students
Spring
1993, 24 students
Spring 1974, 42 students
Spring
1973, 25 students
Fall 1998, 36 students
Spring 1995, 10 students
Spring
1986, 28 students
Spring 1984, 32 students
Spring
1982, 24 students
Spring 1977, 33 students
Spring
1976, 29 students
Spring 1975, 36 students
Spring 1989, 10 students
Fall
1986, 7 students
Spring 1985, 11 students
- Computer
programming as engineering design. Cornell College of
Engineering Alumni Council, May 1984.
- _____.
Engineering Career Orientation Forum, February 1984.
- The
Cornell Program Synthesizer. Conversations at Cornell, May
1982.
- _____. Computing in Agriculture, ATC/CALS
Faculty Series, January 6, 1981.
- The
computer: idiot savant or wunderkind? Freshman Orientation
Program, August 28, 1980.
- From slide
rule to microcomputer: how freshmen learn to compute. Cornell
Trustee's Weekend, October 12, 1979.
- Design
and implementation of the Cornell Program Synthesizer, a
syntax-directed programming environment, with demonstration.
OCS Seminar, March 28, 1979.
- _____. Department of
Computer Science, December 7, 1978.
- Computer
programming as engineering communication. Parents' Weekend,
October 22, 1977.
Go to top