Performance and evaluation of LISP systems
Performance and evaluation of LISP systems
Lambda lifting: transforming programs to recursive equations
Proc. of a conference on Functional programming languages and computer architecture
Design for a multiprocessing heap with on-board reference counting
Proc. of a conference on Functional programming languages and computer architecture
The g-machine: a fast, graph-reduction evaluator
Proc. of a conference on Functional programming languages and computer architecture
Revised report on the algorithmic language scheme
ACM SIGPLAN Notices
Executing a program on the MIT tagged-token dataflow architecture
Volume II: Parallel Languages on PARLE: Parallel Architectures and Languages Europe
Theoretical Computer Science
A RISC architecture for symbolic computation
ASPLOS II Proceedings of the second international conference on Architectual support for programming languages and operating systems
The semantics of destructive LISP
The semantics of destructive LISP
Analysis of functional programs to detect run-time garbage cells
ACM Transactions on Programming Languages and Systems (TOPLAS)
Theoretical Computer Science - International Joint Conference on Theory and Practice of Software Development, P
I-structures: data structures for parallel computing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Lifetime analysis of dynamically allocated objects
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Demonic memory for process histories
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Deciding ML typability is complete for deterministic exponential time
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Update analysis and the efficient implementation of functional aggregates
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Compile-time garbage collection by sharing analysis
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
A logical view of composition and refinement
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Parallel evaluation of functional programs: the vG-machine approach (summary)
PARLE '91 Proceedings on Parallel architectures and languages Europe : volume I: parallel architectures and algorithms: volume I: parallel architectures and algorithms
Lisp and Symbolic Computation
Copying and Swapping: Influences on the Design of Reusable Software Components
IEEE Transactions on Software Engineering
Is there a use for linear logic?
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Some issues and strategies in heap management and memory hierarchies
ACM SIGPLAN Notices
Shallow binding makes functional arrays fast
ACM SIGPLAN Notices
The Boyer Benchmark at warp speed
ACM SIGPLAN Lisp Pointers
An architecture for mostly functional languages
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
A real-time garbage collector based on the lifetimes of objects
Communications of the ACM
Analysis of pointer “rotation”
Communications of the ACM
Communications of the ACM
Shifting garbage collection overhead to compile time
Communications of the ACM
An efficient machine-independent procedure for garbage collection in various list structures
Communications of the ACM
A method for overlapping and erasure of lists
Communications of the ACM
Communications of the ACM
On programming of arithmetic operations
Communications of the ACM
Efficient compilation of lazy evaluation
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
M-Structures: Extending a Parallel, Non-strict, Functional Language with State
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
Efficient applicative data types
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Garbage collection in a large LISP system
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Design of a Lisp machine - FLATS
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
Address/memory management for a gigantic LISP environment or, GC considered harmful
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Hashing LEMMAs on time complexities with applications to formula manipulation
SYMSAC '76 Proceedings of the third ACM symposium on Symbolic and algebraic computation
The incremental garbage collection of processes
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
Programming without pointer variables
Proceedings of the 1976 conference on Data : Abstraction, definition and structure
HAKMEM
Garbage collection and other optimizations
Garbage collection and other optimizations
Values and objects in programming languages
ACM SIGPLAN Notices
Safe and leakproof resource management using Ada83 limited types
ACM SIGAda Ada Letters
ACM SIGPLAN Notices
The Boyer benchmark meets linear logic
ACM SIGPLAN Lisp Pointers
Linear logic and permutation stacks—the Forth shall be first
ACM SIGARCH Computer Architecture News - Special issue: panel sessions of the 1991 workshop on multithreaded computers
Sparse polynomials and linear logic
ACM SIGSAM Bulletin
Static and dynamic partitioning of pointers as links and threads
Proceedings of the first ACM SIGPLAN international conference on Functional programming
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the ninth annual ACM symposium on Parallel algorithms and architectures
One-bit counts between unique and sticky
Proceedings of the 1st international symposium on Memory management
Programming with variable functions
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Promises: limited specifications for analysis and manipulation
Proceedings of the 20th international conference on Software engineering
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type-preserving garbage collectors
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The strength of non-size increasing computation
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Type System for Bounded Space and Functional In-Place Update--Extended Abstract
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Resource-Passing Concurrent Programming
TACS '01 Proceedings of the 4th International Symposium on Theoretical Aspects of Computer Software
A type system for bounded space and functional in-place update
Nordic Journal of Computing
Heap-Bounded Assembly Language
Journal of Automated Reasoning
Experience with safe manual memory-management in cyclone
Proceedings of the 4th international symposium on Memory management
A step-indexed model of substructural state
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Safe manual memory management in cyclone
Science of Computer Programming - Special issue on five perspectives on modern memory management: Systems, hardware and theory
Journal of Functional Programming
L3: A Linear Language with Locations
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2005, Selected Papers
L3: a linear language with locations
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
L$^3$: A Linear Language with Locations
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2005, Selected Papers
Reversible representation and manipulation of constructor terms in the heap
RC'13 Proceedings of the 5th international conference on Reversible Computation
Hi-index | 0.00 |
Linear logic has been proposed as one solution to the problem of garbage collection and providing efficient "update-in-place" capabilities within a more functional language. Linear logic conserves accessibility, and hence provides a mechanical metaphor which is more appropriate for a distributed-memory parallel processor in which copying is explicit. However, linear logic's lack of sharing may introduce significant inefficiencies of its own.We show an efficient implementation of linear logic called Linear Lisp that runs within a constant factor of non-linear logic. This Linear Lisp allows RPLACX operations, and manages storage as safely as a non-linear Lisp, but does not need a garbage collector. Since it offers assignments but no sharing, it occupies a twilight zone between functional languages and imperative languages. Our Linear Lisp Machine offers many of the same capabilities as combinator/graph reduction machines, but without their copying and garbage collection problems.