Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
A structural view of the Cedar programming environment
ACM Transactions on Programming Languages and Systems (TOPLAS)
The C++ programming language
The C programming language
Revised report on the algorithmic language scheme
ACM SIGPLAN Notices
ACM Transactions on Graphics (TOG)
Common LISP: the language
ASPLOS II Proceedings of the second international conference on Architectual support for programming languages and operating systems
Dhrystone benchmark: rationale for version 2 and measurement rules
ACM SIGPLAN Notices
A piggy-back compiler for Prolog
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
The portable common runtime approach to interoperability
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
Monitors: an operating system structuring concept
Communications of the ACM
A processor for a high-performance personal computer
ISCA '80 Proceedings of the 7th annual symposium on Computer Architecture
Implementation of a portable Fortran 77 compiler using modern tools
SIGPLAN '79 Proceedings of the 1979 SIGPLAN symposium on Compiler construction
Source-to-source translation: Ada to Pascal and Pascal to Ada
SIGPLAN '80 Proceedings of the ACM-SIGPLAN symposium on The ADA programming language
Lisp machine manual
The portable common runtime approach to interoperability
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
Fast breakpoints: design and implementation
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
An extensible programming environment for Modula-3
SDE 4 Proceedings of the fourth ACM SIGSOFT symposium on Software development environments
CHI '92 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
No assembly required: compiling standard ML to C
ACM Letters on Programming Languages and Systems (LOPLAS)
Space efficient conservative garbage collection
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Simple garbage-collector-safety
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Ephemerons: a new finalization mechanism
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
SPiCE: A System for Translating Smalltalk Programs Into a C Environment
IEEE Transactions on Software Engineering
Fast breakpoints: design and implementation
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Space efficient conservative garbage collection
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Toba: java for applications a way ahead of time (WAT) compiler
COOTS'97 Proceedings of the 3rd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 3
LUV '94 Papers of the fourth international conference on LISP users and vendors
Hi-index | 0.00 |
Cedar is the name for both a language and an environment in use in the Computer Science Laboratory at Xerox PARC since 1980. The Cedar language is a superset of Mesa, the major additions being garbage collection and runtime types. Neither the language nor the environment was originally intended to be portable, and for many years ran only on D-machines at PARC and a few other locations in Xerox. We recently re-implemented the language to make it portable across many different architectures. Our strategy was, first, to use machine-dependent C code as an intermediate language, second, to create a language-independent layer known as the Portable Common Runtime, and third, to write a relatively large amount of Cedar-specific runtime code in a subset of Cedar itself. By treating C as an intermediate code we are able to achieve reasonably fast compilation, very good eventual machine code, and all with relatively small programmer effort. Because Cedar is a much richer language than C, there were numerous issues to resolve in performing an efficient translation and in providing reasonable debugging. These strategies will be of use to many other porters of high-level languages who may wish to use C as an assembler language without giving up either ease of debugging or high performance. We present a brief description of the Cedar language, our portability strategy for the compiler and runtime, our manner of making connections to other languages and the Unix* operating system, and some measures of the performance of our “Portable Cedar”.