Semantics and design of programming languages: types, polymorphism, object-oriented and functional programming languages; computer science education; theory of computation; mathematical logic.
Princeton University, Princeton, NJ, 9/98-1/99, Visiting Professor of
Computer Science.
Teaching and research in programming languages
NEC Research Institute, Princeton, NJ, 9/98 - 1/99, Consultant.
Project designing a typed intermediate language for a Java compiler.
Newton Institute for Mathematical Sciences, Cambridge, UK, 8-10/95, Visiting Scientist.
Wheaton College, Wheaton, MA, 6/92, Principal Instructor for 3 week NSF-sponsored Undergraduate Faculty Enhancement course in Programming Language Paradigms.
Ecole Normale Superieure, Paris, France, 11/91, Visiting Professor of Computer Science.
Stanford University, Palo Alto, CA, 1/91 - 5/91, Visiting Professor of Computer Science.
Digital Equipment Corporation, System Research Center, Palo Alto, CA, 4/91 - 5/91, Consultant.
University of Pisa, Pisa, Italy, 5-6/85, Visiting Professor of Computer Science.
M.I.T. Laboratory for Computer Science, 6/80 - 8/81, Visiting Scientist.
Prime Computer Corporation, Framingham, MA.,10/80 - 12/80, Part-time consultant on cryptography and computer security.
Stanford University, 6/77 - 8/77, Visiting Scholar, Department of Mathematics.
University of Wisconsin, Madison, summers of 1975, '78, '79, Lecturer in Mathematics for Minority Engineering Program.
University of Wisconsin, Madison, 9/70 - 5/75, N.S.F. Fellow, Teaching Assistant, and Project Assistant.
Naval Plant Representative, Pomona, CA, 6/68 - 9/70, Part-time Mathematician.
Pomona College, Claremont, CA; B.A. 1970 in mathematics, magna cum laude with distinction in mathematics.
University of Wisconsin, Madison, WI; M.A. 1972, Ph.D. 1975 in mathematics.
NSF research grant #CCR-9121778, "RUI: Semantics of Object-Oriented Languages." Principal investigator, $138,682 for 1992-1995. Renewed as CCR-9424123 for $144,000 for 1995-1998, CCR-9870253 for $104,000 for 1998-2000, and CCR-9988210 for $188,913 for 2000-2003.
NSF grant #CCR-9302344, "Foundations of Object-Oriented Languages Workshop." Principal investigator, $9,083. Funding for the U.S. half of a joint NSF-ESPRIT sponsored workshop on theoretical foundations of object-oriented languages. This grant provided start-up funds for the series of International Workshops on the Foundations of Object-Oriented Languages (FOOL).
NSF SGER grant #CCR-9105316, "Type Structures in Programming Languages." Principal investigator, $20,618 for 1991-92.
NSF research grant #MCS-8202851, "Models of Typed and Untyped Lambda Calculus." Principal investigator, $30,621 for 1982 - 1984. New award #MCS-8402700 "Models of Typed and Untyped Lambda Calculus." $47,522 for 1984-86. New award #DCR-8603890 "The semantics of Types and Polymorphism in Programming." $53,290 for 1986-88.
NATO Grant for International Collaboration in Research, "The mathematical semantics of types in programming," Co-principal investigator with G. Longo of U. of Pisa and A. Meyer of M.I.T., 277,000 Belgian Francs (approx. $6000) for 1986-88.
NSF grant #Int-8200674 under auspices of the U.S.- Italy Cooperative Science Program to support scientific visit to Pisa, Italy, in June, 1982. The grant supported joint research with Professor G. Longo at the University of Pisa in the field of denotational semantics and models of lambda calculus. Co-principal investigator (with A. Meyer of M.I.T.), $4,500. New award #INT-8300436 in 1983 to support visits during summers of 1983, 1984, and 1985, $7,400.
Research seminar award by Williams College for Spring, 1987. One semester of released time to do research and conduct seminar in denotational semantics for students and faculty.
N.S.F Science Faculty Development Fellowship: 1980-81.
Williams College Class of 1941 Fellowship for Assistant Professor leave: 9/80 - 12/80.
Williams College Division III & Psychology Research grants, various small grants to support research in mathematics and computer science, 1977-1989.
N.S.F. Graduate Fellowship: 9/70 - 8/73.
Sloan grant funding (from grant received by Williams College) to redesign three introductory CS courses and create new Discrete Math course, summers of 1983, 1984.
Sloan grant funded workshop for designing new curriculum for CS in liberal arts colleges, participant.
Ford grant funding (from grant received by Williams College) to introduce a new section of introductory CS course presenting a functional language and experimental highly-parallel architectures.
ACM Recognition of Service Award for serving as general chair of FOOL 4, 1997, FOOL 6, 1999, and FOOL 7, 2000.
Williamstown Public Schools Service Award for help in setting up a computer lab, 1997.
IEEE Computer Society - named member of "Golden Core", 1996.
IEEE Computer Society Meritorious Service Award, 1992
Sigma Xi, 1986.
Outstanding Teaching Award, University of Wisconsin, 1975.
Phi Beta Kappa, 1970.
(with Didier Remy ) co-edited and wrote editorial for a special issue with papers from the Fifth Workshop on Foundations of Object-Oriented Languages (FOOL5), Information and Computation, to appear. Currently co-editing similar volume with papers from FOOL 6 for Information and Computation.
(with Luca Cardelli and Benjamin C. Pierce) Comparing Object Encodings, Information and Computation 155 (1999), pp. 108-133. This was a special issue with papers invited from TACS '97. A preliminary version appeared in Proceedings of TACS '97 (Theoretical Aspects of Computer Science), LNCS 1281, pp. 415-438.
(with Benjamin Pierce) co-edited and wrote editorial for a special issue with papers from the Third Workshop on Foundations of Object-Oriented Languages (FOOL3), Theory and Practice of Object-oriented Systems, 4(1998), pg. 1.
(with Mike Jipping) Imperative Programming Languages, chapter in Handbook of Computer Science and Engineering, (1996), pp. 1983-2005.
Thoughts on Computer Science education, Computing Surveys, Vol. 28, No. 4es (December,1996), pp. 93-es.
Progress in programming languages, Computing Surveys, 28(1996), pp. 245-247.
(with Luca Cardelli, Giuseppe Castagna, The Hopkins Objects Group, Gary T. Leavens, and Benjamin Pierce ) On binary methods, Theory and Practice of Object-oriented Systems, 1(1995), pp. 221-242.
A paradigmatic object-oriented programming language: Design, static typing and semantics, Journal of Functional Programming 4(1994), pp. 127-206.
(with R. Di Cosmo and G. Longo ) Provable isomorphisms of types, Mathematical Structures in Computer Science 2 (1992), pp. 231-247.
Creating a new model curriculum: A rationale for Computing Curricula '91, Education and Computing, 7(1991), pp. 23-42.
(with G. Longo ) A modest model of records, inheritance, and bounded quantification, Information and Computation 87 (1990), pp. 196-240. A preliminary version appeared under the same name in Proceedings of Third Symposium on Logic in Computer Science, Computer Society Press, 1988, pp. 38-50. Reprinted in Theoretical Aspects of Object-Oriented Programming, ed. by Carl Gunter and John C. Mitchell, MIT Press, 1994, pp. 151 - 195.
(with P. Wegner ) An algebraic model of subtype and inheritance, Advances in Data Base Programming Languages, ed. by F. Bancilhon and P. Buneman, ACM Press - Addison-Wesley, 1990, pp. 75-96.
(with A. Meyer and J. Mitchell ) The semantics of second order lambda calculus, Information and Computation 85 (1990), pp. 76-134. Reprinted in Logical Foundations of Functional Programming, ed. by G. Huet, Addison-Wesley, 1990, pp. 213-272.
(with G. Longo ) On combinatory algebras and their expansions, Theoretical Computer Science 31 (1984), pp. 31-40 (reviewed in Math. Reviews, M.R. 86a: 03013).
(with Cristian Ungureanu and Suresh Jagannathan) An Object-Based Typed Intermediate Language for Java, NEC Technical Report, 1999.
(with Joseph Vanderwaart '99 ) Semantics-Driven Language Design: Statically Type-Safe Virtual Types in Object-Oriented Languages, to appear in Electronic Proceedings of the 1999 Symposium on Mathematical Foundations of Programming Semantics.
Formal Semantics and Interpreters in a Principles of Programming Languages Course, to appear in Proceedings of the 1999 ACM SIGCSE Conference.
(with Martin Odersky and Philip Wadler ) A statically safe alternative to virtual types, ECOOP '98 Proceedings. LNCS 1445, Springer-Verlag, pp. 523--549. An earlier version appeared in the electronic proceedings of the FOOL 5 Workshop.
(with Leaf Petersen '96 and Joseph Vanderwaart '99 ) Modules in LOOM: Classes are not enough, Williams College Technical Report, 1998.
Increasing Java's expressiveness with ThisType and match-bounded polymorphism, Williams College Technical Report, 1997.
(with Adrian Fiech and Leaf Petersen '96 ) Subtyping is not a good match for object-oriented languages, ECOOP '97 Proceedings, LNCS 1241, Springer-Verlag, pp. 104-127. An earlier version appeared in the electronic proceedings of the FOOL 4 Workshop.
Typing in object-oriented languages: Achieving expressiveness and safety, (technical report, 1997).
(with A. Schuett '94, R. van Gent '93 ) PolyTOIL: A type-safe polymorphic object-oriented language, ECOOP '95 Proceedings, LNCS 952, Springer-Verlag, pp. 27-51.
Attracting (& Keeping) the Best and the Brightest: An entry-level course for experienced introductory students, Proceedings of the 1994 ACM SIGCSE Conference, pp. 243-247.
(with R. van Gent '93 ) TOIL: A new Type-safe Object-oriented Imperative Language, Williams College Technical Report, 1993.
(with J. Crabtree '93, A. Dimock, R. Muller, T. Murtagh, and R. van Gent '93), Type checking in TOOPLE is decidable, Proceedings of OOPSLA 1993, pp. 29-46.
(with J. Crabtree '93 and G. Kanapathy '93) An operational semantics for TOOPLE: A statically-typed object-oriented programming language, Proceedings of the 1993 Symposium on Mathematical Foundations of Programming Semantics, Lecture Notes in Computer Science 802, Springer-Verlag, 1994, pp. 603-626.
Safe type checking in a statically-typed object-oriented programming language, Proceedings of 20th ACM Symposium on Principles of Programming Languages, 1993, pp. 285-298.
The equivalence of two semantic definitions for inheritance in object-oriented languages, Proceedings of the 1991 Symposium on Mathematical Foundations of Programming Semantics, Lecture Notes in Computer Science 598, Springer-Verlag, 1992, pp. 102-124.
(with John Mitchell ) PER models of subtyping, recursive types and higher-order polymorphism, Proceedings of 19th ACM Symposium on Principles of Programming Languages, 1992, pp. 316-327.
(with J. Riecke ) The semantics of Miranda's algebraic types, Proceedings of Third Workshop on the Mathematical Foundations of Programming Language Semantics, Lecture Notes in Computer Science 298, Springer-Verlag, 1988, pp. 455-473.
(with G. Longo ) Domain equations and valid isomorphisms in all models of (higher-order) languages. A short discussion, Proceedings of the Conferences on Mathematical Logic, Vol. 3, ed. by R. Ferro and A. Zanado, Università di Siena, Departimento di Matematica, Scuola di Specializaione in Logica Matematica, Siena, 1987, pp. 47-52.
(with P. Wegner ) An algebraic model of subtypes in object-oriented languages (draft), Proceedings of Object-Oriented Programming Workshop, Sigplan Notices, vol. 21, October, 1986, pp. 163-172.
(with R. Amadio and G. Longo ) The finitary projection model for second order lambda calculus and solutions to higher order domain equations, Proceedings of Symposium on Logic in Computer Science, Computer Society Press, 1986, pp. 122-130.
(with G. Longo ) Provable isomorphisms and domain equations in models of typed languages, Proceedings of the 17th Annual ACM Symposium on Theory of Computing, Providence, R.I., 1985, pp. 263-272.
(with A. Meyer ) The semantics of second order polymorphic lambda calculus, Semantics of Data Types (ed. G. Kahn, D. B. MacQueen, and G. Plotkin), LNCS 173, Springer-Verlag, 1984, pp.131-144.
Model Constructions in Stationary Logic, Part II: Definable Ultrapowers, Notre Dame Journal of Formal Logic 27 (1986), pp. 257-262 (reviewed in Math. Reviews, M.R. 87m: 03045).
Model Constructions in Stationary Logic, Part I: Forcing, Journal of Symbolic Logic 45 (1980), pp. 439-454 (reviewed in M.R. 82f: 03032).
(with H. J. Keisler ) LA(F), Journal of Symbolic Logic 44 (1979), pp. 15 - 28 (reviewed in M.R. 80f: 03037).
Ideal models and some not so ideal problems in the model theory of L(Q), Journal of Symbolic Logic 43 (1978), pp. 304-321 (reviewed in M.R. 80a: 03048).
Model-theoretic forcing in logic with a generalized quantifier, Annals of Mathematical Logic 13 (1978), pp. 225-265 (reviewed in Math. Reviews, M.R. 80c: 03033).
Model-Theoretic Forcing with a Generalized Quantifier, Doctoral Thesis, University of Wisconsin, Madison, 1975.
Review of Johan van Benthem and Kees Doets, "Higher-order logic," from Handbook of Philosophical Logic, ed. by D. Gabbay and F. Guenthner, Synthese library, vol. 164, D. Reidel Publishing Company, 1983. Review appeared in Journal of Symbolic Logic 54 (1989), pp. 1090-1092.
Review of M. Magidor and J. Malitz, "Compact extensions of L(Q) (part 1a)," from Annals of Math Logic, 11(1977), pp. 217-261, and M. Kaufmann, "A new omitting types theorem for L(Q), Journal of Symbolic Logic, 44(1979), pp. 507-521. Review appeared in Journal of Symbolic Logic 50 (1985), pp. 1076-1078.
A revised model curriculum for a liberal arts degree in computer science, ed. by Henry M. Walker and G. Michael Schneider, December, 1996,Communications of ACM 39(1996). pp. 85-95.
Computing Curricula '91, report of the ACM/IEEE Computer Society Joint Curriculum Task Force, a summary of which was published in Communications of ACM 34 (1991), pp. 68-84.
Teaching computer Science within mathematics departments, ed. by B. Haytock, Z. Karian, and S. Seltzer, Computer Science Education 1 (1990), pp. 181-203.
A model curriculum for a liberal arts degree in computer science, ed. by N. Gibbs and A. Tucker, Communications of ACM 29 (1986), pp. 202-210.
Joseph Vanderwaart, "Typed Intermediate Representations for Compiling Object-Oriented Languages", 1999. (Currently a graduate student in CS at CMU, awarded NSF graduate fellowship.)
Burstein, Jon, "Rupiah: An extension to Java supporting match-bounded parametric polymorphism, ThisType, and exact typing, 1998. (Currently working at Microsoft.)
Hilary Browne, "Adding concurrency to LOOM," 1997. (Currently attending CS graduate school at the University of Maryland.)
Leaf Petersen, "A module system for LOOM," 1996. (Currently a graduate student at Carnegie-Mellon University, honorable mention in NSF Graduate Fellowship).
Adam Seligman, "FACTS: A formal analysis of C++: Type rules and semantics," 1995. (Completed a Master's degree in CS at University of Texas, Austin).
Angela Schuett, "Parametric Polymorphism in a type-safe, object-oriented programming language," 1994. (Currently a graduate student at UC-Berkeley).
Robert van Gent, "TOIL: An imperative type-safe object-oriented language," 1993. (Formerly a graduate student at Stanford University, currently working at Extempo Systems.)
Gerald Kanapathy, "Modular specification and verification of object-oriented programs with inheritance," 1993.
Robert Allen, "ADT/s: An object-oriented programming language with data abstraction and subtyping," 1990. (Completed Ph.D. in CS at C.M.U.)
Wendy Roy, "MODULA -2OOP: The Best of Both Paradigms, The Addition of Inheritance to a Procedure-Oriented Language," 1988.
Dean Pomerleau, "The Meta-Generalized Delta Rule: A New Algorithm for Learning in Connectionist Networks," 1987. (Completed Ph.D. in CS at CMU. Currently Research Faculty in CS at C.M.U.)
Jon Riecke, "A Denotational Approach to the Semantics of Polymorphic Programming Languages," 1986. (Ph.D., 1991, in CS at M.I.T., awarded 3 year NSF Graduate Fellowship. Currently Researcher at Bell Labs.)
David Chelmow, "Numerical methods for fitting statistcal models used for analyzing clinical trial experiments," 1984. (Graduate of Yale Medical School.)
Charles Stewart, "NP-completeness and approximate solutions to the two-dimensional knapsack packing problem," 1982. (Ph.D., 1988 in CS at U.W-Madison. Currently Assoc. Prof. of CS at R.P.I.)
Benjamin Goldberg, "Theory and implementation of an automatic program verifier," 1982. (Ph.D., 1987 in CS at Yale University. Currently Associate Professor of CS at Courant Institute, NYU.)
David Maltzan, "Two routes to the same result: Craig's interpolation theorem,", 1979.
Valerie King, "Recursively saturated models," 1977.
Jeff Rottman, "Model-theoretic forcing in L(F)", 1976.
Former member, Editorial Board of Theory and Practice of Object Systems (TAPOS). Journal no longer publishing.
Member, Advisory Board, and Programming Languages Section Advisor for first edition of CRC Handbook of Computer Science and Engineering.
Co-organizer and co-conference chair for series of Internation Workshops on Foundations of Object-Oriented Languages (FOOL) originally sponsored by grants from NSF & ESPRIT. Workshops held in Palo Alto, CA, 10/93, Paris, 7/94. New Brunswick, NJ, 7/96 (in conjunction with LICS), Paris, 1/97 (in conjunction with POPL) ), San Diego, 1/98 (in conjunction with POPL), San Antonio, Texas, 1/99 (in conjunction with POPL), and Boston, MA, 1/2000 (in conjunction with POPL). Also program chair for first and third workshops.
Member - Program Committee for ICALP 2001, program committee for OOPSLA (Object-Oriented Programming Systems, Languages, and Applications) Conference '94 & '95, program committee for SIPL (State in Programming Languages) '95 Workshop. Chaired sessions in OOPSLA '94 & SIPL.
Member - ACM / IEEE Computer Society Joint Curriculum Task Force (which produced Computer Curricula 1991), 1988-1991. Chair of Programming Languages Knowledge Focus Group for Curricula 2001.
Member Executive Committee - MAA, ACM, IEEE-Computer Science Task Force on Teaching Computer Science in Mathematics Departments, 1986-88.
Member - Computing Research Association ad hoc committee on admission of undergraduate and master's degree granting institutions, 1990.
Invited Participant, NSF Workshop in Computer Science Education, Washington, D.C., 3/88.
Co-chair of the steering committee for Computer Science, NECUSE grant from the Pew Foundation, 1988-91. Organizer and in charge of local arrangements for Pew-sponsored Workshop on Programming Languages held at Williams, 10/88. Program chair for Workshop on the Introductory Course Sequence in Computer Science held at Trinity College, 1/91. Chaired session, organized working groups, and presented report on "Beyond CS1" at NECUSE Workshop on Computer Science Curricula held at Harvard University, 1/95.
Member of Survey Committee, CBMS survey of mathematical and computer science departments, 1985-1993.
Member of Liberal Arts Computer Science Consortium - Sloane Foundation supported group designing model computer science curriculum for liberal arts colleges, 1984-present. In charge of local arrangements for 4th annual meeting at Williams College, summer, 1987; Convener in 1988.
Chair and/or member of Visiting Committees in Computer Science at Amherst College, Harvey Mudd College, Oberlin College, Vassar College, Mount Holyoke College, Gettysburg College, Depauw University, University of Richmond, Colby College, Macalester College, and Simmons College.
Served on tenure committee in Computer Science at Washington and Lee University. Served on Ph.D. committee at RPI, U. of Mass. at Amherst and as external reader for Ph.D.'s at Free University of Brussels, U. of Pisa, Italy (Georgio Ghelli), and Ecole Normale Superieure, Paris (Giuseppe Castagna). Also served as external referee for tenure decisions at several colleges and universities.
Member of NSF Graduate Fellowship Evaluation Panel - Computer Science, 1992.
Referee for Information and Computation, TOPLAS, Mathematical Structures in Computer Science, Journal of Functional Programming, Theoretical Computer Science, SIAM Journal of Computing, Communications of ACM, Computer, Journal of Symbolic Logic, American Math Monthly, Addison-Wesley, John Wiley & Sons, MIT Press, National Science Foundation, National Educational Computing Conference, ACM thesis award competition, Acta Informatica, LOPLAS, LISP & Symbolic Computation, Computing Surveys, TAPOS, and too many conferences to count.
Reviewer for Math Reviews, Journal of Symbolic Logic.
Williams College Committee service: Ad hoc Technology Committee (chair, 2000), Committee on Appointments and Promotion (2000-2002), Faculty steering and compensation committee (chair, 1979-80), Faculty Compensation Committee (chair, 1994-95), Committee on Educational Policy (twice), Committee on Priorities and Resources, Committee on Academic Computing (chairman, 1985-87), Computer Control and Planning Committee, Computing Review Committee, Search committee for Computer Center Director and Director of Academic Computing, Division III & P Research Funding Committee, Science Executive Committee, AAUP Board of Directors, Williams College Sloan Grant Advisory Committee, Science Facilities Planning Committee (1993-present). Member of organizing committee for retreat on improving teaching at Williams, 1985.
Freshman advisor at Williams College.
Member - ACM, IEEE CS, SIGACT, SIGPLAN, SIGCSE, Sigma XI.
Secretary, Williamstown Education Foundation, 1992-97.
Volunteer in Williamstown Elementary School Computer lab. Taught course on HyperCard to Elementary teachers (1994).
Member, Mount Greylock H.S. Technology Advisory Council (1995).
Member, Williamstown Elementary School Technology Advisory Council (1996).
Member, search committee for computer teacher for Williamstown Elementary School (1995).