Information Content of Programs and Operation Encoding
Journal of the ACM (JACM)
ACM Computing Surveys (CSUR)
Communications of the ACM
The working set model for program behavior
Communications of the ACM
A note on storage fragmentation and program segmentation
Communications of the ACM
Revised report on the algorithm language ALGOL 60
Communications of the ACM
Cache memories for PDP-11 family computers
ISCA '76 Proceedings of the 3rd annual symposium on Computer architecture
PL/I Reducer and Direct Processor
ACM '69 Proceedings of the 1969 24th national conference
The structure of directly executed languages: a new theory of interpretive system design
The structure of directly executed languages: a new theory of interpretive system design
A programming language
The contour model of block structured processes
ACM SIGPLAN Notices
Mimic: a fast system/370 simulator
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
Systematically derived instruction sets for high-level language support
ACM-SE 20 Proceedings of the 20th annual Southeast regional conference
Efficient implementation of the smalltalk-80 system
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Adaptive interpretation as a means of exploiting complex instruction sets
ISCA '83 Proceedings of the 10th annual international symposium on Computer architecture
Design of instruction set architectures for support of high-level languages
ISCA '84 Proceedings of the 11th annual international symposium on Computer architecture
A brief history of just-in-time
ACM Computing Surveys (CSUR)
HDTrans: an open source, low-level dynamic instrumentation system
Proceedings of the 2nd international conference on Virtual execution environments
A parallel dynamic compiler for CIL bytecode
ACM SIGPLAN Notices
Hi-index | 0.00 |
The issue of high level language support is treated in a systematic top-down manner. Program representations are categorized into three classes with respect to a host processor: high level representations, directly interpretable representations and directly executable representations. The space of intermediate languages for high level language support is explored and it is shown that whereas the ideal intermediate language from the point of view of execution time is a directly executable one, the best candidate from the viewpoint of memory requirements is a heavily encoded directly interpretable representation. The concept of dynamic translation is advanced as a means for achieving both goals simultaneously; the program is present in the memory in a compact static representation, but its working set is maintained in a dynamic representation which minimizes execution time. The architecture and organization of a universal host machine, incorporating this strategy, is outlined and the potential performance gains due to dynamic translation are studied.