jc : An Optimizing Compiler for Janus
Overview
Janus is an instance of a concurrent constraint programming language due to
Saraswat et al.: these languages are an elegant generalization of
concurrent logic programming languages and constraint
logic programming languages. The computational paradigm is one where a set
of concurrently executing agents interact with each other via a shared store
by adding constraints to the store and checking constraints against the
store. A central idea is to maintain a close connection between the logical
and operational semantics of programs by using logical entailment for
synchronization purposes. This project is concerned with the development of
program analysis, optimization, and implementation techniques for such
languages. Many of the ideas and optimization techniques extend readily to
other high level declarative programming languages and dynamically typed
languages.
Publications
Inter-procedural Control Flow Analysis of
First Order Programs with Tail Call Optimization,
with Todd Proebsting. Draft, May 1996.
Return Value Placement and
Tail Call Optimization in High Level Languages, with Peter Bigot.
(A preliminary version of this paper appeared in
Proc. 11th International Conference on Logic Programming,
June 1994.)
A Simple Approach to Supporting Untagged Objects in Dynamically Typed Languages,
with Peter Bigot.
Journal of Logic Programming, to appear.
(A preliminary version of this paper appeared in
Proc. 1995 International Symposium on Logic Programming.)
Detection and Optimization of Suspension-Free Logic Programs,
with David Gudeman and Peter Bigot.
Journal of Logic Programming (Special Issue on High Performance
Implementations), to appear.
Call Forwarding: A Simple Interprocedural Optimization Technique for
Dynamically Typed Languages,
with K. De Bosschere, D. Gudeman, and S. Kannan.
Proc. 1994 ACM Symposium on Principles of Programming Languages.
Weighted Decision Trees,
with S. Kannan and M. paithane.
Proc. 1992 Joint International Conference and Symposium on Logic Programming.
jc: An Efficient and Portable Sequential Implementation
of Janus,
with D. Gudeman and K. De Bosschere.
Proc. 1992 Joint International Conference and Symposium on Logic Programming.
For questions/comments, contact: debray@cs.arizona.edu