H N Y 9 7 3 4 8 :

107 Kenneth M. Kahn

As part of my master's thesis at MIT, I implemented two versions of a time specialist, a computer program
capable of accepting a wide range of temporal statements, checking their consistency, and making
inferences to answer questions [52, 2]. Following that I joined the LOGO group and taught elementary
school children to do natural language programming [51] and computer animation [67] using several small
systems I built for this purpose [1]. In 1983, while consulting for Atari, I resumed research on natural
language tools for children, this time based upon Prolog [5].
From 1976 to 1980 I was the designer and implementer of the object-oriented computer language
"Director" [23, 56, 60, 54]. Director was used for programming computer animation, knowledge-based
systems, and experiments in programming by children. Simultaneously, I was working on my doctoral
thesis, building a system capable of automatically creating simple computer-animated films on the basis of
vague, incomplete story descriptions [53, 24, 26, 27, 55]. During this time, I took courses in animation and
filmmaking (two at Harvard University) and made several films which were shown at film festivals, local
theaters, and cable TV [67, 68, 70, 69]. In 1988 and 1989, as a refresher, I took three animation courses at
De Anza College and made several short animated films.
After a year as a Lecturer and Research Scientist at MIT in 1979, I went to Sweden, initially to the
University of Stockholm, and then to Uppsala University, where I began exploring multi-paradigm
programming. After learning about Prolog, I used it to implement an actor language, "Intermission" [4].
Next came "Uniform", a language based on extended unification [8, 3]. The language was an attempt to
combine the important features of Lisp, actor languages, and Prolog into a simple coherent framework. My
research on combining the best of Lisp and Prolog led to my design and, with a colleague, implementation
of LM-Prolog [57, 7, 58, 30, 31], an extended Prolog system on Lisp Machines that was sold by Lisp
Machines, Incorporated.
While in Sweden I become excited about the potential for partial evaluation to win back performance
sacrificed in the quest for simple generic programs. As a realistic example, I worked on automatically
generating a compiler from LM-Prolog to Lisp by doing partial evaluation of the LM-Prolog interpreter
written in Lisp [28, 29, 6]. The partial evaluator was written in LM-Prolog and generated efficient
specializations of Lisp programs. It was during this period that my close interactions with the Japanese Fifth
Generation Project began [14].
From Sweden I went to Xerox Palo Alto Research Center (PARC) to continue my research on multiparadigm
systems with the "LOOPS" group. During 1985, I was one of the two designers of CommonLoops
[9], the basis of the Common Lisp Object System (CLOS) standard. At this time I was also chair of the
Common Lisp object-oriented programming subcommittee. (Despite having been instrumental in bringing
CLOS to the world, I am not particularly proud of it.) During this period, I also collaborated on other
projects with several researchers at PARC. These ranged from CoLab (pioneering software support for
collaboration) [12], virtual copies (a new approach to creating computational objects) [33], and integrating
access-oriented programming with other programming paradigms [10].
In 1986 I started and led the Vulcan project, whose purpose was building high level programming
abstractions within a concurrent logic programming framework [32, 59, 11, 34, 60, 62, 61]. For nearly two
years I managed a project consisting of six researchers. Much of the research focused upon programming
language support for building distributed systems [13]. When funding was cut, similar efforts were
continued, though on a smaller scale [40, 64, 37, 35]. I focused upon connections between concurrent logic
(and more generally constraint) programming and concurrent object-oriented frameworks or actors [63, 38,
36]. The theme underlying Vulcan and subsequent research was "clean and small but real".
From 1989 to 1992, I combined my interest in animation with my interests in language design and
concurrency by leading a project to visualize concurrent programs and animate their executions in a
coherent and general manner [39, 71]. My efforts resulted in a picture parser and an animator capable of
interpreting PostScript drawings of concurrent constraint programs and automatically producing animations
of program executions [41]. I explored applications of this system to visualizing object-oriented designs
[66], real-time control, and non-programming uses (e.g. workflow and animated proofs [65]).
In September 1992 I left Xerox PARC to found Animated Programs, a company whose mission is to bring
the power and fun of programming to children and adults. I am the sole designer and developer of
ToonTalk, a concurrent animated programming language [42, 43, 15, 16, 44, 17, 45, 46, 18, 47, 19, 21, 50].
I have presented ToonTalk at a dozen conferences on game development and educational software and
have advised doctoral students [20, 49] whose research built upon ToonTalk.
I have participated in two EU-funded educational research projects building upon ToonTalk [48, 22]:
Playground, which supported very young children in making their own computer games; and WebLabs,
where children build scientific models, explore mathematics computationally, and publish reports with
runnable models on the Web. In both projects my role included supporting and enhancing the technologies
underlying the research, contributing to project design and planning, building tools and components for use
by both children and researchers, helping children use these tools to build games or to explore science and
mathematics, and testing the tools and learning material with children.
I taught elementary school children to program graphics, animation, and natural language while a member
of the Logo Group of the MIT AI Laboratory in 1975. Since 1995 I have been teaching ToonTalk to
children. I taught fourth grade students at the Encinal School in Menlo Park, California for several hours a
week for three years. I taught a diverse group of children at Plugged In Greenhouse (a creative arts and
technology studio for low income children between 6 to 12 years old) in East Palo Alto, California. I taught
ToonTalk workshops in museums in San Jose, California and Tokyo, Japan. Most recently, I have worked
with children at the Theydon Bois Primary School in Essex and the Cherwell School in Oxford on exploring
infinite sets in ToonTalk as part of the WebLabs Project.