Code selection through object code optimization
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
The C programming language
Reduced instruction set computers
Communications of the ACM - Special section on computer architecture
Using Peephole Optimization on Intermediate Code
ACM Transactions on Programming Languages and Systems (TOPLAS)
A practical tool kit for making portable compilers
Communications of the ACM
Dhrystone: a synthetic systems programming benchmark
Communications of the ACM
Communications of the ACM
Communications of the ACM
The case for the reduced instruction set computer
ACM SIGARCH Computer Architecture News
The macro implementation of SNOBOL4;: A case study of machine-independent software development
The macro implementation of SNOBOL4;: A case study of machine-independent software development
A portable global optimizer and linker
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Optimizing an ANSI C interpreter with superoperators
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Clarity MCode: a retargetable intermediate representation for compilation
IR '95 Papers from the 1995 ACM SIGPLAN workshop on Intermediate representations
Hi-index | 0.00 |
Cint is an interpretation system for the C programming language. Like most interpretation systems, it provides "load and go" type execution as well as enhanced debugging and performance analysis tools. Cint consists of two phases--a translator and an interpreter. The translator compiles the source program into code for a virtual machine. The interpreter then loads and executes this code. While providing services similar to traditional interpreters, Cint differs from them in two important ways. First, the virtual machine languages used by many interpreters are quite large; machines with 100 to 200 operations are common. In contrast, Cint's virtual machine has only 63 operations. Second, to achieve acceptable execution speeds, interpreters are often implemented in the assembly language of the host machine. Cint, however, is written entirely in C and is therefore portable. In fact, it has been transported to four machines without modification. Despite the compact size of the virtual machine language and the high-level language implementation, Cint's execution speed is comparable to that of other interpreters. This paper describes the design of the virtual machine, the implementation of the interpreter, and the performance of the system.