The portable common runtime approach to interoperability

  • Authors:
  • M. Weiser;A. Demers;C. Hauser

  • Affiliations:
  • Xerox PARC, 3333 Coyote Hill Road, Palo Alto, California;Xerox PARC, 3333 Coyote Hill Road, Palo Alto, California;Xerox PARC, 3333 Coyote Hill Road, Palo Alto, California

  • Venue:
  • SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
  • Year:
  • 1989

Quantified Score

Hi-index 0.02

Visualization

Abstract

Operating system abstractions do not always reach high enough for direct use by a language or applications designer. The gap is filled by language-specific runtime environments, which become more complex for richer languages (CommonLisp needs more than C+ +, which needs more than C). But language-specific environments inhibit integrated multi-lingual programming, and also make porting hard (for instance, because of operating system dependencies). To help solve these problems, we have built the Portable Common Runtime (PCR), a language-independent and operating-system-independent base for modern languages. PCR offers four interrelated facilities: storage management (including universal garbage collection), symbol binding (including static and dynamic linking and loading), threads (lightweight processes), and low-level I/O (including network sockets). PCR is “common” because these facilities simultaneously support programs in several languages. PCR supports C. Cedar, Scheme, and CommonLisp intercalling and runs pre-existing C and CommonLisp (Kyoto) binaries. PCR is “portable” because it uses only a small set of operating system features. The PCR source code is available for use by other researchers and developers.