4.5 General Magic Telescript

http://www.genmagic.com

http://www.sel.sony.com/SEL/ Magic/

Telescript is an object-oriented programming language designed to support a remote programming model. It has been developed by General Magic, a Silicon Valley startup, as a basis to develop remote agents that execute tasks autonomously on behalf of the user.

Telescript is an interpreted language. The interpreter and runtime environment for Telescript is called a Telescript engine, and is implemented as one or more processes under the native operating system (currently some flavor of UNIX). A given host can support the simultaneous execution of multiple Telescript engines, while a Telescript engine allows the simultaneous execution of multiple lightweight processes. Each process represents a distinct thread of execution. Telescript applications consist of communicating processes taking advantage of each other's resources via interprocess communication.

Remote Programming Paradigm

Telescript differs from other environments in its model for interprocess communication. Telescript introduces a new model for interprocess communication called remote programming. To support remote programming, Telescript divides all processes into agents and places, and introduces an instruction called go, which is built into the language and which provides the basis for interprocess communication. A place is a process which can contain other processes. When an agent needs the services defined at a given place, it must go to that place, and then call operations there. Typically, an application's Telescript component is set up around a single major place which in turn contains other places and agents whose operations implement the functionality of the application. Agents interact with each other by going from one place to the other and sometimes meeting with agents in different places.

Telescript engines permit agents to travel between places residing on different engines. For each go, a destination place is specified, and the Telescript engines and their supporting infrastructure take responsibility for the transport of the agent to the new place. When an off-engine go is executed, the agent's execution is momentarily suspended and the agent is encoded for transport. A route to the requested place is determined, and the agent is sent over the network to its destination place. The agent is unpacked in the new place, all of its context is restored, and it resumes execution with access to the operations defined there.