Abstract
It is currently difficult fully to understand the performance of a modern dynamic programming language system, such as Java. One must observe execution in the context of specific architectures in order to evaluate the effects of optimizations. To do this we require simulators and compiler back-ends for a wide variety of machines that are capable of handling the demands of today’s dynamically compiled languages and their environments. We introduce here CISL, a machine description language specifically designed for the automatic generation of simulators and compiler back-end. CISL is a class-based language with a C/Java style syntax aimed at extensibility. CISL is processed by tools to generate descriptions of architectures represented in an intermediate form; the descriptions are then further combined and processed to produce efficient compiler and simulator components designed to “plug in” to existing frameworks. CISL provides the necessary flexibility to advance the simulation paradigm to match the state of the art in computer systems.
Article PDF
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Avoid common mistakes on your manuscript.
References
C.W. Milner, Pipeline Descriptions for Retargetable Compilers: A Decoupled Approach, Technical Report CS-99-11, University of Virginia (June 1998).
E.C. Schnarr, Applying Programming Language Implementation Techniques to Processor Simulation, Ph.D. dissertation., Computer Sciences, University of Wisconsin-Madison (2000).
R.G.G. Cattell (April 1980) ArticleTitleAutomatic Derivation of Code Generators from Machine Descriptions, ACM Trans Program. Lang. syst. 2 IssueID2 173–190
S.R. of Machine Instructions, Norman Ramsey and Mary F. Fernandez, ACM Trans. Program. Lang. Syst. 19(3):492–524 (May 1997).
N. Ramsey and J. W. Davidson, Machine Descriptions to Build Tools for Embedded Systems, ACM SIGPLAN Workshop on Languages, Compilers, and Tools for Embedded Systems (LCTES ’98), pp. 172–188 (June 1998), available as Springer Verlag LNCS 1474.
A. Fauth, J. V. Praet, and M. Freericks, Describing instruction set processors using nML, in Proc. of the 1995 European conference on Design and Test, p. 503, IEEE Comput. Soc. (1995).
S. Onder R. Gupta (May 1998) Automatic Generation of Microarchitecture Simulators, IEEE Inter Conference on Computer Languages ICCL Chicago, IL.
A. Halambi and R Grim, EXPRESSION: A Language for Architecture Exploration Through Compiler/Simulator Retargetability, in Proc. of the European Conference on Design, Automation and Test, DATE (March 1999).
E. Schnarr, M. D. Hill, and J. R. Larus, Facile: A Language and Compiler for High-Performance Processor Simulators, ACM SIGPLAN Conference on Programming Language Design and Implementation, ACM (2001).
L. George and A. Leung, MLRISC: A Framework for Retargetable and Optimizing Compiler Back Ends. Availble at http://cs1.cs.nyu.edu/leunga/www/MLRISC/Doc/html/.
R. Lipsett, C.F. Schaefer, C. Ussery, VHDL: Hardware Description and Design, Kluwer Academic Publishers (1989).
Thomas D., Moorby R (1995). The Verilog Hardware Description Language. Kluwer Academic Publishers
T. Palmer, T. Richards, E. Walters, CoGenT Langauge Manual, Availble at http://www.ali-cs.umass.edu/cogent.
C.W. Fraser D.R. Hanson T.A. Proebsting (September 1992) ArticleTitleEngineering a Simple, Efficient Code Generator Generator ACM Lett. Program. Lang. Syst. 1 IssueID3 213–226
D.C. Burger T.M. Austin (June 1997) ArticleTitleThe SimpleScalar Tool Set, Version 2.0, Comput Architecture News. 25 IssueID3 13–25
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Moss, J.E.B., Palmer, T., Richards, T. et al. CISL: A Class-Based Machine Description Language for Co-Generation of Compilers and Simulators. Int J Parallel Prog 33, 231–246 (2005). https://doi.org/10.1007/s10766-005-3587-1
Issue Date:
DOI: https://doi.org/10.1007/s10766-005-3587-1