Syntax and semantics of a persistent Common Lisp

  • Authors:
  • J. H. Jacobs;M. R. Swanson

  • Affiliations:
  • Univ. of Utah, Salt Lake City;Univ. of Utah, Salt Lake City

  • Venue:
  • LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
  • Year:
  • 1994

Quantified Score

Hi-index 0.00

Visualization

Abstract

The syntax and semantics for UCL+P, a persistent Common Lisp, are defined. The definition provides adequate support for persistence while maintaining the look-and-feel of Common Lisp. All Lisp data types (except streams) can be made persistent. Persistence is conferred automatically on non-symbol values when they become part of a persistent data structure. Symbols are persistent if interned in a persistent package. The Common Lisp package facility was enhanced to allow for persistent packages which provide modularity to the space of persistent values and serve as the ultimate roots of the persistence conferral algorithm. Values are retrieved from the store using demand loading; new or mutated values are automatically detected and written back to the store when the transaction is committed. The sharing semantics of Lisp are preserved in this specification.