Mutant Languages from the LISP Lab
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
A Universal Modular ACTOR Formalism for Artificial
Artificial Intelligence A Universal Modular ACTOR Formalism for Artificial Intelligence Carl Hewitt Peter Bishop Richard Steiger Abstract This paper proposes a modular ACTOR architecture and definitional method for artificial intelligence that is conceptually based on a single kind of object: actors [or, if you will, virtual processors, activation frames, or streams]. The formalism makes no presuppositions about the representation of primitive data structures and control structures. Such structures can be programmed, micro-coded, or hard wired 1n a uniform modular fashion. In fact it is impossible to determine whether a given object is "really" represented as a list, a vector, a hash table, a function, or a process. The architecture will efficiently run the coming generation of PLANNER-like artificial intelligence languages including those requiring a high degree of parallelism. The efficiency is gained without loss of programming generality because it only makes certain actors more efficient; it does not change their behavioral characteristics. The architecture is general with respect to control structure and does not have or need goto, interrupt, or semaphore primitives. The formalism achieves the goals that the disallowed constructs are intended to achieve by other more structured methods. PLANNER Progress "Programs should not only work, but they should appear to work as well." PDP-1X Dogma The PLANNER project is continuing research in natural and effective means for embedding knowledge in procedures. In the course of this work we have succeeded in unifying the formalism around one fundamental concept: the ACTOR. Intuitively, an ACTOR is an active agent which plays a role on cue according to a script" we" use the ACTOR metaphor to emphasize the inseparability of control and data flow in our model. -
Oral History Interview with Severo Ornstein and Laura Gould
An Interview with SEVERO ORNSTEIN AND LAURA GOULD OH 258 Conducted by Bruce H. Bruemmer on 17 November 1994 Woodside, CA Charles Babbage Institute Center for the History of Information Processing University of Minnesota, Minneapolis Severo Ornstein and Laura Gould Interview 17 November 1994 Abstract Ornstein and Gould discuss the creation and expansion of Computer Professionals for Social Responsibility (CPSR). Ornstein recalls beginning a listserve at Xerox PARC for those concerned with the threat of nuclear war. Ornstein and Gould describe the movement of listserve participants from e-mail discussions to meetings and forming a group concerned with computer use in military systems. The bulk of the interview traces CPSR's organizational growth, fundraising, and activities educating the public about computer-dependent weapons systems such as proposed in the Strategic Defense Initiative (SDI). SEVERO ORNSTEIN AND LAURA GOULD INTERVIEW DATE: November 17, 1994 INTERVIEWER: Bruce H. Bruemmer LOCATION: Woodside, CA BRUEMMER: As I was going through your oral history interview I began to wonder about your political background and political background of the people who had started the organization. Can you characterize that? You had mentioned in your interview that you had done some antiwar demonstrations and that type of thing which is all very interesting given also your connection with DARPA. ORNSTEIN: Yes, most of the people at DARPA knew this. DARPA was not actually making bombs, you understand, and I think in the interview I talked about my feelings about DARPA at the time. I was strongly against the Vietnam War and never hid it from anyone. I wore my "Resist" button right into the Pentagon and if they didn't like it they could throw me out. -
Backmatter In
Appendices Bibliography This book is a little like the previews of coming attractions at the movies; it's meant to whet your appetite in several directions, without giving you the complete story about anything. To ®nd out more, you'll have to consult more specialized books on each topic. There are a lot of books on computer programming and computer science, and whichever I chose to list here would be out of date by the time you read this. Instead of trying to give current references in every area, in this edition I'm listing only the few most important and timeless books, plus an indication of the sources I used for each chapter. Computer science is a fast-changing ®eld; if you want to know what the current hot issues are, you have to read the journals. The way to start is to join the Association for Computing Machinery, 1515 Broadway, New York, NY 10036. If you are a full-time student you are eligible for a special rate for dues, which as I write this is $25 per year. (But you should write for a membership application with the current rates.) The Association publishes about 20 monthly or quarterly periodicals, plus the newsletters of about 40 Special Interest Groups in particular ®elds. 341 Read These! If you read no other books about computer science, you must read these two. One is an introductory text for college computer science students; the other is intended for a nonspecialist audience. Abelson, Harold, and Gerald Jay Sussman with Julie Sussman, Structure and Interpretation of Computer Programs, MIT Press, Second Edition, 1996. -
The Evolution of Lisp
1 The Evolution of Lisp Guy L. Steele Jr. Richard P. Gabriel Thinking Machines Corporation Lucid, Inc. 245 First Street 707 Laurel Street Cambridge, Massachusetts 02142 Menlo Park, California 94025 Phone: (617) 234-2860 Phone: (415) 329-8400 FAX: (617) 243-4444 FAX: (415) 329-8480 E-mail: [email protected] E-mail: [email protected] Abstract Lisp is the world’s greatest programming language—or so its proponents think. The structure of Lisp makes it easy to extend the language or even to implement entirely new dialects without starting from scratch. Overall, the evolution of Lisp has been guided more by institutional rivalry, one-upsmanship, and the glee born of technical cleverness that is characteristic of the “hacker culture” than by sober assessments of technical requirements. Nevertheless this process has eventually produced both an industrial- strength programming language, messy but powerful, and a technically pure dialect, small but powerful, that is suitable for use by programming-language theoreticians. We pick up where McCarthy’s paper in the first HOPL conference left off. We trace the development chronologically from the era of the PDP-6, through the heyday of Interlisp and MacLisp, past the ascension and decline of special purpose Lisp machines, to the present era of standardization activities. We then examine the technical evolution of a few representative language features, including both some notable successes and some notable failures, that illuminate design issues that distinguish Lisp from other programming languages. We also discuss the use of Lisp as a laboratory for designing other programming languages. We conclude with some reflections on the forces that have driven the evolution of Lisp. -
An Algebraic Theory of Actors and Its Application to a Simple Object-Based Language
An Algebraic Theory of Actors and Its Application to a Simple Object-Based Language Gul Agha and Prasanna Thati University of Illinois at Urbana-Champaign, USA {agha,thati}@cs.uiuc.edu http://osl.cs.uiuc.edu/ 1 Introduction The development of Simula by Ole-Johan Dahl and Kristen Nygaard introduced a number of important programming language concepts – object which supports modularity in programming through encapsulation of data and procedures, the concept of class which organizes behavior and supports Abstract Data Types, and the concept inheritance which provides subtyping relations and reuse [6]. Peter Wegner terms programming languages which use objects as object-based languages, and reserves the term object-oriented languages for languages which also support classes and inheritance [58]. Concurrency provides a natural model for the execution of objects: in fact, Simula uses co-routines to simulate a simple form of concurrency in a sequen- tial execution environment. The resulting execution is tightly synchronized and, while this execution model is appropriate for simulations which use a global virtual clock, it is not an adequate model for distributed systems. The Actor Model unifies the notion of objects with concurrency; an actor is a concurrent object which operates asynchronously and interacts with other actors by sending asynchronous messages [2]. Many models for concurrent and distributed computation have been devel- oped. An early and influential model is Petri Nets developed by Carl Adam Petri [44]. In the Petri Net model, there are two kinds of elements – nodes and tokens. Nodes are connected to other nodes by fixed (static) links. Tokens are passed be- tween nodes using these links. -
Actorscript™ Extension of C#®, Java®, Objective C®, Javascript ®, and Systemverilog Using Iadaptivetm Concurrency for Anti
ActorScript™ extension of C#®, Java®, Objective C®, JavaScript®, and SystemVerilog using iAdaptiveTM concurrency for antiCloudTM privacy and security Carl Hewitt This article is dedicated to Ole-Johan Dahl and Kristen Nygaard. Message passing using types is the foundation of system communication: Messages are the unit of communication Types enable secure communication Actors ActorScript™ is a general purpose programming language for implementing iAdaptiveTM concurrency that manages resources and demand. It is differentiated from previous languages by the following: Universality o Ability to directly specify exactly what Actors can and cannot do o Everything is accomplished with message passing using types including the very definition of ActorScript itself. Messages can be directly communicated without requiring indirection through brokers, channels, class hierarchies, mailboxes, pipes, ports, queues etc. Programs do not expose low-level implementation mechanisms such as threads, tasks, locks, cores, etc. Application binary interfaces are afforded so that no program symbol need be looked up at runtime. Functional, Imperative, Logic, and Concurrent programs are integrated. A type in ActorScript is an interface that does not name its implementations (contra to object-oriented programming languages beginning with Simula that name implementations called “classes” that are types). ActorScript can send a message to any Actor for which it has an (imported) type. 1 o Concurrency can be dynamically adapted to resources available and current load. Safety, security and readability o Programs are extension invariant, i.e., extending a program does not change the meaning of the program that is extended. o Applications cannot directly harm each other. o Variable races are eliminated while allowing flexible concurrency. -
Actor Model of Computation
Published in ArXiv http://arxiv.org/abs/1008.1459 Actor Model of Computation Carl Hewitt http://carlhewitt.info This paper is dedicated to Alonzo Church and Dana Scott. The Actor model is a mathematical theory that treats “Actors” as the universal primitives of concurrent digital computation. The model has been used both as a framework for a theoretical understanding of concurrency, and as the theoretical basis for several practical implementations of concurrent systems. Unlike previous models of computation, the Actor model was inspired by physical laws. It was also influenced by the programming languages Lisp, Simula 67 and Smalltalk-72, as well as ideas for Petri Nets, capability-based systems and packet switching. The advent of massive concurrency through client- cloud computing and many-core computer architectures has galvanized interest in the Actor model. An Actor is a computational entity that, in response to a message it receives, can concurrently: send a finite number of messages to other Actors; create a finite number of new Actors; designate the behavior to be used for the next message it receives. There is no assumed order to the above actions and they could be carried out concurrently. In addition two messages sent concurrently can arrive in either order. Decoupling the sender from communications sent was a fundamental advance of the Actor model enabling asynchronous communication and control structures as patterns of passing messages. November 7, 2010 Page 1 of 25 Contents Introduction ............................................................ 3 Fundamental concepts ............................................ 3 Illustrations ............................................................ 3 Modularity thru Direct communication and asynchrony ............................................................. 3 Indeterminacy and Quasi-commutativity ............... 4 Locality and Security ............................................ -
Development of Logic Programming: What Went Wrong, What Was Done About It, and What It Might Mean for the Future
Development of Logic Programming: What went wrong, What was done about it, and What it might mean for the future Carl Hewitt at alum.mit.edu try carlhewitt Abstract follows: A class of entities called terms is defined and a term is an expression. A sequence of expressions is an Logic Programming can be broadly defined as “using logic expression. These expressions are represented in the to deduce computational steps from existing propositions” machine by list structures [Newell and Simon 1957]. (although this is somewhat controversial). The focus of 2. Certain of these expressions may be regarded as this paper is on the development of this idea. declarative sentences in a certain logical system which Consequently, it does not treat any other associated topics will be analogous to a universal Post canonical system. related to Logic Programming such as constraints, The particular system chosen will depend on abduction, etc. programming considerations but will probably have a The idea has a long development that went through single rule of inference which will combine substitution many twists in which important questions turned out to for variables with modus ponens. The purpose of the combination is to avoid choking the machine with special have surprising answers including the following: cases of general propositions already deduced. Is computation reducible to logic? 3. There is an immediate deduction routine which when Are the laws of thought consistent? given a set of premises will deduce a set of immediate This paper describes what went wrong at various points, conclusions. Initially, the immediate deduction routine what was done about it, and what it might mean for the will simply write down all one-step consequences of the future of Logic Programming. -
A Debate on Teaching Computing Science
Teaching Computing Science t the ACM Computer Science Conference last Strategic Defense Initiative. William Scherlis is February, Edsger Dijkstra gave an invited talk known for his articulate advocacy of formal methods called “On the Cruelty of Really Teaching in computer science. M. H. van Emden is known for Computing Science.” He challenged some of his contributions in programming languages and the basic assumptions on which our curricula philosophical insights into science. Jacques Cohen Aare based and provoked a lot of discussion. The edi- is known for his work with programming languages tors of Comwunications received several recommenda- and logic programming and is a member of the Edi- tions to publish his talk in these pages. His comments torial Panel of this magazine. Richard Hamming brought into the foreground some of the background received the Turing Award in 1968 and is well known of controversy that surrounds the issue of what be- for his work in communications and coding theory. longs in the core of a computer science curriculum. Richard M. Karp received the Turing Award in 1985 To give full airing to the controversy, we invited and is known for his contributions in the design of Dijkstra to engage in a debate with selected col- algorithms. Terry Winograd is well known for his leagues, each of whom would contribute a short early work in artificial intelligence and recent work critique of his position, with Dijkstra himself making in the principles of design. a closing statement. He graciously accepted this offer. I am grateful to these people for participating in We invited people from a variety of specialties, this debate and to Professor Dijkstra for creating the backgrounds, and interpretations to provide their opening. -
A Universal Modular ACTOR Formalism for Artificial Intelligence
Session 8 Formalisms for Artificial Intelligence A Universal Modular ACTOR Formalism for Artificial Intelligence Carl Hewitt Peter Bishop __ Richard Steiger Abstract This paper proposes a modular ACTOR architecture and definitional method for artificial intelligence that is conceptually based on a single kind of object: actors [or, if you will, virtual processors, activation frames, or streams]. The formalism makes no presuppositions about the representation of primitive data structures and control structures. Such structures can be programmed, micro-coded, or hard wired in a uniform modular fashion. In fact it is impossible to determine whether a given object is "really" represented as a list, a vector, a hash table, a function, or a process. The architecture will efficiently run the coming generation of PLANNER-like artificial intelligence languages including those requiring a high degree of parallelism. The efficiency is gained without loss of programming generality because it only makes certain actors more efficient; it does not change their behavioral characteristics. The architecture is general with respect to control structure and does not have or need goto, interrupt, or semaphore primitives. The formalism achieves the goals that the disallowed constructs are intended to achieve by other more structured methods. PLANNER Progress "Programs should not only work, but they should appear to work as well." PDP-1X Dogma The PLANNER project is continuing research in natural and effective means for embedding knowledge in procedures. In the course of this work we have succeeded in unifying the formalism around one_ fundamental concept: the ACTOR. Intuitively, an ACTOR is an active agent which plays a role on cue according to a script. -
Conference Program the 34Th Annual CHI Conference on Human Factors in Computing Systems San Jose Convention Center SCHEDULE of EVENTS
San Jose, CA, USA May 7 - 12 Conference Program The 34th Annual CHI Conference on Human Factors in Computing Systems San Jose Convention Center https://chi2016.acm.org SCHEDULE OF EVENTS Saturday, May 7 Sunday, May 8 09:00 - 17:00 Workshops & Symposia 09:00 - 17:00 Workshops & Symposia #chi4good Day of Service Doctoral Consortium 17:00-18:00 Newcomer’s Welcome Reception Monday, May 9 Tuesday, May 10 08:30 - 10:00 Opening Keynote: Dayo Olopade 08:30 - 09:20 Plenary: Kimberly Bryant in 10:00 - 11:30 Coffee Break conversation with Sarah Guthals Video Showcase 09:30 - 10:50 Technical Sessions Student Game Finalist Exhibition 10:50 - 11:30 Coffee Break 11:30 - 12:50 Technical Sessions Interactive Demos Open 12:50 - 14:30 Lunch Break Student Game Finalist Exhibition lunch@chi 11:30 - 12:50 Technical Sessions 14:30 - 15:50 Technical Sessions 12:50 - 14:30 Lunch Break 15:50 - 16:30 Coffee Break Diversity Lunch 16:30 - 17:50 Technical Sessions 14:30 - 15:50 Technical Sessions 18:00 - 19:30 Opening Reception and Exhibit Hall 15:50 - 16:30 Coffee Break Grand Opening Interactive Demos Open Interactivity Demos Open 16:30 - 17:50 Technical Sessions 18:00 - 19:30 Job Fair Art Exhibition Opening Wednesday, May 11 Thursday, May 12 08:30 - 09:20 Plenary: Marissa Mayer in 08:30 - 09:20 Plenary: Alan Kay in conversation conversation with Terry Winograd with Vishal Sikka 09:30 - 10:50 Technical Sessions 09:30 - 10:50 Technical Sessions 10:50 - 11:30 Coffee Break 10:50 - 11:30 Coffee Break Interactive Demos Open Interactive Demos Open 11:30 - 12:50 Technical -
Perspectives on Papert
Winter 1999 Volume 17 f Number 2 PERSPECTIVES ON PAPERT INSIDE The History of Mr. Papert Dreams, Realities, and Possibilities • Papert's Conjecture About the Variability of Piagetian Stages Papert, Logo, and Loving to Learn Mixed Feelings about Papert and Logo • Polygons and More • Explaining Yourself • Book Review, Logo News, Teacher Feature Gtste Volume 17 I Number 2 Editorial Publisher 1998-1999 ISTE BOARD OF DIRECTORS Logo Exchange is published quarterly by the In International Society for Technology in Education ISTE Executive Board Members ternational Society for Technology in Education Lynne Schrum, President University of Georgia Special Interest Group for Logo-Using Educa Editor-in-Chief tors. Logo Exchange solicits articles on all as Gary S. Stager, Pepperdine University Athens (GA) Heidi Rogers, President-Elect University of Idaho pects of Logo use in education. [email protected] Cheryl Lemke, Secretary Milken Family Submission of Manuscripts Foundation (CA) Copy Editing, Design, & Production Manuscripts should be sent by surface mail on Ron Richmond Michael Turzanski, Treasurer Cisco Systems, a 3.5-inch disk (where possible). Preferred for Inc. (MA) mat is Microsoft Word for the Macintosh. ASCII Founding Editor Chip Kimball, At Large Lake Washington files in either Macintosh or DOS format are also Tom Lough, Murray State University School District (WA) welcome. Submissions may also be made by elec Cathy Gunn, At Large Northern Arizona tronic mail. Where possible, graphics should be Design, Illustrations & Art Direction University Peter Reynolds, Fablevision Animation Studios submitted electronically. Please include elec pete @fablevision.com ISTE Board Members tronic copy, either on disk (preferred) or by elec Larry Anderson Mississippi State University tronic mail, with paper submissions.