| T. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Proceedings of the ACM Symposium on Principles of Programming Languages, pages 322--332, San Francisco, CA, 1995. ACM Press. |
.... techniques to automatically infer a decision tree that separates IR code into streams that compress better than the undifferentiated code [10] Techniques for reducing code size include procedural abstraction and generalization of cross jumps [11] and common instruction merger into super operators [24]. A good survey of transformations for reduced code size is outlined in [6] Architectures for minimized code size have been explored using instruction selection [21] Operating systems and CPU support for the execution of compressed code on existing and modified architectures has been detailed ....
....in program binaries In large applications, it is possible to explore selfsimilarities or even replication of procedures or small functional blocks for compression. Shorter multi instruction constructs superoperaters have already been proven to improve the conciseness of a program [24]. Typically for large programs, code is commonly replicated mainly due to: inefficiency in programming as large groups of programmers write the source code and due to functional similarities between program constructs (e.g. loops, caseswitch and if then else statements) and different procedures ....
T. Proebsting. Optimizing a ANSI C interpreter with superoperators. Proc. Symp. on Principles of Programming Languages, pages 322--332, 1995.
....the loop (except possibly mispredictions from capacity or conflict misses in the BTB) 4. 2 Superinstructions Combining several VM instructions into superinstructions is a technique that has been used for reducing VM code size and for reducing the dispatch and argument access overhead in the past [14, 13, 10, 8]. However, its e#ect on branch prediction has not been investigated in depth yet. In this paper we investigate the e#ect of superinstructions on dispatch mispredictions; in particular, we find that using superinstructions reduces mispredictions far more than it reduces dispatches or executed ....
....have been proposed in a number of papers [4, 5, 11] and they work well on interpreters [7] but they are not available in hardware yet, and it will probably take a long time before they are universally available, if at all. There are a number of recent papers on improving interpreter performance [14, 6, 13, 16]. Software pipelining the interpreter [9, 10] is a way to reduce the branch dispatch costs on architectures with delayed indirect branches (or split indirect branches) Ertl and Gregg [7] investigated the performance of various branch predictors on interpreters, but did not investigate means to ....
[Article contains additional citation context not shown here]
T. A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Principles of Programming Languages (POPL '95), pages 322--332, 1995.
....been removed. Tools are also provided to reduce memory usage, like Java CodeCompact tm [26] which preloads class les, resolves dynamic links, and generates a complete executable ROM version. But this approach does not reduce the size of the bytecode, the target of our work. Some researchers [9, 22, 8] have shown the virtues of reducing code size, without decompression before execution, by using bytecode interpreters tailored for one program. Compression of the bytecode, capable of direct execution without decompression, would further reduce code size. Some researchers [9, 4] have stated the ....
....of such machines should be done based on a careful analysis of program samples. The second application is the compilation of programs where code space is a major concern. In that case, a virtual machine tailored for the program can be used to reduce space. This is the approach taken in [9, 22, 8]. Further code size reduction can be obtained with a compression of the virtual instructions. Typically, virtual instructions are byte encoded : opcodes are encoded on a byte and operands on some byte multiple. Clearly this method trades space for speed by maintaining byte, or even word, ....
[Article contains additional citation context not shown here]
Todd A. Proebsting. Optimizing a ANSI C interpreter with superoperators. In Proc. Symp. on Principles of Programming Languages, pages 322-332, 1995.
....has explored the compressibility of a wide range of program representations: source programs, intermediate representations, machine codes, etc. 24] The resulting compressed form either must be decompressed (and perhaps compiled) before execution [9, 10, 11] or it can be executed (or interpreted [13, 21]) without decompression [6, 12] The first method results in a smaller compressed representation than the second, but requires the time and space overhead of decompression before execution. We avoid requiring a large amount of additional space to place the decompressed code by choosing to ....
T.A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Proc. Symp. on Principles of Programming Languages, pages 322--332, Jan. 1995.
....front, we decided to combine sequences of primitives into superinstructions. This technique has been proposed by Schutz [Sch92] and implemented by Wil Baden in this4th [Bad95] and by Marcel Hendrix in a version of eforth. It is related to the concepts of supercombinators [Hug82] and superoperators [Pro95]. Non primitives in traditional indirect threaded code cannot be combined into superinstructions, but it is possible to compile them into using primitives that can be combined; compiling into primitives also makes it possible to use a portable and fast variant of directthreaded code. This paper ....
Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Principles of Programming Languages (POPL '95), pages 322--332, 1995.
....has explored the compressiblity of a wide range of program representations: source languages, intermediate representations, machine codes, etc. 15] The resulting compressed form either must be decompressed (and perhaps compiled) before execution [5, 6, 7] or it can be executed (or interpreted [9, 14]) without decompression [4, 8] The first method results in a smaller compressed representation than the second, but requires the overhead of decompression before execution. This overhead may be negligible and, in fact, may be compensated for by the savings in transmission or retrieval cost [7] A ....
T.A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Proc. Symp. on Principles of Programming Languages, pages 322--332, January 1995.
....the Objective Caml implementation [10] Quite recently, in [13] this profiling based technique is extended to creating merged instructions at runtime which allows the set of common sequences to be nearly optimal for the particular application being run. This is similar to finding superoperators [14] in the context of an ANSI C bytecode interpreter, although the latter technique relies on a compile time anal wam 5344: mov 0x1e20( esp,1) ecx wam 5351: movzwl 0x0( ebp) eax wam 5355: add 0x4, ebp wam 5358: mov 0xcc( ecx) edx wam 5364: mov edx, eax, ecx,1) wam 5367: movzwl ....
T. A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Conference Record of POPL'95: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 322--332. ACM Press, Jan. 1995.
....front, we decided to combine sequences of primitives into superinstructions. This technique has been proposed by Schutz [Sch92] and implemented by Wil Baden in this4th [Bad95] and by Marcel Hendrix in a version of eforth. It is related to the concepts of supercombinators [Hug82] and superoperators [Pro95]. Non primitives in traditional indirect threaded code cannot be combined into superinstructions, but it is possible to compile them into using primitives that can be combined, and then into using direct threading instead of indirect threading. This Correspondence Address: Institut fur ....
Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Principles of Programming Languages (POPL '95), pages 322--332, 1995.
.... this generator differs from vmgen in not performing implicit top of stack caching; instead, the VM uses an accumulator to support explicit stack caching visible at the VM level (an extra push instruction is required to get values from the accumulator to the stack) The C interpreter hti [Pro95] uses a tree based VM (linearized into a stackbased form) derived from lcc s intermediate representation. The VM interpreter is created using a tree parser generator and can contain superoperators. The VM instructions are specified in a tree grammar; superoperators correspond to nontrivial tree ....
.... [Kra83] Most of the published literature on interpreters concentrates on decoding speed [Bel73, Kli81] semantic content, virtual machine design and time space tradeoffs [Kli81, Pit87] There are also some more recent papers about interpreters, discussing issues such as combining VM instructions [Pro95, PR98, HATvdW99] software pipelining interpreters [HA00, HATvdW99] stack caching [Ert95] and various optimizations [SC99] 9 Conclusion Vmgen is a generator for virtual machine (VM) interpreters. It automates much of the repetitive work in writing an interpreter, and supports writing ....
Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Principles of Programming Languages (POPL '95), pages 322--332, 1995.
....can be reduced by combining several Java instructions into one super instruction that behaves identically to the sequence, but has the overhead of a single instruction. Previous researchers have used interpreter generators to automatically combine commonly occurring sequences of instructions [Pro95]. Our interpreter generator will also do this, and we plan to experiment with various heuristics for identifying important sequences, based on static and dynamic frequencies. Another interesting area is more general instruction combining. There is scope for combining not just sequences, but ....
Todd Proebsting. Optimising an ANSI C interpreter with superoperators. In Proceedings of Principles of Programming Languages (POPL'95), pages 322--342, 1995.
....be the most fruitful. 6.3 Implementation To test improvements in a quantitative way, a spectrum of the optimizations were implemented and the result of running the benchmarks on them compared to see which improvement yielded the best result. In part this corresponded to finding superoperators [12], but also to try and determine whether specializations or combinations achieved the best improvements. Four different versions of the abstract machine used in SICStus were implemented and evaluated. The implementation process was found to be a lengthier process than expected. Combinations were ....
Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Conference Record of POPL'95: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 322--332. ACM Press, January 1995.
....decompression costs. Faster levels typically require faster decompression or, in the limit, a compressed form that can be interpreted directly, without the time or memory costs of a separate decompression step. Though recently there has been an increase in research on program compression e.g. [1, 3, 7, 8, 11, 13, 14, 16, 17, 20, 21, 22, 24, 27], very little of it has focused on methods, sometimes called code compaction methods, that avoid any decompression before execution. These methods produce representations that can be directly executed [7, 8] or interpreted [11, 16, 17, 21, 24] and, as a result, are more limited than schemes that ....
....compression e.g. 1, 3, 7, 8, 11, 13, 14, 16, 17, 20, 21, 22, 24, 27] very little of it has focused on methods, sometimes called code compaction methods, that avoid any decompression before execution. These methods produce representations that can be directly executed [7, 8] or interpreted [11, 16, 17, 21, 24] and, as a result, are more limited than schemes that have the flexibility to decompress before execution. Certain embedded systems supply one of the clearest examples of the need for zero overhead decompression. These systems typically store much of their code in ROM. Competition drives ....
[Article contains additional citation context not shown here]
T. A. Proebsting. Optimizing an ANSI C interpreter with superoperators. POPL, pp.322-332 (Jan. 1995).
.... this generator differs from vmgen in not performing implicit top of stack caching; instead, the VM uses an accumulator to support explicit stack caching visible at the VM level (an extra push instruction is required to get values from the accumulator to the stack) The C interpreter hti [Pro95] uses a tree based VM (linearized into a stackbased form) derived from lcc s intermediate representation. The VM interpreter is created using a tree parser generator and can contain superoperators. The VM instructions are specified in a tree grammar; superoperators correspond to nontrivial tree ....
....vmgen input. Most of the performance enhancing techniques used by vmgen have been used and published earlier: threaded code and decoding speed [Bel73, Kli81] scheduling and software pipelining the dispatch [Ert93, HA00, HATvdW99] stack caching [Ert93, Ert95] and combining VM instructions [Pro95, PR98, HATvdW99] New optimizations: the store optimization (Section 5.3) which comes up only in a generator like vmgen (whereas a human programmer would not generate the stores in the first place) and using tail duplication to improve indirect branch prediction (Section 5.4) There are also ....
Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Principles of Programming Languages (POPL '95), pages 322--332, 1995.
....of instructions in the VM instruction set. Several optimisations already do this. For example, splitting frequent VM instructions into several variants, preferably specialising them for frequent immediate arguments. Combining common sequences of VM instructions into single super instructions [8] will also add context information, and has the added advantage of removing dispatch overhead (and branches) within the sequence. Such specialised instructions should have a smaller number of frequent successors in most programs, and so their indirect branch will be more accurate. 7 Conclusion ....
Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Principles of Programming Languages (POPL '95), pages 322--332, 1995.
....most of their time in small loops rather than in calls and returns. This last finding explains a result from our work on interpreter optimisation which originally puzzled us. We have implemented an optimisation that combines frequent sequences of instructions into a single superinstruction [Pro95] Our initial results show that the optimisation gives excellent speedups for small programs, but is less successful for large ones. The reason is now clear. Large Forth programs contain many very short basic blocks, so the opportunities for combining are limited. There are two exceptions to our ....
Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Principles of Programming Languages (POPL '95), pages 322--332, 1995.
....and easily disassemble the threaded code. The main advantage of the generator is that it allows more complicated optimizations such as automatic instruction combining or instruction specialization. Combining replaces a common sequence of VM instructions with a single super instruction [Pro95]. For common operands specialization uses different instructions to eliminate the operand decoding overhead. Combining greatly increases the number of VM instructions, making maintenance more difficult if done manually. The generator can create these combinations automatically. Using the stack ....
Todd Proebsting. Optimising an ANSI C interpreter with superoperators. In Proceedings of Principles of Programming Languages (POPL'95), pages 322-- 342, 1995.
....we do in this work. Ernst et al. 7] compress native code coming out of a C compiler. A tailored VM is generated for a C program. The intermediate representation is compressed using macroinstructions and xing parameters. Instructions are aligned on byte boundaries. It is similar to Proebsting s [19] work. Their technique is competitive with gzip on native code. But it is not reported if the compression obtained is due to the use of the VM or the compression of the virtual program. Moreover, no timing of the execution of compressed programs is reported, although they show that the ....
Todd A. Proebsting. Optimizing a ANSI C interpreter with superoperators. In Proc. Symp. on Principles of Programming Languages, pages 322-332, 1995.
....we do in this work. Ernst et al. 8] compress native code coming out of a C compiler. A tailored VM is generated for a C program. The intermediate representation is compressed using macroinstructions and xing parameters. Instructions are aligned on byte boundaries. It is similar to Proebsting s [20] work. Their technique is competitive with gzip on native code. But it is not reported if the compression obtained is due to the use of the VM or the compression of the virtual program. Moreover, no timing of the execution of compressed programs is reported, although they show that the ....
Todd A. Proebsting. Optimizing a ANSI C interpreter with superoperators. In Proc. Symp. on Principles of Programming Languages, pages 322-332, 1995.
....out the operands (operand patterns) from the expression trees of a program. The factored expression trees are called tree patterns. We call the task of removing operands from an expression tree operand factorization. Operand factorization is not a new concept though. It has been proposed in [23] as an encoding technique for intermediate representation in compilers. Variations of operand factorization have been used in [24] 25] Consider, for example, the expression tree addiu 4, 4, 1 addiu , lui 1, 0 lui , sw 1, 0( 4) sw , a) b) 4, 4,1, 1,0, 1,0, 4] c) ....
Todd A. Proebsting, \Optimizing an ANSI C interpreter with superoperators," in ACM Conference on Principles of Programming Languages, January 1995, pp. 322-332.
....code of the interpreter to earlier bytecodes for machine with sufficient instruction level parallelism [16] This is a first step into the direction of pipelined interpreters which results in a pipeline of two stages. Proebsting proposes superoperators to reduce the interpretation overhead [17]. Several of operators are combined together into one superoperator. The interpretation overhead is shared between several operations. The same idea is used by Piumarta and Riccardi with the difference that their interpreter is dynamically extended with superoperators [18] They implemented this ....
Todd A. Proebsting. Optimizing an ANSI C Interpreter with Superoperators. In Proceedings of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, pages 322--332, 1995.
....ADDK 7 LAC AR2 SACL LAC ADDK SACL 7 AR2 Operand patterns ADDK 0 LAC AR0 SACL LAC ADDK SACL 0 AR0 Tree patterns Expression Trees Figure 1: Factored expression trees. 3 The Compression Algorithm Our compression algorithm is based on the patternization concept [Pro95] Patternization (we call it factorization) has been used by Fraser et al. [FHRP93] to compress byte code for network virtual machines. The basic operation in factorization is the removal of operands from an instruction. First, instruction sequences are selected to correspond to program expression ....
Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In ACM Conference on Principles of Programming Languages, pages 322-332, January 1995.
....parts (like entire functions) to native code, and directly execute the cached translation rather than interpreting the application one instruction at a time. Just in time (JIT) compilers [16, 42] and dynamic compilers [3, 14, 29] execute applications in this manner. Also, many fast interpreters [13, 57, 18, 52, 42] do some translating and caching of application code. Interpreted, JIT compiled, and dynamically compiled program executions are increasingly being used as the norm in running applications. For example, Java applications are almost always run by a Java virtual machine that is implemented as an ....
Todd A. Proebsting. Optimizing an ANSI C Interpreter with Superoperators. In Proceedings of the 22nd ACM Symposium on Principles of Programming Languages (POPL), pages 322-- 332, San Francisco, California, January 1995.
....has explored the compressiblity of a wide range of program representations: source languages, intermediate representations, machine codes, etc. 18] The resulting compressed form either must be decompressed (and perhaps compiled) before execution [6, 7, 8] or it can be executed (or interpreted [11, 17]) without decompression [5, 10] The rst method results in a smaller compressed representation than the second, but requires the overhead of decompression before execution. Decompression time may be negligible and, in fact, may be compensated for by the savings in transmission or retrieval time ....
T.A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Proc. Symp. on Principles of Programming Languages, pages 322-332, January 1995.
....take the address of a label or to goto a location specified in a program variable, gcc has both of these features, and portability can still be preserved across any platform for which gcc is available. Another technique that can reduce the amount of overhead per computation is the superoperator [19]. Superoperators merge together primitive operators that occur together frequently in real programs, implementing them as a single block of code. Superoperators can be used with or without threaded bytecode. The obvious disadvantage of superoperators is the increase in the number of operators that ....
Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In ACM, editor, Conference record of POPL '95, 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages: papers presented at the Symposium: San Francisco, California, January 22--25, 1995, pages 322--332, New York, NY, USA, 1995. ACM Press.
....has explored the compressiblity of a wide range of program representations: source languages, intermediate representations, machine codes, etc. 16] The resulting compressed form either must be decompressed (and perhaps compiled) before execution [5, 6, 7] or it can be executed (or interpreted [10, 15]) without decompression [4, 9] The rst method results in a smaller compressed representation than the second, but requires the overhead of decompression before execution. This overhead may be negligible and, in fact, may be compensated for by the savings in transmission or retrieval cost [7] A ....
T.A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Proc. Symp. on Principles of Programming Languages, pages 322-332, January 1995.
....a significant amount of effort certainly more than the single day that was required to implement our technique in a production virtual machine. Our simple nfibs benchmark runs about 40 faster using vcode, compared to our RISC like inlined threaded code virtual machine. Superoperators [Pro95] are a technique for specializing a bytecoded C interpreter according to the program that it is to execute. This is possible because the specialized 7 Since translation is performed only once for each opcode, the break even point is passed in any program that executes more than six times the ....
Todd A. Proebsting, Optimizing an ANSI C Interpreter with Superoperators, Proc. POPL '95, pages 322--332.
....its operands; and a sequence of operands, called operand pattern, containing the registers and immediates used by the tree pattern. We call the task of removing operands from an expression tree operand factorization. Operand factorization is not a new concept though. It has been proposed in [12] as an encoding technique for bytecode compression. Consider for example, the expression tree in Figure 1(a) Figure 1(b) shows the tree pattern resulting after the operands have been factored out from the original expression tree. Stars addiu r4, r4, 1 addiu , r4,r4,1,r1,0,r1,0,r4] lui ....
Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In ACM Conference on Principles of Programming Languages, pages 322--332, January 1995.
.... compilation approach [14, 3, 7] For languages such as C, which have long been implemented primarily by compilation to native code (an exception is the si system [5] interpreters are experiencing somewhat of a comeback: Proebsting and others are making interpreters much more efficient [13] by combining compiled with interpreted text; moreover, a strong market force is at play in the World Wide Web, where Sun has created the HotJava system for distributing applications in a machine independent fashion [11] Java is likely not to be the only language available for safe execution on ....
Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Conference Record of POPL '95: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 322--332, San Francisco, California, January 1995.
....the tree pattern. Expression trees are constructed as in [1] They do not contain branch instructions nor cross basic block boundaries. We call the task of removing operands from an expression tree operand factorization. Operand factorization is not a new concept though. It has been proposed in [13] as an encoding technique for intermediate representation compression. Consider for example, the expression tree in Figure 1(a) Figure 1(b) shows the tree pattern resulting after the operands have been factored out from the original expression tree. Stars (wild cards) are addiu r4, r4, 1 addiu ....
T. A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In ACM Conference on Principles of Programming Languages, pages 322--332, January 1995.
....its higher real machine instruction cache miss rate does not cancel out the benefits. Also, often the compiler must be made more complex to make use of these instructions. On the other hand, optimizing compilers can make instructions with high semantic content useless (part of the RISC lesson) Pro95] used tree pattern matching to find and combine the most frequently used tree patterns in lcc s intermediate language [FH91a, FH95] He then compiled the intermediate code into a stack based byte code. He achieved speedups of 2 3 by adding 10 20 instructions (superoperators) This high speedup ....
....most complete current treatment on interpreters is [DV90] It also contains an extensive bibliography. Another book that contains several articles on interpreter efficiency is [Kra83] Most of the published literature on interpreters concentrates on decoding speed [Bel73, Kli81] semantic content [Pro95] virtual machine design and time space tradeoffs [Kli81, Pit87] Stack caching has been used first in hardware stack machines [Bla77, HS85, HFWZ87, HL89, Koo89] and for speeding up procedure calls in processors designed at Bell Labs [DM82] and UC Berkeley (register windows) HP90] For ....
Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Principles of Programming Languages (POPL '95), pages 322--332, 1995.
....and Box classes Irisa Java Bytecode Compression for Embedded Systems 9 4 Factorization We now present an algorithm for transforming a Java bytecode program into an equivalent program factorized with respect to a set of patterns. Computing the optimal set of patterns is an NP complete problem [14]; the algorithm presented in this section is polynomial time, and computes a sub optimal set of patterns. Conceptually, recurring operations are abstracted by factorizing them into single units. Each such sequence of bytecode instructions is viewed as a pattern, each pattern having the semantic ....
....bytecode language for this purpose, using a bottom up joining technique to form patterns. While their compression technique yields better results than ours, it requires greater amounts of RAM than is available on some embedded systems. Proebsting describes a C interpreter using superoperators [14]. This kind of operators can be automatically inferred from the tree like intermediate representation produced by lcc [6, 7] The operators are then used to produce an interpreter with specialized instructions. This transformation is aimed at improving speed; it gives a modest reduction in program ....
Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Proceedings of the Twenty-Second Annual ACM Symposium on Principles of Programming Languages, pages 322--332, San Francisco, California, January 22--25, 1995. ACM Press. PI n1213 18 Lars Raeder Clausen, Ulrik Pagh Schultz, Charles Consel, and Gilles Muller
....of interpreters for liquid software. Interpretation often results in slowdowns of 10 1000 Theta relative to native execution speeds. Our research indicates that optimizing code generation techniques can be applied to interpreter generation to consistently get slowdowns of less than 10 Theta [Pro95b] These efficient interpreters rely on techniques normally applied to compilers. Techniques include the efficient register use, the efficient instruction schedules, and efficient instruction selection. Other efficiency enhancing techniques are more specifically applicable to interpreters. Caching ....
Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Annual Symposium on Principles of Programming Languages, pages 322--332, January 1995.
No context found.
T. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Proceedings of the ACM Symposium on Principles of Programming Languages, pages 322--332, San Francisco, CA, 1995. ACM Press.
No context found.
Proebsting, T.A. Optimizing an ANSI C interpreter with superoperators. In Proceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Jan. 1995), 322--332.
No context found.
T. Proebsting. Optimizing a ANSI C interpreter with superoperators. Proc. Symp. on Principles of Programming Languages, pages 322--332, 1995.
No context found.
T. A. Proebsting. Optimizing an ANSI C interpreter with superoperators. In Principles of Programming Languages (POPL '95), pages 322--332, 1995.
No context found.
T. A. Proebsting. Optimizing a ANSI C interpreter with superoperators. In Proc. Symp. on Principles of Programming Languages, pages 322--332, 1995.
No context found.
T. A. Proebsting. Optimizing a ANSI C interpreter with superoperators. In Proc. Symp. on Principles of Programming Languages, pages 322--332, 1995.
No context found.
Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators. POPL'95: 322-332, 1/95.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC