Two major paradigms in computer programminglanguages are imperative and declarative programming. The authors describe a scheme for languages that integrate specific features from these two paradigms into a new framew...
详细信息
ISBN:
(纸本)0818625856
Two major paradigms in computer programminglanguages are imperative and declarative programming. The authors describe a scheme for languages that integrate specific features from these two paradigms into a new framework: constraint imperative programming. The authors discuss the design and implementation of a particular instance of this framework, Kaleidoscope'90. From the imperative paradigm, constraint imperative programming adopts explicit control flow, state, and assignment. From the declarative paradigm, it adopts explicit, system-maintained constraints (relations that should hold). There is a strong practical motivation for making this integration: in a typical application, some portions are most clearly described using imperative constructs, while other portions are most clearly described using constraints. By using a constraint imperative language, the most suitable paradigm can be used, as appropriate.
A simple and efficient algorithm for generating bottom-up rewrite system (BURS) tables is described. A small prototype implementation produces tables 10 to 30 times more quickly than the best current techniques. The a...
详细信息
ISBN:
(纸本)0897914759
A simple and efficient algorithm for generating bottom-up rewrite system (BURS) tables is described. A small prototype implementation produces tables 10 to 30 times more quickly than the best current techniques. The algorithm does not require novel data structures or complicated algorithmic techniques. Previously published methods for on-the-fly elimination of states are generalized and simplified to create a new method, triangle trimming, that is employed in the algorithm.
The conference materials contain 33 papers. The topics covered include compiling lazy pattern matching, garbage collection, parsers in ML, interactive modular programming, finiteness conditions for fixed point iterati...
详细信息
ISBN:
(纸本)0897914813
The conference materials contain 33 papers. The topics covered include compiling lazy pattern matching, garbage collection, parsers in ML, interactive modular programming, finiteness conditions for fixed point iteration, abstract interpretation in weak power domains, data abstraction, type inference, global tagging optimization, calculus for overloaded functions, the Python compiler for CMU common LISP, Tachyon common LISP, confluent calculus of macro expansion and evaluation, dynamic program parallelization, fast parallel implementation of lazy languages, and efficient multi-threaded scheme system.
An abstract machine is described for the CLP(R) programminglanguage. It is intended as a first step towards enabling CLP(R) programs to be executed with efficiency approaching that of conventional languages. The core...
详细信息
ISBN:
(纸本)0897914759
An abstract machine is described for the CLP(R) programminglanguage. It is intended as a first step towards enabling CLP(R) programs to be executed with efficiency approaching that of conventional languages. The core Constraint Logic Arithmetic Machine (CLAM) extends the Warren Abstract Machine (WAM) for compiling Prolog with facilities for handling real arithmetic constraints. The full CLAM includes facilities for taking advantage of information obtained from global program analysis.
This conferenceproceedings contains 34 papers. The following topics are dealt with: abstract interpretation;parallel languages;languageimplementation;multiparadigm languages;distributed languages;and object-oriented...
详细信息
ISBN:
(纸本)0818625856
This conferenceproceedings contains 34 papers. The following topics are dealt with: abstract interpretation;parallel languages;languageimplementation;multiparadigm languages;distributed languages;and object-oriented languages.
This paper describes a general framework for representing iteration-reordering transformations. These transformations can be both matrix-based and non-matrix-based. Transformations are defined by rules for mapping dep...
详细信息
ISBN:
(纸本)0897914759
This paper describes a general framework for representing iteration-reordering transformations. These transformations can be both matrix-based and non-matrix-based. Transformations are defined by rules for mapping dependence vectors, rules for mapping loop bound expressions, and rules for creating new initialization statements. The framework is extensible, and can be used to represent any iteration-reordering transformation. Mapping rules for several common transformations are included in the paper.
This paper describes EQUALS, a fast parallel implementation of a lazy functional language on a commercially available shared-memory parallel machine, the Sequent Symmetry. In contrast to previous implementations, we d...
详细信息
ISBN:
(纸本)0897914813
This paper describes EQUALS, a fast parallel implementation of a lazy functional language on a commercially available shared-memory parallel machine, the Sequent Symmetry. In contrast to previous implementations, we detect parallelism automatically by propagating exhaustive (normal form) demand. Another important difference between EQUALS and previous implementations is the use of reference counting for memory management instead of garbage collection. Our implementation shows that reference counting leads to very good scalability, low memory requirements and improved locality. We compare our results with sequential SML/NJ as well as parallel 〈ν, G〉-machine and GAML implementations.
During execution, when two or more names exist for the same location at some program point, we call them aliases. In a language which allows arbitrary pointers, the problem of determining aliases at a program point is...
详细信息
ISBN:
(纸本)0897914759
During execution, when two or more names exist for the same location at some program point, we call them aliases. In a language which allows arbitrary pointers, the problem of determining aliases at a program point is P-space-hard [Lan92]. We present an algorithm for the Conditional May Alias problem, which can be used to safely approximate Interprocedural May Alias in the presence of pointers. This algorithm is as precise as possible in the worst case and has been implemented in a prototype analysis tool for C programs. Preliminary speed and precision results are presented.
A new global register allocation technique, probabilistic register allocation, is described. Probabilistic register allocation quantifies the costs and benefits of allocating variables to registers over live ranges so...
详细信息
ISBN:
(纸本)0897914759
A new global register allocation technique, probabilistic register allocation, is described. Probabilistic register allocation quantifies the costs and benefits of allocating variables to registers over live ranges so that excellent allocation choices can be made. Local allocation is done first, and then global allocation is done iteratively beginning in the the most deeply nested loops. Because local allocation precedes global allocation, probabilistic allocation does not interfere with the use of well-known, high-quality local register allocation and instruction scheduling techniques.
Functional-style programming and languages have an important role to play in the software life cycle, but for a variety of technical and organisational reasons are of limited utility until they are integrated with exi...
详细信息
暂无评论