The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
Journal of the ACM (JACM)
Journal of the ACM (JACM)
Requirements for advanced programming systems for list processing
Communications of the ACM
GEDANKEN—a simple typeless language based on the principle of completeness and the reference concept
Communications of the ACM
On implementation of label, variables
Communications of the ACM
A LISP garbage-collector for virtual-memory computer systems
Communications of the ACM
An implementation of backtracking for programming languages
ACM '72 Proceedings of the ACM annual conference - Volume 2
Some examples of the use of function-producing functions
SYMSAC '71 Proceedings of the second ACM symposium on Symbolic and algebraic manipulation
A LISP Garbage Collector Algorithm Using Serial Secondary Storage
A LISP Garbage Collector Algorithm Using Serial Secondary Storage
LISP 1.5 Programmer's Manual
Report on the algorithmic language ALGOL 68
Report on the algorithmic language ALGOL 68
Transformations and reduction strategies for typed lambda expressions
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Language features for flexible handling of exceptions in information systems
ACM Transactions on Database Systems (TODS)
Dynamic initial allocation and local reallocation procedures for multiple stacks
Communications of the ACM
Managing stack frames in Smalltalk
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
CONS should not CONS its arguments, or, a lazy alloc is a smart alloc
ACM SIGPLAN Notices
HOPL-II The second ACM SIGPLAN conference on History of programming languages
Supporting dynamic data structures on distributed-memory machines
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Experience with an uncommon Lisp
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Desiderata for the standardization of LISP
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
New Programming Languages for Artificial Intelligence Research
ACM Computing Surveys (CSUR)
ACM Computing Surveys (CSUR)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Referencing and Retention in Block-Structured Coroutines
ACM Transactions on Programming Languages and Systems (TOPLAS)
Design of a LISP-based microprocessor
Communications of the ACM
List processing in real time on a serial computer
Communications of the ACM
Communications of the ACM
Communications of the ACM
Two-level control structure for nondeterministic programming
Communications of the ACM
Communications of the ACM
Scheme: A Interpreter for Extended Lambda Calculus
Higher-Order and Symbolic Computation
Implementation Strategies for First-Class Continuations
Higher-Order and Symbolic Computation
A combinator-based compiler for a functional language
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Creating efficient systems for object-oriented languages
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Implementation of Interlisp on the VAX
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
A scheme for implementing functional values on a stack machine
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
MULTI - a LISP based multiprocessing system
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
The dream of a lifetime: A lazy variable extent mechanism
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
ByteLisp and its Alto implementation
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Hierarchical coroutines a mechanism for improved program structure
ICSE '79 Proceedings of the 4th international conference on Software engineering
Secure application environments in APL\3000
APL '79 Proceedings of the international conference on APL: part 1
An open operating system for a single-user machine
SOSP '79 Proceedings of the seventh ACM symposium on Operating systems principles
Compiling functional languages for von Neumann machines
Proceedings of the 1983 ACM SIGPLAN symposium on Programming language issues in software systems
Macaroni is better than spaghetti
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
Design rationale for TELOS, a PASCAL-based AI language
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
An optimizing compiler for lexically scoped LISP
SIGPLAN '82 Proceedings of the 1982 SIGPLAN symposium on Compiler construction
ACM '77 Proceedings of the 1977 annual conference
A procedural approach to pattern matching in SNOBOL4
ACM '74 Proceedings of the 1974 annual conference - Volume 1
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
Procedure referencing environments in SL5
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
Capriccio: scalable threads for internet services
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
A comparative analysis of fine-grain threads packages
Journal of Parallel and Distributed Computing
A new technique for data monitoring
ACM SIGPLAN Notices
A preliminary survey of artificial intelligence machines
ACM SIGART Bulletin
History of programming languages---II
MTSS: multi task stack sharing for embedded systems
Proceedings of the 2005 international conference on Compilers, architectures and synthesis for embedded systems
Memory overflow protection for embedded systems using run-time checks, reuse, and compression
ACM Transactions on Embedded Computing Systems (TECS)
A Model for Control Structures for Artificial Intelligence Programming Languages
IEEE Transactions on Computers
An alternative dynamic binding model: deep binding with cacheing
ACM SIGPLAN Lisp Pointers
MTSS: Multitask stack sharing for embedded systems
ACM Transactions on Embedded Computing Systems (TECS)
A display oriented programmer's assistant
IJCAI'77 Proceedings of the 5th international joint conference on Artificial intelligence - Volume 2
IJCAI'77 Proceedings of the 5th international joint conference on Artificial intelligence - Volume 2
A network-based knowledge representation and its natural deduction system
IJCAI'77 Proceedings of the 5th international joint conference on Artificial intelligence - Volume 1
MAGMA-Lisp: a "Machine language" for artificial intelligence
IJCAI'75 Proceedings of the 4th international joint conference on Artificial intelligence - Volume 1
Planner-BESM-6 system: implementation methods
IJCAI'75 Proceedings of the 4th international joint conference on Artificial intelligence - Volume 1
Scheme for invalidating references to freed storage
IBM Journal of Research and Development
Efficient coroutines for the Java platform
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
The right tools: Reflections on computation and language
Computational Linguistics
Deep and shallow binding: The assignment operation
Computer Languages
Compiling lambda-expressions using continuations and factorizations
Computer Languages
Higher-level supercompilation as a metasystem transition
Programming and Computing Software
Hi-index | 48.33 |
Many control and access environment structures require that storage for a procedure activation exist at times when control is not nested within the procedure activated. This is straightforward to implement by dynamic storage allocation with linked blocks for each activation, but rather expensive in both time and space. This paper presents an implementation technique using a single stack to hold procedure activation storage which allows retention of that storage for durations not necessarily tied to control flow. The technique has the property that, in the simple case, it runs identically to the usual automatic stack allocation and deallocation procedure. Applications of this technique to multitasking, coroutines, backtracking, label-valued variables, and functional arguments are discussed. In the initial model, a single real processor is assumed, and the implementation assumes multiple-processes coordinate by passing control explicitly to one another. A multiprocessor implementation requires only a few changes to the basic technique, as described.