Topic: interpreter

topics > computer science > programming > Group: code generation

command-line as a UserInterface
compressed code
compressed data
early vs. late binding
incremental compilation
incremental execution
intermediate representation of code
just-in-time compilation
list processing
load-time code generation
program execution
security of remotely executed code
scripting language
symbolic execution
Thesa compiler and loader
threaded code
type reflection and introspection
words defined by words
Subtopic: goals for interpreter up

Quote: CLR supports unsafe code, tail calls, user-defined value types, enumerations, unsigned ints, variable length arguments, pointer arithmetic, global variables, private scope, function pointers, call-by-reference, multidim arrays, pinned objects [»hamiJ2_2003]

Subtopic: interpreter for programmer productivity up

Quote: scripting languages are good alternatives; better programmer productivity and acceptable efficiency
Quote: although interpretation was slow, I/O ran at the same speed; programs were much easier to code [»campM1_1980]

Subtopic: interpreter as command language up

Quote: no command language or debugger needed for interactive interpreters
Quote: in CONTROL, any action may be commanded from the keyboard; extremely useful [»ruhlRC11_1976]
Quote: with FORTH, one can execute any instruction from the terminal and observe its behavior; good for interactive program check-out [»bailGV8_1977]
Quote: to execute a Smalltalk statement, type it into a pane, select it, and execute the 'do it' command [»teslL8_1981]
Quote: main loop of TRAC is #(ps,#(rs)), i.e., read string/print string [»mooeCN8_1965, OK]
Quote: KMS includes a script language of nearly 800 commands; a KMS frame acts as a function with links as function calls; self-documenting [»akscRM11_1993]

Subtopic: testing with interpreter up

Quote: no drivers needed for unit testing with interactive interpreters; just type a call to the function [»tichWF11_1987]
Quote: check a program by interpreting the program instead of executing it directly; print additional information [»wilkMV_1951]

Subtopic: debugging with interpreter up

Quote: interactive interpreters can inspect programs and data structures at any time

Subtopic: interpreter as extended machine up

Quote: EDSAC's floating point interpreter had recursion, an index register. and DO-loops; first recorded use of recursion [»campM1_1980]
Quote: EDSAC include interpretive routines for complex numbers and floating point arithmetic; they coined the term [»wilkMV_1951]
Quote: an interpretive routine extends the order code of the machine at the cost of greater execution time [»wilkMV_1951]
Quote: use in-line expansion to extend a machine's order code; use interpretative subroutines to reduce memory; e.g., floating point [»wilkMV_1957]

Subtopic: interpreter as virtual machine up

Quote: an interpreter for algebraic equations creates a computer within a computer; input is Flexowriter punched tape [»laniJH1_1954]
Quote: interpretive subroutines are significantly slower; use for short programs and machine simulation [»wilkMV_1957]
Quote: implemented OS6 operating system with an interpreter; optimized frequently executed instructions [»stoyJE3_1972]

Subtopic: formal definition via interpreter up

Quote: formal definition of Euler with translator and interpreter for an abstract machine; derived from Algol [»wirtN1_1966]

Subtopic: meta-circular interpreter up

Quote: almost all reflective systems use a meta-circular interpreter that is defined by the language itself; e.g., LISP's eval [»maesP12_1987]
Quote: for a language to use a meta-circular interpreter, programs are data-structures of the language [»maesP12_1987]
Quote: a meta-circular interpreter for expression evaluation defines each feature of the defined language via the corresponding feature of the defining language [»reynJC8_1972]
Quote: a meta-circular interpreter does not explain higher-order functions, does not support both call-by-value and call-by-name, and does not support extensions [»reynJC8_1972]

Subtopic: random interpretation up

Quote: random interpretation assigns random linear interpretations to operators and executes with random inputs; combines program states with a random affine combination

Subtopic: types of interpreter up

Quote: interpretation by subroutine encoding, pointer-based encoding or tokenized encoding; sequential, threaded and linked representations [»debaEH_1990]

Subtopic: LISP-style interpreter up

Quote: replace function arguments and results by records which represent functions, an 'apply' function to interpret these records, and an environment that binds values to variables; like LISP [»reynJC8_1972]
Quote: evaluation is executing the expression (interpretation) and dereferencing the result [»hansDR5_1978]

Subtopic: indirect threaded code up

Quote: indirect threaded code consists of addresses of data that includes addresses of library routines. Compared to direct threaded code, it is machine independent, smaller, and faster [»dewaRB6_1975]

Subtopic: byte code interpreter up

Quote: Limbo programs are byte codes for the Dis virtual machine with garbage collection and task scheduling [»dorwSM1_1997]
Quote: Dis is a three-address machine similar to modern processors; on-the-fly compiler, internal format

Subtopic: operator tree up

Quote: produce an operator tree from a syntax tree by transformations; then define abstract machines for the operator tree [»olloA_1974, OK]

Subtopic: compressed code up

Quote: interpreted BRISC code: 40% smaller with 12x time penalty, high-speed compilation generates high-quality code [»ernsJ6_1997]
Quote: slim-binaries reduces input/output overhead and nearly compensates for on-the-fly code generation [»franM12_1997]
Quote: split-stream dictionary compression compresses code to half size with fast decompression; only 27% overhead for JIT translation [»luccS6_2000]
Quote: compression is interpretable if can decompress basic blocks [»luccS6_2000]
Quote: compressed bytecodes using profiled grammar rewriting; lcc 2/3 smaller with 11KB larger interpreter [»evanWS6_2001]
Quote: decompress code words into the hardware instruction cache for practical, 70% software compression [»lefuC1_2000]
Quote: executable, compressed programs by encoding program as a list of grammar rules that generate basic blocks; 29-42% compression, 140x slower [»evanWS8_2003]

Subtopic: echo compression up

Quote: simple, 30% compression of bytecodes allowing direct interpretation; echo instruction executes previous instructions [»frasCW4_2006]

Subtopic: interpreted modules up

Quote: Modula-2 interpreter represents modules by data and code frame; access procedures by their index; dynamic linking [»debaEH_1990]

Subtopic: native and interpreted code up

Quote: mix native code with interpreted code [»proeTA1_1995]
Quote: use superoperators for faster interpretation of common sequences of operations; specified by developer with help of static and dynamic feedback information
Quote: interpretation allows more interactivity, easier ports and denser encoding, at cost of lower execution speed [»debaEH_1990]
Quote: combined interpreter and compiler using the same functions; the first execution is interpreted, the second runs compiled code [»mitcJG6_1970]
QuoteRef: wegbB_1971 ;;254 can thoroughly intermix compiled and interpretive code
Quote: most high level code should be indirect threaded to reduce code size [»cbb_1980, OK]

Subtopic: JIT compiler up

Quote: instruction coprocessor generates machine code for intermediate codes; 2x faster, problem of jumps [»debaEH_1990]
Quote: fast, 8KB JIT translator which is within 2-4X of native code; generated from tree translators for easy retargeting [»frasCW5_1999a]
Quote: interpret by dynamically translating a compact, flexible or mnemonic representation into a fast representation and caching the result [»lampBW10_1983]
Quote: convert an interpreter into a compiler by outputting chunks of code for each action chunk and then using a compiler [»pagaFG6_1988]

Subtopic: space-optimization for interrupter up

Quote: use contours to compress identifiers during interpretation; each entry in contour includes all information to access variable [»debaEH_1990]

Subtopic: small interpreter up

Quote: WADUZITDO executes simple conversational programs, e.g., 'T:' for 'type' and 'A:' for 'input char' [»kherL9_1978]
Quote: WADUZITDO is a complete high-level language processor that fits in 256 bytes; includes an editor and interpreter [»kherL9_1978]

Subtopic: performance of interpreter up

Quote: Java's runtime efficiency is acceptable but it has a huge memory overhead [»precL10_2000]
Quote: rewrote LINPACK in Java; Fortran-style Java code was 4x slower than original; Java with explicit base types was 4x or more slower; object-oriented Java was 19x to 140x slower on average [»budiZ2_1999]
Quote: a system programming language can often run 10 to 20 times faster than a scripting language
Quote: lcc.NET is about three times slower than native lcc; one quarter is JIT time [»hansDR3_2004]

Subtopic: history up

Quote: equations may be numbered; the interpreter included a goto and conditional goto instruction

Related Topics up

Topic: command-line as a UserInterface (25 items)
Topic: compiler (18 items)
Topic: compressed code (17 items)
Topic: compressed data (16 items)
Topic: early vs. late binding (15 items)
Topic: incremental compilation (3 items)
Topic: incremental execution (22 items)
Topic: intermediate representation of code (31 items)
Topic: just-in-time compilation (20 items)
Topic: list processing (15 items)
Topic: load-time code generation (13 items)
Topic: program execution (8 items)
Topic: security of remotely executed code (24 items)
Topic: scripting language (27 items)
Topic: symbolic execution (9 items)
Topic: Thesa compiler and loader (23 items)
Topic: threaded code (18 items)
Topic: type reflection and introspection (28 items)
Topic: words defined by words
(25 items)

Updated barberCB 3/06
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.