2 research outputs found

    A dynamic compiler for Scheme

    Get PDF
    Traditionally, dynamically-typed languages have been difficult to compile efficiently. This thesis explores dynamic compilation, a recently developed technique for compiling dynamically-typed languages. A dynamic compiler compiles and optimizes programs as they execute, using information collected from the running program to perform optimizations that are impossible to perform in a conventional batch compiler. To explore these techniques we developed SKI, a dynamic compiler for Scheme. Tests on programs compiled by SKI, have shown that dynamic compilation techniques can give a substantial increase in the performance Scheme programs. In some cases they can increase performance by up to 400%

    First-Class Data-type Representation is SchemeXerox

    No full text
    In most programming language implementations, the compiler has detailed knowledge of the representations of and operations on primitive data types and data-type constructors. In SchemeXerox, this knowledge is almost entirely external to the compiler, in ordinary, procedural user code. The primitive representations and operations are embodied in first-class "representation types" that are constructed and implemented in an abstract and high-level fashion. Despite this abstractness, a few generally-useful optimizing transformations are sufficient to allow the SchemeXerox compiler to generate efficient code for the primitive operations, essentially as good as could be achieved using more contorted, traditional techniques. 1 Introduction and Motivation Typically, the compiler for a given programming language embodies detailed knowledge of the syntax and semantics of that language's data-type specifications. This knowledge includes, for example, algorithms for bit-level layout of data-type..
    corecore