Bulldog: a compiler for VLSI architectures
Bulldog: a compiler for VLSI architectures
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Advanced compiler optimizations for supercomputers
Communications of the ACM - Special issue on parallelism
Tutorial: abstraction in numerical methods
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Expressing mathematical subroutines constructively
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Listlessness is better than laziness: Lazy evaluation and garbage collection at compile-time
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
The Bifurcation Interpreter: A Step Towards the Automatic Analysis of Dynamical Systems
The Bifurcation Interpreter: A Step Towards the Automatic Analysis of Dynamical Systems
A Compilation Strategy for Numerical Programs Based on Partial Evaluation
A Compilation Strategy for Numerical Programs Based on Partial Evaluation
An {\it bf O(N)} Algorithm for Three-Dimensional N-body Simulations
An {\'it bf O(N)} Algorithm for Three-Dimensional N-body Simulations
Compiling Scientific Code Using Partial Evaluation
Compiling Scientific Code Using Partial Evaluation
PARTIAL EVALUATION AS A MEANS OF LANGUAGE EXTENSIBILITY
PARTIAL EVALUATION AS A MEANS OF LANGUAGE EXTENSIBILITY
Parameterized partial evaluation
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Program transformations for configuring components
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Heterogeneous parallel programming in Jade
Proceedings of the 1992 ACM/IEEE conference on Supercomputing
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parameterized partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Fortran program specialization
ACM SIGPLAN Notices
Partial-evaluation techniques for concurrent programs
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Partial Evaluation of the Euclidian Algorithm
Lisp and Symbolic Computation
Declarative specialization of object-oriented programs
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An annotation language for optimizing software libraries
Proceedings of the 2nd conference on Domain-specific languages
Partial Evaluation: Concepts and Applications
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
Towards Automatic Specialization of Java Programs
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
BOKS: A Rule-Based System in Support of the Dutch Building Materials Regulations
Revised Papers from the PRICAI 2000 Workshop Reader, Four Workshops held at PRICAI 2000 on Advances in Artificial Intelligence
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
An annotation language for optimizing software libraries
DSL'99 Proceedings of the 2nd conference on Conference on Domain-Specific Languages - Volume 2
Hi-index | 0.00 |
There have been many demonstrations that the expressive power of Lisp can greatly simplify the process of writing numerical programs, but at the cost of reduced performance.[10][16] I show that by coupling Lisp's abstract, expressive style of programming with a compiler that uses partial evaluation, data abstractions can be eliminated at compile time, producing extremely high-performance code. For an important class of numerical programs, partial evaluation achieves order-of-magnitude speed-ups over conventional Lisp compilation technology. This approach has proven to be especially effective when used in conjunction with schedulers for VLIW and highly pipelined architectures, because the elimination of data structures and procedural abstractions exposes the low-level parallelism inherent in a computation.