Actor model theory

Actor event diagramsarrival orderingtheoretical understanding
In theoretical computer science, Actor model theory concerns theoretical issues for the Actor model. Actors are the primitives that form the basis of the Actor model of concurrent digital computation. In response to a message that it receives, an Actor can make local decisions, create more Actors, send more messages, and designate how to respond to the next message received. Actor model theory incorporates theories of the events and structures of Actor computations, their proof theory, and denotational models.

Actor model implementation

Cosmic Cubepractical implementations
In computer science, Actor model implementation concerns implementation issues for the Actor model. The Caltech Cosmic Cube was developed by Chuck Seitz et al. at Caltech providing architectural support for Actor systems. A significant difference between the Cosmic Cube and most other parallel processors is that this multiple instruction multiple-data machine uses message passing instead of shared variables for communication between concurrent processes. This computational model is reflected in the hardware structure and operating system, and is also the explicit message passing communication seen by the programmer.

Smalltalk

Smalltalk-72ObjectStudioSmalltalk programming language
A later variant used for research work is now termed Smalltalk-72 and influenced the development of the Actor model. Its syntax and execution model were very different from modern Smalltalk variants. After significant revisions which froze some aspects of execution semantics to gain performance (by adopting a Simula-like class inheritance model of execution), Smalltalk-76 was created. This system had a development environment featuring most of the now familiar tools, including a class library code browser/editor.

Denotational semantics of the Actor model

Clinger's modeldenotational modelsdenotational semantics
In Actor model, programs are Actors that are sent Eval messages with the address of an environment (explained below) so that programs inherit their denotational semantics from the denotational semantics of the Actor model (an idea published in Hewitt [2006]). Environments hold the bindings of identifiers. When an environment is sent a Lookup message with the address of an identifier x, it returns the latest (lexical) binding of x. As an example of how this works consider the lambda expression below which implements a tree data structure when supplied with parameters for a leftSubTree and rightSubTree.

HTML5

HTML 5HTML2008 debate on whether to include the two
File Writer – an API for writing to files from web applications. Web Audio – a high-level JavaScript API for processing and synthesizing audio in web applications. ClassList. Web cryptography API. WebRTC. Web SQL Database – a local SQL Database (no longer maintained). New parsing rules: oriented towards flexible parsing and compatibility; not based on SGML. Ability to use inline SVG and MathML in. New elements:,,,,,,,,,,,,,,,,,,,,,,,,,,,, . New types of form controls:,,,,,, . New attributes: (on ), (on ). Global attributes (that can be applied for every element):,,, (custom data attributes).

Message passing

message-passingmessagesmessage
The prominent mathematical models of message passing are the Actor model and Pi calculus. In mathematical terms a message is the single means to pass control to an object. If the object responds to the message, it has a method for that message. Alan Kay has argued that message passing is more important than objects in OOP, and that objects themselves are often over-emphasized.

Gul Agha (computer scientist)

Gul AghaAgha
Agha was elected as an ACM Fellow in 2018 for "research in concurrent programming and formal methods, specifically the Actor Model". * SALSA (programming language) * Agha's official webpage at UIUC.

Progressive web application

Progressive Web Appsprogressive web applicationsProgressive web app
Rich web application. WeChat Mini Program.

Actor model later history

Attempts to relate Actor semantics to algebra and linear logic
In computer science, the Actor model, first published in 1973, is a mathematical model of concurrent computation. This article reports on the later history of the Actor model in which major themes were investigation of the basic power of the model, study of issues of compositionality, development of architectures, and application to Open systems. It is the follow on article to Actor model middle history which reports on the initial implementations, initial applications, and development of the first proof theory and denotational model. Investigations began into the basic power of the Actor model.

Irene Greif

In 1975, Greif became the first woman to earn a Ph.D. in computer science from MIT; in her dissertation of that year, she published the first operational actor model. She was a professor of computer science at the University of Washington before returning to MIT as a professor of electrical engineering and computer science (1977–87). In 1984, Greif and Paul Cashman coined the term "Computer Supported Cooperative" and the initials, CSCW, at an interdisciplinary workshop in Cambridge, Massachusetts. Preferring research over teaching, she left academia in 1987 to join Lotus, where she directed its Product Design Group, and created the Lotus Research group in 1992.

IOS

Apple iOSiPhone OSiPhone
Jobs' reasoning was that developers could build web applications through the Safari web browser that "would behave like native apps on the iPhone". In October 2007, Apple announced that a native Software Development Kit (SDK) was under development and that they planned to put it "in developers' hands in February". On March 6, 2008, Apple held a press event, announcing the iPhone SDK. The iOS App Store was opened on July 10, 2008 with an initial 500 applications available.

JavaScript

Server-side JavaScriptclient-side JavaScriptJS
Angular and AngularJS are web application frameworks to use for developing single-page applications and also cross-platform mobile apps. React is an open source JavaScript library providing views that are rendered using components specified as custom HTML tags. Vue.js is an open source JavaScript framework that features an incrementally adoptable architecture focusing on declarative rendering and component composition. Mozilla browsers currently support LiveConnect, a feature that allows JavaScript and Java to intercommunicate on the Web.

Push technology

push notificationspush notificationpush
The web application can then push messages addressed to the client to a local interface of the relay server, which relays them over the Flash socket. The advantage of this approach is that it appreciates the natural read-write asymmetry that is typical of many web applications, including chat, and as a consequence it offers high efficiency. Since it does not accept data on outgoing sockets, the relay server does not need to poll outgoing TCP connections at all, making it possible to hold open tens of thousands of concurrent connections. In this model, the limit to scale is the TCP stack of the underlying server operating system.

Android (operating system)

AndroidAndroid operating systemList of Android devices
Other development tools are available, including a native development kit (NDK) for applications or extensions in C or C++, Google App Inventor, a visual environment for novice programmers, and various cross platform mobile web applications frameworks. In January 2014, Google unveiled an framework based on Apache Cordova for porting Chrome HTML 5 web applications to Android, wrapped in a native application shell.

History of the Actor model

Actor model early historyEvent orderings versus global statethe actor model
Actor model middle history. Actor model later history.

Power domains

Powerdomain
Clinger [1981] constructed a power domain for the Actor model building on the base domain of Actor event diagrams, which is incomplete. See Clinger's model. Hewitt [2006] constructed a power domain for the Actor model (which is technically simpler and easier to understand than Clinger's model) building on a base domain of timed Actor event diagrams, which is complete. The idea is to attach an arrival time for each message received by an Actor. See Timed Diagrams Model. Domains can be understood as topological spaces, and, in this setting, the power domain constructions can be connected with the space of subsets construction introduced by Leopold Vietoris. See, for instance, [Smyth 1983].

Web page

webpageweb pageswebpages
In contrast, a dynamic web page is generated by a web application, driven by server-side software, running on the client-side (on the web browser), or both. Dynamic web pages help the browser (the client) to enhance the web page through user input to the server. A web browser can have a graphical user interface, like Internet Explorer / Microsoft Edge, Mozilla Firefox, Google Chrome, Safari, and Opera, or can be text-based, like Lynx or Links. Web users with disabilities often use assistive technologies and adaptive strategies to access web pages.

Simula

Simula 67Simula ISimula 1
It also helped inspire the actor model of concurrent computation although Simula only supports coroutines and not true concurrency. In the late sixties and the early seventies there were four main implementations of Simula: These implementations were ported to a wide range of platforms. The TOPS-10 implemented the concept of public, protected, and private member variables and procedures, that later was integrated into Simula 87. Simula 87 is the latest standard and is ported to a wide range of platforms.

Gmail

Google MailGoogle GmailCriticism of Gmail
Just as a sender of a letter to a business colleague cannot be surprised that the recipient's assistant opens the letter, people who use web-based email today cannot be surprised if their communications are processed by the recipient's ECS [electronic communications service] provider in the course of delivery. A Google spokesperson stated to the media on August 15, 2013 that the corporation takes the privacy and security concerns of Gmail users "very seriously." Google updated its terms of service for Gmail in April 2014 to create full transparency for its users in regard to the scanning of email content.

Ajax (programming)

AjaxAjax frameworkAJAX-based
Ajax: A New Approach to Web Applications — Article that coined the Ajax term and Q&A. Ajax Tutorial with GET, POST, text and XML examples.

Client–server model

client–serverclient-serverclient/server
During the 2000s, web applications matured enough to rival application software developed for a specific microarchitecture. This maturation, more affordable mass storage, and the advent of service-oriented architecture were among the factors that gave rise to the cloud computing trend of the 2010s. In addition to the client–server model, distributed computing applications often use the peer-to-peer (P2P) application architecture. In the client–server model, the server is often designed to operate as a centralized system that serves many clients.

Computer program

programprogramscomputer programs
A computer program is a collection of instructions that performs a specific task when executed by a computer. Most computer devices require programs to function properly.

Rich web application

Rich Internet applicationRich Internet ApplicationsRIA
A rich web application (originally called a Rich Internet Application RIA or Installable Internet Application) is a Web application that has many of the characteristics of desktop application software. The concept is closely related to a single-page application, and may allow the user interactive features such as drag and drop, background menu, WYSIWYG editing, etc. HTML5 is a current standard for delivering rich web applications, supported by all major browsers. Adobe Flash manipulates vector and raster graphics to provide animation of text, drawings, and still images.

Adobe Flash

FlashMacromedia FlashFlash-based
As Flash matured, Macromedia's focus shifted from marketing it as a graphics and media tool to promoting it as a Web application platform, adding scripting and data access capabilities to the player while attempting to retain its small footprint. In 2000, the first major version of ActionScript was developed, and released with Flash 5. Actionscript 2.0 was released with Flash MX 2004 and supported object-oriented programming, improved UI components and other programming features.

World Wide Web

WebWWWthe web
Web-based vulnerabilities now outnumber traditional computer security concerns, and as measured by Google, about one in ten web pages may contain malicious code. Most web-based attacks take place on legitimate websites, and most, as measured by Sophos, are hosted in the United States, China and Russia. The most common of all malware threats is SQL injection attacks against websites. Through HTML and URIs, the Web was vulnerable to attacks like cross-site scripting (XSS) that came with the introduction of JavaScript and were exacerbated to some degree by Web 2.0 and Ajax web design that favours the use of scripts.