Topic: compressed code
Topic: incremental execution
Topic: intermediate representation of code
Topic: interpreter
Topic: pointer machines
Topic: program execution
Topic: stack machine
Topic: variable as function that accesses an object's value
Topic: virtual machine
Topic: words defined by words
| |
Summary
A program in threaded code is a sequence of addresses referencing other threaded code or machine code programs. Execution is interpretive using a parameter stack and indirect referencing. Space efficiency is better than assembly code while temporal efficiency depends on the machine and the embedding depth. The language Forth generates threaded code through a dictionary associating names with threaded code procedures. Using Forth, users can dynamically create, test, and execute programs without needing normal program development utilities. (cbb 5/80)
Threaded code may be combined with machine code to yield a compact, yet efficient program. (cbb 12/92)
Subtopic: pointer array threading
Quote: threaded code is small pieces of code linked through a pointer array [»bellJR6_1973, OK]
| QuoteRef: dewaRB6_1975 ;;330 further compaction by indirect accesses through data blocks which in turn contain addresses of library routines to process the data.
| Subtopic: mixed threaded code
Quote: combine indirect threaded code with native code; halves storage requirements; about 70% threaded [»pittT7_1987]
| Quote: can execute threaded-code block-diagram in microcode and imbed as a subroutine to BASIC [»kornGA_1978]
| Quote: method to compress assembly code; includes procedural abstraction(repeated codes), cross-jumping (common tails), and threaded code [»frasCW6_1984]
| 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]
| Quote: TM instructions process arguments by calling corresponding subroutines [»harbSP3_1982]
| Subtopic: Smalltalk virtual machine
Quote: Smalltalk 80 based on about 100 primitive subroutines; allows rest of system to be flexible and extensible [»krasG8_1981]
| Quote: the Smalltalk virtual image is about 300K bytes of objects; needs 6-12K of assembly code [»krasG8_1981]
| Quote: the Smalltalk virtual machine is 6-12K bytes of assembly code; 40% memory management, 20% interpreter, 40% primitives
| Quote: in Smalltalk, high frequency methods implemented as a bytecode instead of dictionary lookup [»krasG8_1981]
| Subtopic: Forth threaded code
Quote: in 5-6K get an interactive Forth compiler, I/O drivers, assembler, virtual memory, and text editor [»jameJS9_1978]
| Quote: implemented a radiotelescope control and data analysis system in Forth in a third the time and a quarter the space [»jameJS9_1978]
| QuoteRef: steiP11_1975 ;;10 "FORTH definitions are compiled at the time that they are defined.
| QuoteRef: rathED10_1976 ;;234 Forth executes sqrt(1-x**2) in 427 microsecs, using 11 16-bit words and 12.1% interpreter overhead by time.
| QuoteRef: philJB5_1978 ;;261 In the HISS system, a general-purpose macroprocessor is used to translate threaded code source to binary code which can be interpreted by the threaded code interpreter. [very like FORTH]
| Subtopic: other examples
Quote: threaded code interpreter for Java; 2x slower than JIT for some general purpose applications; more than 10x slower for scientific code [»gregD6_2001]
| QuoteRef: cbb_1980 ;;1/28/80 board-level Purna, dictionary driven (simplified names), simple assembler producing target machine procedures, simple Purna producing threaded code procedures.
|
Related Topics
Topic: compressed code (17 items)
Topic: incremental execution (22 items)
Topic: intermediate representation of code (31 items)
Topic: interpreter (59 items)
Topic: pointer machines (17 items)
Topic: program execution (8 items)
Topic: stack machine (10 items)
Topic: variable as function that accesses an object's value (21 items)
Topic: virtual machine (13 items)
Topic: words defined by words (25 items)
|