Transformations and reduction strategies for typed lambda expressions
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Efficient incremental evaluation of aggregate values in attribute grammars
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
ISCA '86 Proceedings of the 13th annual international symposium on Computer architecture
ACM SIGART Bulletin
ACM SIGSMALL/PC Notes
A small lisp interpreter as a project in a programming language course
ACM SIGCSE Bulletin
ACM SIGCSE Bulletin
Analysis of functional programs to detect run-time garbage cells
ACM Transactions on Programming Languages and Systems (TOPLAS)
An improved replacement strategy for function caching
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Incremental distribution of timestamp packets: a new approach to distributed garbage collection
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Incremental computation via function caching
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Skip lists: a probabilistic alternative to balanced trees
Communications of the ACM
ACM SIGPLAN Notices
Unique binary search tree representations and equality-testing of sets and sequences
STOC '90 Proceedings of the twenty-second annual ACM symposium on Theory of computing
HARE: an optimizing portable compiler for Scheme
ACM SIGPLAN Notices
M-LISP: a representation-independent dialect of LISP with reduction semantics
ACM Transactions on Programming Languages and Systems (TOPLAS)
Persistent lists with catenation via recursive slow-down
STOC '95 Proceedings of the twenty-seventh annual ACM symposium on Theory of computing
Holistic design of a programming system
ACM SIGSOFT Software Engineering Notes
Purely functional, real-time deques with catenation
Journal of the ACM (JACM)
An efficient LISP-execution architecture with a new representation for list structures
ISCA '85 Proceedings of the 12th annual international symposium on Computer architecture
Using Java reflection to automate extension language parsing
Proceedings of the 2nd conference on Domain-specific languages
Programming in an Interactive Environment: the ``Lisp'' Experience
ACM Computing Surveys (CSUR)
A real-time garbage collector based on the lifetimes of objects
Communications of the ACM
Control structures in hypothesis spaces: the influence on learning
Theoretical Computer Science
Compiling language definitions: the ASF+SDF compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Syntactic Theory of Dynamic Binding
Higher-Order and Symbolic Computation
A Modeller's Workbench: Experiments in Object-Oriented Simulation
ECOOP '87 Proceedings of the European Conference on Object-Oriented Programming
Compiling a functional language
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
The implementation of procedurally reflective languages
LFP '84 Proceedings of the 1984 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
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
SIGCSE '80 Proceedings of the eleventh SIGCSE technical symposium on Computer science education
Generic functions by nonstandard name scoping in APL
APL '81 Proceedings of the international conference on APL
Efficient abstractions for the implementation of structured editors
SLIPE '85 Proceedings of the ACM SIGPLAN 85 symposium on Language issues in programming environments
ACM SIGPLAN Notices - Special issue: History of programming languages conference
Lexicon design using perfect hash functions
CHI '81 Proceedings of the Joint Conference on Easier and More Productive Use of Computer Systems. (Part - II): Human Interface and the User Interface - Volume 1981
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Threaded interpretive systems and functional programming environments
ACM SIGPLAN Notices
A preliminary survey of artificial intelligence machines
ACM SIGART Bulletin
Type-safe modular hash-consing
Proceedings of the 2006 workshop on ML
History of programming languages I
Using java reflection to automate extension language parsing
DSL'99 Proceedings of the 2nd conference on Conference on Domain-Specific Languages - Volume 2
ACM Lisp Bulletin
Parallel Programming in MATLAB
International Journal of High Performance Computing Applications
IJCAI'79 Proceedings of the 6th international joint conference on Artificial intelligence - Volume 1
Electronic Notes in Theoretical Computer Science (ENTCS)
Software transactional memory for implicitly parallel functional language
Proceedings of the 2010 ACM Symposium on Applied Computing
Building and using pluggable type-checkers
Proceedings of the 33rd International Conference on Software Engineering
Deep and shallow binding: The assignment operation
Computer Languages
Resurrector: a tunable object lifetime profiling technique for optimizing real-world programs
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Hi-index | 0.03 |
This text is nominally about LISP and data structures. However, in the process it covers much broader areas of computer science. The author has long felt that the beginning student of computer science has been getting' a distorted and disjointed picture of the field. In some ways this confusion is natural; the field has been growing at such a rapid rate that few are prepared to be judged experts in all areas of the discipline. The current alternative seems to be to give a few introductory courses in programming and machine organization followed by relatively specialized courses in more technical areas. The difficulty with this approach is that much of the technical material never gets related. The student's perspective and motivation suffer in the process. This book uses LISP as a means for relating topics which normally get treated in several separate courses. The point is not that we can do this in LISP, but rather that it is natural to do it in LISP. The high-level notation for algorithms is beneficial in explaining and understanding complex algorithms. The use of abstract data structures and abstract LISP programs shows the intent of structured programming and step-wise refinement. Much of the current work in mathematical theories of computation is based on LISP-like languages. Thus LISP is a formalism for describing algorithms, for writing programs, and for proving properties of algorithms. We use data structures as the main thread in our discussions because a proper appreciation of data structures as abstract objects is a necessary prerequisite to an understanding of modern computer science.