Abstract : ActorScript(TM) is a general purpose programming language for efficiently implementing robust applications (with no single point of failure) using 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