Programming with sets; an introduction to SETL
Programming with sets; an introduction to SETL
Naive evaluation of recursively defined relations
On knowledge base management systems: integrating artificial intelligence and d atabase technologies
Mechanical translation of set theoretic problem specifications into efficient RAM code-A case study
Journal of Symbolic Computation
Binding performance at language design time
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Principles of database and knowledge-base systems, Vol. I
Principles of database and knowledge-base systems, Vol. I
The synthesizer generator: a system for constructing language-based editors
The synthesizer generator: a system for constructing language-based editors
Program derivation by fixed point computation
Science of Computer Programming
KIDS: A Semiautomatic Program Development System
IEEE Transactions on Software Engineering
More efficient bottom-up multi-pattern matching in trees
CAAP '90 Selected papers of the conference on Fifteenth colloquium on trees in algebra and programming
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Towards increased productivity of algorithm implementation
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
Using multiset discrimination to solve language processing problems without hashing
Theoretical Computer Science
Science of Computer Programming
Applications of range query theory to relational data base join and selection operations
Journal of Computer and System Sciences
From regular expressions to DFA's using compressed NFA's
Theoretical Computer Science
High level reading and data structure compilation
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the IFIP TC 2 WG 2.1 international workshop on Algorithmic languages and calculi
Proceedings of the IFIP TC 2 WG 2.1 international workshop on Algorithmic languages and calculi
The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
Encoding types in ML-like languages
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Quasilinear algorithms for processing relational calculus expressions (preliminary report)
PODS '90 Proceedings of the ninth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Incremental Context-Dependent Analysis for Language-Based Editors
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automatic data structure choice in a language of very high level
Communications of the ACM
Symbolic evaluation and the global value graph
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Language Polynomial in the Input Plus Output
AMAST '91 Proceedings of the Second International Conference on Methodology and Software Technology: Algebraic Methodology and Software Technology
Viewing A Program Transformation System At Work
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Induction variables in very high level languages
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
A Language for Semantic Analysis
A Language for Semantic Analysis
Hi-index | 0.00 |
The objectives of this research are to improve software productivity, reliability, and performance of complex systems. The approach combines program transformations, sometimes in reflective ways, to turn very high level perspicuous specifications into efficient implementations. These transformations will be implemented in a meta-transformational system, which itself will be transformed from an executable specification into efficient code. Experiments will be conducted to assess the research objectives in scaled up applications targetted to systems that perform complex program analysis and translation.The transformations to be used include dominated convergence (for implementing fixed points efficiently), finite differencing (for replacing costly repeated calculations by less expensive incremental counterparts), data structure selection (for simulating associative access on a RAM in real time), and partial evaluation (for eliminating interpretive overhead and simplification). Correctness of these transformations, of user-defined transformations, and of the transformational system itself will be addressed in part. Both the partial evaluator and components of the transformational system that perform inference and conditional rewriting will be derived by transformation from high level specifications. Other transformations will be specified in terms of Datalog-like inference and conditional rewriting rules that should be amenable to various forms of rule induction.Previously, Cai and Paige in [12] used an ideal model of productivity free from all human factors in order to demonstrate experimentally how a transformation from a low level specification language into C could be used to obtain a five-fold increase in the productivity of efficient algorithm implementation in C in comparison to hand-coded C. However, only small-scale examples were considered. The proposed research includes a plan to expand this model of productivity to involve other specification languages (and their transformation to C), and to conduct experiments to demonstrate how to obtain a similar five-fold improvement in productivity for large-scale examples of C programs that might exceed 100,000 lines.The proposal lays out extensive evidence to support the approach, which will be evaluated together with its theoretical underpinnings through substantial experiments. If successful, the results are expected to have important scientific and economic impact. They are also expected to make interesting, new pedagogical connections between the areas of programming languages, software engineering, databases, artificial intelligence, and algorithms.