2010/08/16 by Carl Hewitt, Hewitt, Carl
Computer Science · Mathematics · #Distributed #Distributed and Parallel Computing Systems #FOS: Computer and information sciences #Modeling, Simulation, and Optimization #Parallel #Parallel Computing and Optimization Techniques #Programming Languages (cs.PL) #and Cluster Computing (cs.DC)
paper · pdf · doi:10.48550/arxiv.1008.2748
openalex publication_date 2010/08/16 · openalex created_date 2016/06/24 · openalex updated_date 2026/07/28
ActorScript(TM) is a general purpose programming language for implementing discretionary, adaptive concurrency that manages resources and demand. It is differentiated from previous languages by the following: - Universality *** Ability to specify what Actors can do *** Specify interface between hardware and software *** Everything in the language is accomplished using message passing including the very definition of ActorScript itself *** Functional, Imperative, Logic, and Concurrent programming are integrated. *** Concurrency dynamically adapts to resources available and current load. *** Programs do not expose low-level implementation mechanisms such as threads, tasks, locks, cores, etc. *** Messages can be directly communicated without requiring indirection through brokers, channels, class hierarchies, mailboxes, pipes, ports, queues etc. *** Variable races are eliminated. *** Binary XML and JSON are data types. *** Application binary interfaces are afforded so that no identifier symbol need be looked up at runtime. - Safety and Security *** Programs are extension invariant, i.e., extending a program does not change its meaning. *** Applications cannot directly harm each other. - Performance *** Impose no overhead on implementation of Actor systems *** Message passing has essentially same overhead as procedure calling and looping. *** Allow execution to be dynamically adjusted for system load and capacity (e.g. cores) *** Locality because execution is not bound by a sequential global memory model *** Inherent concurrency because execution is not bound by communicating sequential processes *** Minimize latency along critical paths