Carl Eddie Hewitt (/ˈhjuːɪt/; 1944 – 7 December 2022)[2] was an American computer scientist who designed the Planner programming language for automated planning[3] and the actor model of concurrent computation,[4] which have been influential in the development of logic, functional and object-oriented programming. Planner was the first programming language based on procedural plans invoked using pattern-directed invocation from assertions and goals. The actor model influenced the development of the Scheme programming language,[5] the π-calculus,[6] and served as an inspiration for several other programming languages.[7]
Carl Hewitt | |
---|---|
![]() Carl Hewitt in 2008 | |
Born | 1944[1] |
Died | (aged 77) |
Alma mater | MIT |
Known for | Actor model Inconsistency robustness Planner (logic programs) Comparative schematology |
Scientific career | |
Fields | Computer science Mathematical logic Model of computation Programming languages Philosophy of logic |
Institutions | MIT Keio University Stanford University |
Doctoral advisor | Seymour Papert |
Other academic advisors | Marvin Minsky Mike Paterson |
Doctoral students | Gul Agha Henry Baker William Clinger Irene Greif Akinori Yonezawa |
Education and career
Hewitt obtained his PhD in mathematics at MIT in 1971, under the supervision of Seymour Papert, Marvin Minsky, and Mike Paterson. He began his employment at MIT that year,[8] and retired from the faculty of the MIT Department of Electrical Engineering and Computer Science during the 1999–2000 school year.[9] He became emeritus in the department in 2000.[10] Among the doctoral students that Hewitt supervised during his time at MIT are Gul Agha, Henry Baker, William Clinger, Irene Greif, and Akinori Yonezawa.[11]
From September 1989 to August 1990, Hewitt was the IBM Chair Visiting Professor in the Department of Computer Science at Keio University in Japan.[12] He has also been a visiting professor at Stanford University.
Research
Hewitt was best known for his work on the actor model of computation. For the last decade, his work had been in "inconsistency robustness", which aims to provide practical rigorous foundations for systems dealing with pervasively inconsistent information.[13] This work grew out of his doctoral dissertation focused on the procedural (as opposed to logical) embedding of knowledge, which was embodied in the Planner programming language.
His publications also include contributions in the areas of open information systems,[14] organizational and multi-agent systems,[15] logic programming,[3] concurrent programming, paraconsistent logic[16] and cloud computing.[17]
Planner
The Planner language was developed during the late 1960s as part of Hewitt's doctoral research in MIT's Artificial Intelligence Laboratory. Hewitt's work on Planner introduced the notion of the "procedural embedding of knowledge",[18] which was an alternative to the logical approach to knowledge encoding for artificial intelligence pioneered by John McCarthy.[19] Planner has been described as "extremely ambitious".[20] A subset of Planner called Micro-Planner was implemented at MIT by Gerry Sussman, Drew McDermott, Eugene Charniak and Terry Winograd[21] and was used in Winograd's SHRDLU program,[22] Charniak's natural language story understanding work,[23] and L. Thorne McCarty's work on legal reasoning.[24] Planner was almost completely implemented in Popler[25] by Julian Davies at Edinburgh. Planner also influenced the later development of other AI research languages such as Muddle and Conniver,[20] as well as the Smalltalk object-oriented programming language.[26]
Hewitt's own work on Planner continued with Muddle (later called MDL), which was developed in the early 1970s by Sussman, Hewitt, Chris Reeve, and David Cressey as a stepping-stone towards a full implementation of Planner. Muddle was implemented as an extended version of Lisp, and introduced several features that were later adopted by Conniver, Lisp Machine Lisp, and Common Lisp.[20] However, in late 1972 Hewitt abruptly halted his development of the Planner design in his thesis, when he and his graduate students invented the actor model of computation.
Actor model
Hewitt's work on the actor model of computation spanned over 30 years, beginning with the introduction of the model in a 1973 paper authored by Hewitt, Peter Bishop, and Richard Steiger,[27] and including new results on actor model semantics published as recently as 2006.[28] Much of this work was carried out in collaboration with students in Hewitt's Message Passing Semantics Group at MIT's Artificial Intelligence Lab.[29]
Sussman and Steele developed the Scheme programming language in an effort to gain a better understanding of the actor model. They discovered that their operator to create an actor, ALPHA, and their operator to create a function, LAMBDA, were identical, so they only kept LAMBDA for both.[30][31] A number of other programming languages were developed to specifically implement the actor model, such as ACT-1,[32] SALSA,[33] Caltrop,[34] E[7] and ActorScript.[35] The actor model also influenced the development of the π-calculus.[36] (See actor model and process calculi history.)
Selected works
- Carl Hewitt (1969). PLANNER: A Language for Proving Theorems in Robots IJCAI'69.
- Carl Hewitt, Peter Bishop and Richard Steiger (1973). A Universal Modular Actor Formalism for Artificial Intelligence IJCAI'73.
- Carl Hewitt and Henry Baker (1977a). Laws for Communicating Parallel Processes IFIP'77.
- Carl Hewitt and Henry Baker (1977b). Actors and Continuous Functionals Proceeding of IFIP Working Conference on Formal Description of Programming Concepts. August 1–5, 1977.
- William Kornfeld and Carl Hewitt (1981). The Scientific Community Metaphor IEEE Transactions on Systems, Man, and Cybernetics. January 1981.
- Henry Lieberman and Carl E. Hewitt (1983). A Real-Time Garbage Collector Based on the Lifetimes of Objects Communications of the ACM, 26(6).
- Carl Hewitt (1985). The Challenge of Open Systems Byte Magazine. April 1985. (Reprinted in The foundation of artificial intelligence—a sourcebook Cambridge University Press. 1990
See also
References
- ^ "Carl Hewitt Obituary (1944 - 2022) - Aptos, CA - Santa Cruz Sentinel". Legacy.com.
- ^ Carl Hewitt Stanford. 2022.
- ^ a b Carl Hewitt. PLANNER: A Language for Proving Theorems in Robots IJCAI. 1969.
- ^ Filman, Robert; Daniel Friedman (1984). "Actors". Coordinated Computing - Tools and Techniques for Distributed Software. McGraw-Hill. p. 145. ISBN 978-0-07-022439-1. Retrieved 2007-04-22.
Carl Hewitt and his colleagues at M.I.T. are developing the Actor model.
- ^ Krishnamurthi, Shriram (December 1994). "An Introduction to Scheme". Crossroads. 1 (2): 19–27. doi:10.1145/197149.197166. S2CID 9782289. Archived from the original on 2007-04-25. Retrieved 2007-04-22.
- ^ Milner, Robin (January 1993). "ACM Turing Award Lecture: The Elements of Interaction". Communications of the ACM. 36 (1): 78–89. doi:10.1145/151233.151240. S2CID 14586773.
- ^ a b Miller, Mark S. (2006). Robust Composition - Towards a Unified Approach to Access Control and Concurrency Control (PDF) (PhD). Johns Hopkins University. Archived from the original (PDF) on 2007-08-10. Retrieved 2007-05-26.
- ^ MIT News Office (April 10, 1996). "Quarter Century Club inducts 73 new members". Retrieved 2007-06-19.
- ^ John V. Guttag (2000). "MIT Reports to the President 1999–2000 – Department of Electrical Engineering and Computer Science". Retrieved 2007-06-19.
- ^ "Stanford EE Computer Systems Colloquium". Stanford University. Retrieved 30 July 2011.
- ^ Carl Hewitt (2007). "Academic Biography of Carl Hewitt". Archived from the original on 2009-09-07. Retrieved 2007-11-22.
- ^ Ryuichiro Ohyama (1991). "Department of Computer Science-Recent and Current Visiting Professors". Archived from the original on 2007-04-30. Retrieved 2007-06-19.
- ^ Hewitt, Carl; Woods, John, eds. (2015). Inconsistency Robustness. Studies in Logic. Vol. 52. College Publications. p. 614. ISBN 9781848901599.
- ^ Carl Hewitt (1986). "Offices Are Open Systems". ACM Trans. Inf. Syst. 4 (3): 271–287. doi:10.1145/214427.214432. S2CID 18029528.
- ^ Jacques Ferber (1999). Multi-Agent Systems: An Introduction to Distributed Artificial Intelligence. Addison-Wesley.
- ^ Hewitt, Carl (2008). "Large-scale Organizational Computing requires Unstratified Reflection and Strong Paraconsistency". In Sichman, Jaime; Noriega, Pablo; Padget, Julian; Ossowski, Sascha (eds.). Coordination, Organizations, Institutions, and Norms in Agent Systems III. Springer-Verlag. ISBN 978-3-540-79002-0.
- ^ Carl Hewitt (September–October 2008). "ORGs for Scalable, Robust, Privacy-Friendly Client Cloud Computing". IEEE Internet Computing. 12 (5).
- ^ Carl Hewitt. Procedural Embedding of Knowledge In Planner IJCAI. 1971.
- ^ Philippe Rouchy, Aspects of PROLOG History: Logic Programming and Professional Dynamics, TeamEthno-Online Issue 2, June 2006, 85-100.
- ^ a b c Sussman, Gerald Jay; Guy L. Steele (1998). "The First Report on Scheme Revisited" (PDF). Higher-Order and Symbolic Computation. 11 (4): 399–404. doi:10.1023/A:1010079421970. S2CID 7704398. Archived from the original (PDF) on 2006-06-15. Retrieved 2009-01-03.
- ^ Gerry Sussman and Terry Winograd. Micro-planner Reference Manual AI Memo No, 203, MIT Project MAC, July 1970.
- ^ Terry Winograd. Procedures as a Representation for Data in a Computer Program for Understanding Natural Language MIT AI TR-235. January 1971.
- ^ Marvin Minsky and Seymour Papert. "Progress Report on Artificial Intelligence" MIT AI Memo 252. 1971.
- ^ L. Thorne McCarty. "Reflections on TAXMAN: An Experiment on Artificial Intelligence and Legal Reasoning" Harvard Law Review. Vol. 90, No. 5, March 1977
- ^ Julian Davies. Popler 1.6 Reference Manual University of Edinburgh, TPU Report No. 1, May 1973.
- ^ Kay, Alan; Stefan Ram (2003-07-23). "E-Mail of 2003-07-23". Dr. Alan Kay on the Meaning of "Object-Oriented Programming". Retrieved 2009-01-03.
- ^ Hewitt, Carl; Bishop, Peter; Steiger, Richard (1973). A Universal Modular Actor Formalism for Artificial Intelligence (PDF). International Joint Conference on Artificial Intelligence.
- ^ Carl Hewitt What is Commitment? Physical, Organizational, and Social COIN@AAMAS. April 27, 2006.
- ^ Mark S. Miller. "Actors: Foundations for Open Systems". Retrieved 2007-06-20.
- ^ Hewitt, Carl (2010). "Actor Model of computation". arXiv:1008.1459 [cs.PL].
- ^ Sussman, Gerald Jay; Guy L. Steele (1998). "The First Report on Scheme Revisited" (PDF). Higher-Order and Symbolic Computation. 11 (4): 399–404. doi:10.1023/A:1010079421970. S2CID 7704398. Archived from the original (PDF) on 2006-06-15.
- ^ Henry Lieberman, "Concurrent Object-Oriented Programming in Act 1", In Object-Oriented Concurrent Programming, A. Yonezawa and M. Tokoro, eds., MIT Press, 1987.
- ^ C. Varela and G. Agha. Programming Dynamically Reconfigurable Open Systems with SALSA. OOPSLA 2001 Intriguing Technology Track. ACM SIGPLAN Notices, 36(12):20-34, December 2001.
- ^ Eker, Johan; Janneck, Jörn W. (2001-11-28). "An introduction to the Caltrop actor language" (PDF). Retrieved 2007-06-20.
- ^ Hewitt, Carl (2010). "ActorScript extension of C#, Java, andObjective C". arXiv:1008.2748 [cs.PL].
- ^ Robin Milner Elements of interaction: Turing award lecture CACM. January 1993.
External links
- Carl Hewitt at DBLP Bibliography Server
- Carl Eddie Hewitt at the Mathematics Genealogy Project
- Hewitt's official blog