Actor Model of Computation for Scalable Robust Information Systems Carl Hewitt
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Computer in French
Volunteer Information Exchange Sharing what we know with those we know Volume 5 Number 8 September 11, 2015 Contribute To The VIE Links You Might Enjoy Long before the Neiman-Marcus “Kitchen Computer” and before any recipes on your PC, there was ECHO • Creation of Evans and Sutherland IV, a one-off home computer. Dave Cortesi writes a • 10 Pictures of PCs in schools in the 80's wonderful article describing this one-of-a-kind artifact. • Computer Art in 1969 Bill Worthington writes of his opportunity to visit the University of Manchester and the reconstructed • In Memoriam: Karl Taub, who started the Computer “Baby.” And he took some excellent pictures for us. Science departments at Carnagie Mellon and Columbia Universities in the 70's. Thanks once more to Chris Garcia for telling us about three recent acquisitions. • Ed Thelen sends along this link about the Librascope LGP-30. As always, send us your stories, anecdotes and adventures in computing. • Kate McGregor sent this link about the several Jim Strickland [email protected] archiving activities at Cisco iwhich the CHM is leading. • Happy 17 th birthday, Google—Sept 4 CHM Blog Ken Shirriff has written several excellent and detailed Recent CHM Blog Entries articles recently about the innards of the 1401. Kirsten Tashev keeps us up-to-date on new CHM blog • 1402 Operations entries. • Details on 1401 Qui-Binary arithmetic • Guest blogger, Adam Spring writes on Amiga • 1403 Print mechanism – explanation and animation Computing. The Amiga computer celebrated its 30th birthday at CHM this July. • 1401 Core Memory Operation Peter Hart will speak on “Making Shakey, the World's Docent Training: Women In Computing First Intelligent Robot on September 14. -
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. -
The Early History of Smalltalk
The Early History of Smalltalk http://www.accesscom.com/~darius/EarlyHistoryS... The Early History of Smalltalk Alan C. Kay Apple Computer [email protected]# Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. HOPL-II/4/93/MA, USA © 1993 ACM 0-89791-571-2/93/0004/0069...$1.50 Abstract Most ideas come from previous ideas. The sixties, particularly in the ARPA community, gave rise to a host of notions about "human-computer symbiosis" through interactive time-shared computers, graphics screens and pointing devices. Advanced computer languages were invented to simulate complex systems such as oil refineries and semi-intelligent behavior. The soon-to- follow paradigm shift of modern personal computing, overlapping window interfaces, and object-oriented design came from seeing the work of the sixties as something more than a "better old thing." This is, more than a better way: to do mainframe computing; for end-users to invoke functionality; to make data structures more abstract. Instead the promise of exponential growth in computing/$/volume demanded that the sixties be regarded as "almost a new thing" and to find out what the actual "new things" might be. For example, one would compute with a handheld "Dynabook" in a way that would not be possible on a shared mainframe; millions of potential users meant that the user interface would have to become a learning environment along the lines of Montessori and Bruner; and needs for large scope, reduction in complexity, and end-user literacy would require that data and control structures be done away with in favor of a more biological scheme of protected universal cells interacting only through messages that could mimic any desired behavior. -
How Did They Get to the Moon Without Powerpoint?
How Did They Get to the Moon Without PowerPoint? Mordechai (Moti) Ben-Ari Department of Science Teaching Weizmann Institute of Science [email protected] Keynote speech at the Finnish Computer Science Society, May, 2003. 1 Developing a Technology The invention of writing, however, was the invention of an entirely new Let me start with a description of one of my first technology.[3, p. 9] full-time jobs: There is something to be said for this definition: I developed a technology for data min- do you remember those old movies that show “typ- ing in order to consolidate enterprise- ing pools,” where rows and rows of people, usually customer relations. women, sat pecking away at keyboards all day? Since I held that job in the early 1970s, clearly I would not have described my work in this terminol- ogy! What I actually did was: I wrote a program that read the system log, computed usage of CPU time and printed reports so that the users could be billed. My point in this talk is that hi-tech in general and computer science in particular did not begin in the 1990s, but that we have been doing it for decades. I believe that today’s students are being fed a lot of marketing propaganda to the contrary, and that they Well, things haven’t changed all that much! have completely lost a historical perspective of our discipline. I further believe that we have a respon- sibility as educators to downgrade the hype and to give our students a firm background in the scientific and engineering principles of computer science. -
The Future: the Story of Squeak, a Practical Smalltalk Written in Itself
Back to the future: the story of Squeak, a practical Smalltalk written in itself Dan Ingalls, Ted Kaehler, John Maloney, Scott Wallace, and Alan Kay [Also published in OOPSLA ’97: Proc. of the 12th ACM SIGPLAN Conference on Object-oriented Programming, 1997, pp. 318-326.] VPRI Technical Report TR-1997-001 Viewpoints Research Institute, 1209 Grand Central Avenue, Glendale, CA 91201 t: (818) 332-3001 f: (818) 244-9761 Back to the Future The Story of Squeak, A Practical Smalltalk Written in Itself by Dan Ingalls Ted Kaehler John Maloney Scott Wallace Alan Kay at Apple Computer while doing this work, now at Walt Disney Imagineering 1401 Flower Street P.O. Box 25020 Glendale, CA 91221 [email protected] Abstract Squeak is an open, highly-portable Smalltalk implementation whose virtual machine is written entirely in Smalltalk, making it easy to debug, analyze, and change. To achieve practical performance, a translator produces an equivalent C program whose performance is comparable to commercial Smalltalks. Other noteworthy aspects of Squeak include: a compact object format that typically requires only a single word of overhead per object; a simple yet efficient incremental garbage collector for 32-bit direct pointers; efficient bulk- mutation of objects; extensions of BitBlt to handle color of any depth and anti-aliased image rotation and scaling; and real-time sound and music synthesis written entirely in Smalltalk. Overview Squeak is a modern implementation of Smalltalk-80 that is available for free via the Internet, at http://www.research.apple.com/research/proj/learning_concepts/squeak/ and other sites. It includes platform-independent support for color, sound, and image processing. -
Rulemaking: 1999-10 FSOR Emission Standards and Test Procedures
State of California Environmental Protection Agency AIR RESOURCES BOARD EMISSION STANDARDS AND TEST PROCEDURES FOR NEW 2001 AND LATER MODEL YEAR SPARK-IGNITION MARINE ENGINES FINAL STATEMENT OF REASONS October 1999 State of California AIR RESOURCES BOARD Final Statement of Reasons for Rulemaking, Including Summary of Comments and Agency Response PUBLIC HEARING TO CONSIDER THE ADOPTION OF EMISSION STANDARDS AND TEST PROCEDURES FOR NEW 2001 AND LATER MODEL YEAR SPARK-IGNITION MARINE ENGINES Public Hearing Date: December 10, 1998 Agenda Item No.: 98-14-2 I. INTRODUCTION AND BACKGROUND ........................................................................................ 3 II. SUMMARY OF PUBLIC COMMENTS AND AGENCY RESPONSES – COMMENTS PRIOR TO OR AT THE HEARING .................................................................................................................. 7 A. EMISSION STANDARDS ................................................................................................................... 7 1. Adequacy of National Standards............................................................................................. 7 2. Lead Time ................................................................................................................................. 8 3. Technological Feasibility ........................................................................................................ 13 a. Technological Feasibility of California-specific Standards ..............................................................13 -
April 22 -- STEPS NSF 2012 Report
! 2012 REPORT ! STEPS Toward Expressive Programming Systems ! “A#Science#Experiment”# ! by# (In#random#order)#Yoshiki#Ohshima,#Dan#Amelang,#Ted#Kaehler,#Bert#Freudenberg,# Aran#Lunzer,#Alan#Kay,#Ian#Piumarta,#Takashi#Yamamiya,#Alan#Borning,#Hesam# Samimi,#Bret#Victor,#Kim#Rose*# VIEWPOINTS#RESEARCH#INSTITUTE# # # *These#are#the#STEPS#researchers#for#the#year#2012.#For#a#complete#listing# of#the#participants#over#the#length#of#the#project#see#the#section#on#the# NSF#site#which#contains#this#report.# TABLE OF CONTENTS — The STEPS Project for the General Public Summary of the STEPS project . Origin . STEPS aims at personal computing . What does STEPS look like? . STEPS is a “science project” . General approach . “T-shirt programming” . Overall map of STEPS . General STEPS results . Making “runnable maths” . Assessing STEPS Summary of STEPS research in 2012 . Inventing & building a language for STEPS “UI and applications”, and rewriting Frank in it . Producing a workable “chain of meaning” that extends from the screen all the way to the CPU . Inventing methods that create automatic visualizers for languages created from metalanguages . Continuing the start of “What vs How” programming via “Cooperating Languages and Solvers” Reflections on the STEPS Project to Date References Outreach Activities for final year of NSF part of the STEPS project Publications for the NSF part of the STEPS project Appendix I: KScript and KSWorld Appendix II: Making Applications in KSWorld ——— ! The$STEPS$Project$For$The$General$Public$ If#computing#is#important—for#daily#life,#learning,#business,#national#defense,#jobs,#and# -
Edsger W. Dijkstra: a Commemoration
Edsger W. Dijkstra: a Commemoration Krzysztof R. Apt1 and Tony Hoare2 (editors) 1 CWI, Amsterdam, The Netherlands and MIMUW, University of Warsaw, Poland 2 Department of Computer Science and Technology, University of Cambridge and Microsoft Research Ltd, Cambridge, UK Abstract This article is a multiauthored portrait of Edsger Wybe Dijkstra that consists of testimo- nials written by several friends, colleagues, and students of his. It provides unique insights into his personality, working style and habits, and his influence on other computer scientists, as a researcher, teacher, and mentor. Contents Preface 3 Tony Hoare 4 Donald Knuth 9 Christian Lengauer 11 K. Mani Chandy 13 Eric C.R. Hehner 15 Mark Scheevel 17 Krzysztof R. Apt 18 arXiv:2104.03392v1 [cs.GL] 7 Apr 2021 Niklaus Wirth 20 Lex Bijlsma 23 Manfred Broy 24 David Gries 26 Ted Herman 28 Alain J. Martin 29 J Strother Moore 31 Vladimir Lifschitz 33 Wim H. Hesselink 34 1 Hamilton Richards 36 Ken Calvert 38 David Naumann 40 David Turner 42 J.R. Rao 44 Jayadev Misra 47 Rajeev Joshi 50 Maarten van Emden 52 Two Tuesday Afternoon Clubs 54 2 Preface Edsger Dijkstra was perhaps the best known, and certainly the most discussed, computer scientist of the seventies and eighties. We both knew Dijkstra |though each of us in different ways| and we both were aware that his influence on computer science was not limited to his pioneering software projects and research articles. He interacted with his colleagues by way of numerous discussions, extensive letter correspondence, and hundreds of so-called EWD reports that he used to send to a select group of researchers. -
Smahtalk Kernel Language Fv1anual
This document is for Xerox internal use only SmaHtalk Kernel Language fv1anual BY Larry Tesler SEPTEMBER 1977 Smalltalk is a programming rang'uage that deals with objects. Every object has its own data. Objects communicate by sending and receiving messages according to simple. protocols. Objects are grouped into classes. The objects of a class are called its instances. Each class specifies the protocols its instances will know as well as the methods they will use to respond to messages they receive.· The standard facilities of the Small talk system include i/o protocols for disk, display, keyboard, mouse, and Ethernet; basic data structures such as numbers, strings, arrays, and dictionaries; basic control structures such as loops and processes; program editing, compiling, and debugging; text editing, illustration, music. animation, and information storage and retrieval. Smalltalk applications include education, personal computing, and systems research. This interim reference manual covers the semantics and the present syntax of the Smalltalk kernel language. It is assumed that the reader has seen Smalltalk in operation and has programmed computers in Algol-like languages. Familiarity with LISP, Simula, and/or Smallta!k-72 should be helpful but is not necessary. System operation is described in the memo, Browsing and Error Analysis, available under separate cover from the Learning Research Group, Systems Science Laboratory. XEROX PALO ALTO RESEARCH CENTER 3333 Coyote Hill Road / Palo J\lto / California 94304 This document is for Xerox internal use only Discla inler The Smalltalk kernel system is not yet ready for general release. \Ve ask that you do not copy and distribute either the manual or the system at this time. -
Assignment #4: Big−O, Sorting, Tables, History − Soln
Assignment #4: Big−O, Sorting, Tables, History − Soln 1. Consider the following code fragment: for (int pass = 1; pass <= 10; pass++) { for (int index = 0; index < k; index += 10) { for (int count = 0; count < index; count++) { do_something(); } } } Assuming that the execution time of do_something() is independent of k, what is the most accurate description of the worst case run−time for this algorithm? a) O(1) b) O(k ) c) O(k log(k) ) 2 d) O(k ) ← 3 e) O(k ) Briefly explain your reason for choosing this answer. The outer loop executes (10+1-1)/1=10 times, and the middle loop executes (k-0)/10 = k/10 times for each execution of the outer loop. The innermost loop executes no times at first, then once, then twice, until k-1 times the last time that the middle loop executes, and the body runs O(1) time. Thus the run time is 10*(0+1+2+?+k- 1)*O(1) = O(k2). 2. Consider the following code fragment: for (int pass = 1; pass <= k; pass++) { for (int index = 0; index < 100*k; index += k) { do_something(); } } Assuming that the execution time of do_something() is O(log(k) ), what is the most accurate description of the worst case run−time for this algorithm? f) O(log(k) ) g) O(k ) h) O(k log(k) ) ← 2 i) O(k ) 2 j) O(k log(k) ) Briefly explain your reason for choosing this answer. The outer loop is executed (k+1-1)/1 = k times, the inner loop is exectuted (100k-0)/k = 100 times, and the innermost block takes time O(log(k)). -
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. -
Incorparating the Actor Model Into SCIVE on an Abstract Semantic Level
Incorparating the Actor Model into SCIVE on an Abstract Semantic Level Christian Frohlich¨ ∗ Marc E. Latoschik† AI and VR Group, Bielefeld University AI and VR Group, Bielefeld University. ABSTRACT Since visual perception is very important for generating immer- sive environments, most VR applications focus on the graphical This paper illustrates the temporal synchronization and process flow simulation output. Tools like OpenGL Performer, Open Inven- facilities of a real-time simulation system which is based on the ac- tor [12], Open Scene Graph, OpenSG [11] or the VRML successor tor model. The requirements of such systems are compared against X3D [8] are based upon a hierarchical scene graph structure, which the actor model’s basic features and structures. The paper describes allows for complex rendering tasks. Extension mechanisms like how a modular architecture benefits from the actor model on the field routing or rapid prototyping via scipting interfaces allow for module level and points out how the actor model enhances paral- new customized node types and interconnected application graphs. lelism and concurrency even down to the entity level. The actor idea is incorporated into a novel simulation core for intelligent vir- Purpose-built VR application frameworks adopt and extend these mechanisms, by adding in- and output customization, see e.g. tual environments (SCIVE). SCIVE supports well-known and es- TM tablished Virtual Reality paradigms like the scene graph metaphor, Lightning [4], Avango [13], VR Juggler [3] or the CAVELib . field routing concepts etc. In addition, SCIVE provides an explicit Also network distribution paradigms are often integrated to enable semantic representation of its internals as well as of the specific distributed rendering on a cluster architecture, as can be seen in virtual environments’ contents.