Reliable distributed computing with Avalon/Common Lisp

An overview of these novel aspects of Avalon/Common Lisp is presented: (1) support for remote evaluation through a new evaluator data type; (2) a generalization of the traditional client/server model of computation, allowing clients to extend server interfaces and server writers to hide aspects of distribution, such as caching, from clients; (3) support for failure atomicity through automatic commit and abort processing of transactions; and (4) support for persistence through automatic crash recovery of atomic data. These capabilities provide programmers with the flexibility to exploit the semantics of an application to enhance its reliability and efficiency. Avalon/Common Lisp runs on IBM RTs on the Mach operating system. Though the design of Avalon/Common Lisp exploits some of the features of Common Lisp, e.g., its packaging mechanism, all of the constructs are applicable to any Lisp-like language.<<ETX>>

[1]  Gregory R. Andrews,et al.  Synchronizing Resources , 1981, TOPL.

[2]  David K. Gifford,et al.  Remote evaluation , 1990, TOPL.

[3]  Joseph R. Falcone A programmable interface language for heterogeneous distributed systems , 1987, TOCS.

[4]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[5]  James Gettys,et al.  The X window system , 1986, TOGS.

[6]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[7]  Robert E. Strom,et al.  NIL: An integrated language and system for distributed programming , 1983, ACM SIGPLAN Notices.

[8]  Irving L. Traiger,et al.  The notions of consistency and predicate locks in a database system , 1976, CACM.

[9]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[10]  Barbara Liskov,et al.  Guardians and Actions: Linguistic Support for Robust, Distributed Programs , 1983, TOPL.

[11]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[12]  Walter H. Kohler,et al.  A Survey of Techniques for Synchronization and Recovery in Decentralized Computer Systems , 1981, CSUR.

[13]  James A. Gosling,et al.  The News Book: An Introduction to the Network/Extensible Window System , 1989 .

[14]  Adobe Press PostScript Language Reference Manual , 1985 .

[15]  Alfred Z. Spector,et al.  Support for Distributed Transactions in the TABS Prototype , 1985, IEEE Transactions on Software Engineering.

[16]  Santosh K. Shrivastava,et al.  Exploiting Type Inheritance Facilities to Implement Recoverability in Object Based Systems , 1987, SRDS.

[17]  Jim Gray,et al.  Notes on Data Base Operating Systems , 1978, Advanced Course: Operating Systems.

[18]  Alfred Z. Spector,et al.  The Camelot project , 1986 .

[19]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[20]  G. L. Steele Common Lisp , 1990 .

[21]  Maurice Herlihy,et al.  Inheritance of synchronization and recovery properties in Avalon/C++ , 1988, Computer.

[22]  John McCarthy,et al.  Queue-based multi-processing LISP , 1984, LFP '84.