ACM SIGOPS Operating Systems Review · 1989 · 85 citations · 13 references
ComputingComputer ScienceComputer SystemsOperating SystemsProgramming LanguagesSystems ProgrammingApplication Programming InterfacesRuntime EnvironmentsRuntime SystemsDynamic LinkingLinkingOperating System ArchitectureOperating System PortingRuntime Environment PortabilityRuntime InteroperabilityRuntime SemanticsSockets
Operating‑system abstractions are often too low‑level for language designers, leading to complex language‑specific runtimes that hinder multi‑lingual integration and portability. The authors built the Portable Common Runtime (PCR) to provide a language‑independent, operating‑system‑independent foundation for modern languages. PCR supplies universal garbage collection, symbol binding, lightweight threads, and low‑level I/O, enabling simultaneous support for multiple languages while relying on only a minimal set of OS features. PCR successfully intercalls C, Cedar, Scheme, and CommonLisp, runs existing C and CommonLisp binaries, and its source code is publicly available.
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.
13
C. A. R. Hoare · Communications of the ACM · 1974 · 1.5K citations · Full text
Mach: A New Kernel Foundation for UNIX Development.
Michael J. Accetta, R. Baron, William J. Bolosky et al. · USENIX Summer · 1986 · 919 citations