Topic: command-line as a UserInterface
Topic: compiler
Topic: compressed code
Topic: compressed data
Topic: early vs. late binding
Topic: incremental compilation
Topic: incremental execution
Topic: intermediate representation of code
Topic: just-in-time compilation
Topic: list processing
Topic: load-time code generation
Topic: program execution
Topic: security of remotely executed code
Topic: scripting language
Topic: symbolic execution
Topic: Thesa compiler and loader
Topic: threaded code
Topic: type reflection and introspection
Topic: words defined by words
| |
Subtopic: goals for interpreter
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
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
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
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
Quote: interactive interpreters can inspect programs and data structures at any time
| Subtopic: interpreter as extended machine
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
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
Quote: formal definition of Euler with translator and interpreter for an abstract machine; derived from Algol [»wirtN1_1966]
| Subtopic: meta-circular interpreter
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
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
Quote: interpretation by subroutine encoding, pointer-based encoding or tokenized encoding; sequential, threaded and linked representations [»debaEH_1990]
| Subtopic: LISP-style interpreter
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
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
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
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
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
Quote: simple, 30% compression of bytecodes allowing direct interpretation; echo instruction executes previous instructions [»frasCW4_2006]
| Subtopic: interpreted modules
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
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
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
Quote: use contours to compress identifiers during interpretation; each entry in contour includes all information to access variable [»debaEH_1990]
| Subtopic: small interpreter
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
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
Quote: equations may be numbered; the interpreter included a goto and conditional goto instruction [»laniJH1_1954]
|
Related Topics
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)
|