5 research outputs found

    The IO- and OI-hierarchies

    Get PDF
    AbstractAn analysis of recursive procedures in ALGOL 68 with finite modes shows, that a denotational semantics of this language can be described on the level of program schemes using a typed λ-calculus with fixed-point operators. In the first part of this paper, we derive classical schematological theorems for the resulting class of level-n schemes. In part two, we investigate the language families obtained by call-by-value and call-by-name interpretation of level-n schemes over the algebra of formal languages. It is proved, that differentiating according to the functional level of recursion leads to two infinite hierarchies of recursive languages, the IO- and OI-hierarchies, which can be characterized as canonical extensions of the regular, context-free, and IO- and OI-macro languages, respectively. Sufficient conditions are derived to establish strictness of IO-like hierarchies. Finally we derive, that recursion on higher types induces an infinite hierarchy of control structures by proving that level-n schemes are strictly less powerful than level-n+1 schemes

    An architecture for interpreted dynamic object-oriented languages

    Get PDF
    e code refers to the representation of bytecodes as constant C arrays that are located in sharable text segments after compilation. Interoperability, application start-up and dynamic memory usage benefit from this representation. Indexed code threading addresses the performance problem with virtual instruction mapping (i.e. loading, decoding and invoking) by using a fast threaded instruction transfer. Unlike with standard code threading, virtual machine code remains compact and executable also with a non-threaded virtual machine emulator. A further performance boost is achieved with optimal virtual instruction ordering. This technique helps to cluster the native code implementing virtual instructions so that native instruction cache performance is increased. Finally, the efficiency problem involved with dynamic method lookup is alleviated with an inline caching scheme that is applicable with constant bytecode vectors. The scheme exploits type locality similar to polymorphic inline cac

    An exercise in denotational semantics

    No full text
    corecore