Vita for Kim B. Bruce

Department of Computer Science
Thompson Computer Science Lab
Williams College
47 Lab Campus Drive
Williamstown, MA 01267
kim@cs.williams.edu

Office Phone: (413) 597-2273

Quick index

Research Interests:

Semantics and design of programming languages: types, polymorphism, object-oriented and functional programming languages; computer science education; theory of computation; mathematical logic.

Professional and Teaching Experience:

Regular Positions:

Visiting positions

Education:

Research Grants and Fellowships:

Honors and Awards:

Publications:

Computer Science

Journal articles:

  1. (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.

  2. (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.

  3. (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.

  4. (with Mike Jipping) Imperative Programming Languages, chapter in Handbook of Computer Science and Engineering, (1996), pp. 1983-2005.

  5. Thoughts on Computer Science education, Computing Surveys, Vol. 28, No. 4es (December,1996), pp. 93-es.

  6. Progress in programming languages, Computing Surveys, 28(1996), pp. 245-247.

  7. (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.

  8. A paradigmatic object-oriented programming language: Design, static typing and semantics, Journal of Functional Programming 4(1994), pp. 127-206.

  9. (with R. Di Cosmo and G. Longo ) Provable isomorphisms of types, Mathematical Structures in Computer Science 2 (1992), pp. 231-247.

  10. Creating a new model curriculum: A rationale for Computing Curricula '91, Education and Computing, 7(1991), pp. 23-42.

  11. (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.

  12. (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.

  13. (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.

  14. (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).

Conference Proceedings and Technical Reports:

  1. (with Cristian Ungureanu and Suresh Jagannathan) An Object-Based Typed Intermediate Language for Java, NEC Technical Report, 1999.

  2. (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.

  3. Formal Semantics and Interpreters in a Principles of Programming Languages Course, to appear in Proceedings of the 1999 ACM SIGCSE Conference.

  4. (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.

  5. (with Leaf Petersen '96 and Joseph Vanderwaart '99 ) Modules in LOOM: Classes are not enough, Williams College Technical Report, 1998.

  6. Increasing Java's expressiveness with ThisType and match-bounded polymorphism, Williams College Technical Report, 1997.

  7. (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.

  8. Typing in object-oriented languages: Achieving expressiveness and safety, (technical report, 1997).

  9. (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.

  10. 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.

  11. (with R. van Gent '93 ) TOIL: A new Type-safe Object-oriented Imperative Language, Williams College Technical Report, 1993.

  12. (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.

  13. (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.

  14. 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.

  15. 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.

  16. (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.

  17. (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.

  18. (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.

  19. (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.

  20. (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.

  21. (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.

  22. (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.

Mathematics

  1. 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).

  2. Model Constructions in Stationary Logic, Part I: Forcing, Journal of Symbolic Logic 45 (1980), pp. 439-454 (reviewed in M.R. 82f: 03032).

  3. (with H. J. Keisler ) LA(F), Journal of Symbolic Logic 44 (1979), pp. 15 - 28 (reviewed in M.R. 80f: 03037).

  4. 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).

  5. 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).

  6. Model-Theoretic Forcing with a Generalized Quantifier, Doctoral Thesis, University of Wisconsin, Madison, 1975.

Published Reviews:

  1. 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.

  2. 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.

Contributor to:

  1. 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.

  2. 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.

  3. Teaching computer Science within mathematics departments, ed. by B. Haytock, Z. Karian, and S. Seltzer, Computer Science Education 1 (1990), pp. 181-203.

  4. 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.

Published Technical Correspondence:

  1. Letter protesting change of AP exam to C++, by Hal Abelson, Kim Bruce, Andy van Dam, Brian Harvey, Allen Tucker, and Peter Wegner, Communications of ACM 38 (June, 1995), pp. 116-117.

Lectures delivered:

Research Talks

  1. Yale University, "LOOM: An advanced type system for object-oriented programming languages",11/98. Lectures with similar titles given at Boston University, 2/99 and Cornell University, 3/99.
  2. Swarthmore College, "Designing expressive, yet safe, object-oriented languages", 11/98.
  3. University of Pennsylvania, "Modules in object-oriented languages", 10/98.
  4. New Jersey Programming Languages Seminar, NEC Research Institute, Princeton, NJ, "Semantics-driven language design: Statically type-save virtual types in object-oriented languages", 9/98.
  5. The Semantic Challenge of Object-Oriented Programming, Schloss Dagstruhl, Wadern Germany, "Grouping Constructs & Semantics in Object-Oriented Languages", 7/98.
  6. Fifth international workshop on foundations of object-oriented languages (FOOL 5), San Diego, "A statically safe alternative to virtual types", 1/98.
  7. Princeton University, "Modules in object-oriented languages", 10/97.
  8. International Workshop on Foundations of Object-Oriented Languages 4, Paris, "Subtyping is not a good "match" for object-oriented languages", 1/97.
  9. University of Massachusetts, Amherst, "Designing provably safe and flexible object-oriented languages", 12/96.
  10. Newton Institute of Mathematical Sciences, Cambridge, UK, "The search for a 'good' type discipline for object-oriented languages", 9/95. Also presented at Ecole Normale Superieure in Paris, Sheffield University (UK), M.I.T., Brown University, Colby College, and Wesleyan University, 10-12/95.
  11. Workshop on Advances in Type Systems for Computing, Cambridge, UK, "Subtyping is not a good match for OOL's", invited lecture, 8/95.
  12. ECOOP '95, Aarhus, Denmark, "PolyTOIL: A type-safe polymorphic object-oriented language", 8/95.
  13. Workshop on foundations of object-oriented languages, Paris, "The Design of PolyTOIL: Matching is better than Subtyping for Bounded Polymorphism in OOL's", 7/94.
  14. ACM OOPSLA '93 Symposium, Washington, D.C., "Type checking in TOOPLE is decidable," 9/93.
  15. Mathematical Foundations of Programming Semantics Symposium, New Orleans, LA, "An operational semantics for TOOPLE: A statically-typed object-oriented programming language," 4/93.
  16. Twentieth Annual Symposium on Principles of Programming Languages, Charleston, South Carolina, January, 1993, "Safe type checking in a statically-typed object-oriented programming language", 1/93.
  17. NYU Programming Languages Colloquium, "Designing a type-safe object-oriented programming language", 12/92.
  18. Harvard University Programming Languages Colloquium, "Designing a statically typed object-oriented programming language", 4/92.
  19. Nineteenth Annual Symposium on Principles of Programming Languages, Albequerque, New Mexico, "PER models of subtyping, recursive types and higher-order polymorphism," 1/92. A similar talk was given at DEC's Paris Research Lab, 11/91.
  20. Départment de Mathématiques et d'Informatique, Ecole Normale Superieure, Paris, "Mathematical Models of Subtyping and Inheritance in Object-Oriented Languages", 11/91.
  21. 2nd annual North American Jumelage, "Designing a type-safe object-oriented language," 10/91. A similar talk was given at a colloquium at the Universitè de Nancy, 11/91.
  22. Stanford University Logic Colloquium, two lectures on "The Semantics of Subtyping and Inheritance in object-oriented languages", Spring 1991. Also several presentations in C.S. Department subtyping seminar.
  23. Mathematical Foundations of Programming Semantics Symposium,"The Equivalence of Two Semantic Definitions of Typed Inheritance," Carnegie-Mellon University, March, 1991. The same or similar talk was also given at the Stanford Lambda Group Meeting (North American Jumelage), Stanford University, November, 1990, and at SRI, International in March, 1991.
  24. Hewlett-Packard Laboratories, "A semantic approach to polymorphic and object-oriented programming languages," June, 1989.
  25. University of Pennsylvania, "A semantics of subtypes and inheritance: Why object-oriented programming is not exactly FUN," November, 1988. A similar talk was given at SUNY, Albany, in November, 1988.
  26. Third Annual Symposium on Logic in Computer Science, Edinburgh, Scotland, July, 1988, "A modest model of records, inheritance, and bounded quantification."
  27. Carnegie-Mellon Workshop on Denotational Semantics and Category Theory. 4/88, "A modest model of records, inheritance, and bounded quantification."
  28. Workshop on Database and Programming Languages, Roscoff, France, September, 1987, "An Algebraic Model of Subtype and Inheritance."
  29. A. T. & T. Bell Laboratories, March, 1987, "An Algebraic Model of Subtype and Inheritance."
  30. University of Pisa, Italy, January, 1987, "Types, Subtypes, and Inheritance in Object-Oriented Languages."
  31. Brown University, December, 1986, "Types, Subtypes, and Inheritance in Object-Oriented Languages."
  32. Boston College, November, 1986, "Types, Subtypes, and Inheritance in Object-Oriented Languages."
  33. Wesleyan University Computer Science Colloquium, November, 1986, "Are Denotational Semantics Meaningful?"
  34. Object-Oriented Programming Workshop, I.B.M., Yorktown Heights, June, 1986, "An Algebraic Model of Subtypes in Object-Oriented Languages."
  35. 1st Symposium on Logic in Computer Science, June, 1986, "The finitary projection model for second order lambda calculus and solutions to higher order domain equations."
  36. Brown U. Computer Science Colloquium, February, 1986, "Models of types in programming languages."
  37. STOC (17th ACM Symposium on Theory of Computing), May, 1985, "Provable isomorphisms and domain equations in models of typed languages."
  38. MIT Computer Science Colloquium, August, 1984, "The semantics of polymorphism."
  39. International Symposium on the Semantics of Data Types, Sophia-Antipolis, France, June, 1984, "The semantics of second-order polymorphic lambda calculus."
  40. ASL annual meeting, December, 1983, "The semantics of the polymorphic lambda calculus."
  41. MIT Denotational Semantics Seminar, several talks during 1980-81.
  42. Yale Logic Seminar, March, 1979, "Stationary logic."
  43. Boston College, March, 1979, "Model theory and logics with generalized quantifiers."
  44. University of Wisconsin Logic Seminar, July, 1978, "Definable ultrapowers and stationary logic."
  45. Union College Mini-Logic Conference, May, 1978, "Model constructions in stationary logic."
  46. Stanford Logic Seminar, July, 1977, "Stationary logic."
  47. Princeton Logic Seminar, several talks during 1975-77.
  48. Philadelphia Logic Colloquium, Nov., 1976, "Forcing and generalized quantifiers."
  49. AMS annual meeting, Jan., 1976, "A strong notion of model-completeness in L(Q)."
  50. ASL annual meeting, Jan., 1975, "Model-Theoretic Forcing in L(Q)."

Expository Talks

  1. OOPSLA Workshop on the Future of CS 2 and Data Structures, Vancouver, Canada, "CS 2: How did we get here? Where should we be going?", 10/98.
  2. "Programming Paradigms & Data Structures: Experience report," LACS summer workshop at Swarthmore College, 6/94, and invited lecture NECUSE CS Curriculum workshop, Harvard University, 1/95.
  3. SIGCSE '94, "Attracting (& Keeping) the Best and the Brightest: An entry-level course for experienced introductory students," Phoenix, 3/94
  4. Harvard University, "Thoughts on a new introductory curriculum at Williams College," invited lecture at NECUSE Workshop on the introductory Computer Science curriculum, 1/93.
  5. Départment de Mathématiques et d'Informatique, Ecole Normale Superieure, Paris, "Using mathematical models in programming language design," 11/91.
  6. Washington and Lee University, "The foundations of object-oriented programming languages", February, 1991. A similar talk was given at Pomona College in April, 1991.
  7. New England Consortium on Undergraduate Science Education, Workshop on the Introductory Course Sequence in Computer Science, 1/91, "An Innovative introductory computer science course involving experimental parallel architectures."
  8. New England Consortium on Undergraduate Science Education, Workshop on Parallelism, 1/90, "A unit on parallel architectures for an enriched introductory course."
  9. New England Consortium on Undergraduate Science Education, Workshop on Programming Language Paradigms, 10/88, "Curriculum '8x and Programming Languages."
  10. Great Lakes College Association meeting on Computer Science, 3/88. Keynote speaker on "The Computer Science Curriculum: The seach for a core in a DARC discipline."
  11. Williams College, March, 1986, " 'Star Wars' software is beyond our reach," as part of a panel on the Strategic Defense Initiative.
  12. Williams College Faculty Lecture, February, 1984, Pomona College, April, 1985, "Problems with paradoxes."
  13. Williams College Sigma Xi Lectures, November, 1981, "Can one reason about programs: The logic and semantics of programs."
  14. Wellesley College, April, 1981, "Public-key cryptography."
  15. Wesleyan University, Beloit College, April, 1979, "Proving programs correct."
  16. Williams College, Oct., 1977, "Infinite games, topology, and the continuum hypothesis."
  17. Carleton College, Williams College, Amherst College, Princeton University, Hamilton College, Union College, 1975-77, "Non-standard analysis."

Panels

  1. SIGCSE '98, "Logic in the Computer Science Curriculum", Atlanta, GA, February, 1998.
  2. New Facilities Strategies for Colleges, Universities and Medical Schools, "Computer-aided instructional spaces: Here, there, and everywhere", Hilton Head, SC, November, 1997.
  3. Workshop on teaching logic and reasoning in an illogical world, "Teaching Logic in Computer Science", New Brunswick, NJ, July, 1996.
  4. SIGCSE '94, "Describing the CS forest to undergraduates," Phoenix, AZ, March, 1994.
  5. ACM POPL '94, Chaired panel following tutorials on object-oriented programming languages and systems, Portland, Oregon, January 1994.
  6. IEEE CompCon 1991, "Final report of the ACM/IEEE Joint Curriculum Task Force", San Francisco, February, 1991.
  7. "Informatics Curricula for the 1990s," an international workshop sponsored by IFIP Working Group 3.2 on Informatics (Computer Science) Education at the University Level, 4/90. Chaired panel on the "ACM / IEEE Computer Society Modular Curriculum."
  8. SIGCSE Technical Symposium on Computer Science Education, 2/89, "ACM/IEEE-CS Curriculum Task Force."
  9. SIGCSE Technical Symposium on Computer Science Education, 2/89, "Report of the ACM/MAA/IEEE-CS Task Force on the Teaching of Computer Science in Mathematics Departments," Chair.
  10. Great Lakes College Association meeting on Computer Science, 3/88, "Teaching Computer Science within Mathematics Departments."
  11. Eastern Small College Computing Conference, October, 1987, "Recruiting and Retaining College Faculty in Computer Science."
  12. SIGCSE Technical Symposium on Computer Science Education, February, 1986, "Teaching Computer Science within Mathematics Departments."
  13. NERCOMP Conference on Computer Science Education and Curriculum, November, 1985, Amherst, "Model curriculum for a liberal arts degree in computer science."
  14. ACM '85, Denver, Colorado, October, 1985, "Model curriculum for a liberal arts degree in computer science."
  15. SIGCSE Technical Symposium on Computer Science Education, March, 1985, New Orleans, "A draft curriculum for high-quality BA programs in CS."

Tutorials

  1. ECOOP '96, "Static Typing in Object-Oriented Languages: Achieving expressiveness and safety," Linz, Austria, 7/76. Repeated at OOPSLA '96, San Jose, CA, 10/96, and U. of Massachusetts, Amherst, 12/96. Revised version presented at ECOOP '98 in Brussels, Belgium, 7/98, and OOPSLA '98 in Vancouver, Canada, 10/98.

Senior Theses Directed

Williams College

Princeton University

Selected Other Professional Activities:

Selected Community Activities: