Summary
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 metatransformational 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 (i) dominated convergence (for implementing fixed-points efficiently), (ii) finite differencing (for replacing costly repeated calculations by less expensive incremental counterparts), (iii) data structure selection (for simulating associative access on a RAM in real time), and (iv) 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 fivefold 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 fivefold 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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
F. Bancilhon: Naive evaluation of recursively defined relations. In On Knowledge-Base Management Systems, M. Brodie and J. Mylopoulos (Eds.). McGraw-Hill, 165–178, 1986.
R. Bayer: Query evaluation and recursion in deductive database system, Unpublished Manuscript, 1985.
B. Bloom: Ready simulation, bisimulation, and the semantics of CCS-like languages. Ph.D. thesis, Massachusetts Institute of Technology, Sept. 1989.
B. Bloom and R. Paige: Transformational design and implementation of a new efficient solution to the ready simulation problem. Science of Computer Programming, 24(3), 189–220, 1995. http://cs.nyu.edu/cs/faculty/paige/papers/readysc.ps.
P. Borras, D. Clement, T. Despeyroux, J. Incerpi, G. Kahn, B. Lang, and V. Pascual: Centaur: the system. Rapports de Recherche 777, INRIA, 1987.
J. Cai: A language for semantic analysis. Technical Report 635, Courant Institute, New York University, 1993.
J. Cai, P. Facon, F. Henglein, R. Paige, and E. Schonberg: Type transformation and data structure choice. In Constructing Programs From Specifications, B. Möller, (Ed.). North-Holland, Amsterdam, 126–164, 1991.http://cs.nyu.edu/cs/faculty/paige/papers/subtype.ps.
J. Cai and R. Paige: Binding performance at language design time. In Proc. Fourteenth ACM Symp. on Principles of Programming Languages, 85–97 1987.
J. Cai and R. Paige: Program derivation by fixed-point computation. Science of Computer Programming, 11:3, 197–261, 1989.http://cs.nyu.edu/cs/faculty/paige/papers/fixpoint.ps.
J. Cai and R. Paige: Languages polynomial in the input plus output. In Algebraic Methodology and Software Technology, M. Nivat, C. Rattray, T. Rus, and G. Scollo, (Eds.,) Workshops in Computing, Springer-Verlag, Conference Record of the Second AMAST, 287–302, 1992.
J. Cai and R. Paige: Using multiset discrimination to solve language processing problems without hashing. Theoretical Computer Science, 145(1–2), 189–228, 1995. http://cs.nyu.edu/cs/faculty/paige/papers/hash.ps.
Cai J. and R. Paige: Towards increased productivity of algorithm implementation. In Proc. ACM SIGSOFT, 71–78, 1993. http://cs.nyu.edu/cs/faculty/paige/papers/prod.ps.
J. Cai, R. Paige, and R. Tarjan: More efficient bottom-up multi-pattern matching in trees. Theoretical Computer Science, 106(1), 21–60, 1992. http://cs.nyu.edu/pub/tech-reports/tr604.ps.Z.
A. Cantali: Using ETNA to prove correctenss and complexity of a linear time implementation of a subset of Willard’s RCS. Bachelor’s thesis, University of Catania, Catania, Italy, 1997.
C.-H. Chang and R. Paige: From regular expressions to DFA’s using compressed NFA’s. Theoretical Computer Science, 178(1–2), 1–36, 1997. http://cs.nyu.edu/cs/faculty/paige/papers/cnnfa.ps.
P. Cousot and R. Cousot: Constructive versions of Tarski’s fixed-point theorems. Pacific J. Math., 82(1), 43–57, 1979.
H. Curry: Modified basic functionality in combinatory logic. Dialectica, 23, 83–92, 1969.
V. Donzeau-Gouge, G. Huet, G. Kahn, and B. Lang: Programming environments based on structured editors: The mentor experience. In Interactive Programming Environments. McGraw-Hill, 1984.
W. Dowling and J. Gallier: Linear-time algorithms for testing the satisfiability of propositional Horn formulae. J. Logic Programming. 1(3), 267–284, 1984.
J. Earley: high-level iterators and a method for automatically designing data structure representation. J. of Computer Languages, 1(4), 1976, 321–342.
A. Fong and J. Ullman: Induction variables in very high-level languages. In Proc. 3rd ACM Symp. on Principles of Programming Languages, 104–112, Jan. 1976.
C. Forgy: RETE, a fast algorithm for the many patterns many objects match problem. Artificial Intelligence, 19(3), 17–37, 1982.
A. Goldberg and R. Paige: Stream processing. In Proceedings of the ACM Symposium on LISP and Functional Programming, ACM, 53–62, 1984.
D. Goyal and R. Paige: The formal reconstruction and improvement of the linear time fragment of Willard’s relational calculus subset. In Algorithmic Languages and Calculi. R. Bird and L. Meertens (Eds.) Chapman & Hall, 382–414, 1997. http://cs.nyu.edu/phd_students/deepak/lrcs.ps.
D. Goyal and R. Paige: A new solution to the hidden copy problem. In Proc. 5th International Static Analysis Symposium. G. Levi (Ed.) LNCS 1503, Springer, 327–348, Sept. 1998. http://cs.nyu.edu/phd_students/deepak/copy.ps.
R. Hindley: The principal type-scheme of an object in combinatory logic. Trans. Amer. Math. Soc., 146, 29–60, 1969.
N. Jones, C. Gomard, and P. Sestoft: Partial Evaluation and Automatic Program Generation. Prentice-Hall, 1993.
J. Keller and R. Paige: Program derivation with verified transformations—a case study. Comm. on Pure and Applied Mathematics, 48 (9–10), 1053–1113, 1996. http://cs.nyu.edu/cs/faculty/paige/papers/ltmjform.ps.
P. Klint: The ASF+SDF meta-environment user’s guide, Version 26. Technical report, Centrum voor Wiskunde en Informatica, 1993.
D. Knuth: The Art of Computer Programming. Vol. 3, Addison-Wesley, 1968–1972.
S. Koenig and R. Paige: A transformational framework for the automatic control of derived data. In Proc. 7th Intl. Conf. on VLDB, 306–318, Sept. 1981.
J. Launchbury and C. K. Holst: Handwriting cogen to avoid problems with static typing. In Draft Proceedings, Fourth Annual Glasgow Workshop on Functional Programming. C.K.H.R. Heldal and P. Wadler (Eds.) Workshops in Computing, Skye, Scotland, Springer-Verlag, 210–218, 1991.
Y. Liu: Principled strength reduction. In Algorithmic Languages and Calculi. R. Bird and L. Meertens (Eds.) Chapman & Hall, 357–381, 1997.
R. Paige: Formal Differentiation. UMI Research Press, 1981.
R. Paige: Programming with invariants. J IEEE Software, 3(1), 56–69, 1986.
R. Paige: Real-time simulation of a set machine on a RAM. In Computing and Information. N. Janicki and W. Koczkodaj (Eds.). Vol. II of ICCI 89, Canadian Scholars’ Press, Toronto, 69–73, May 1989. http://cs.nyu.edu/cs/faculty/paige/papers/realtime.ps.
R. Paige: Viewing a program transformation system at work. In Programming Language Implementation and Logic, M. Hermenegildo and J. Penjam, (Eds.), LNCS 844, Springer-Verlag, Berlin, 5–24, Sept. 1994.http://cs.nyu.edu/cs/faculty/paige/papers/viewing.ps.
R. Paige and F. Henglein: Mechanical translation of set theoretic problem specifications into efficient RAM code-a case study. Journal of Symbolic Computation, 4(2), 207–232, 1987.
R. Paige, R. Tarjan, and R. Bonic: A linear time solution to the single function coarsest partition problem. Theoretical Computer Science, 40(1), 67–84, 1985.
R. Paige and Z. Yang: high-level reading and data structure compilation. In Proc. 24 th ACM Symp. on Principles of Programming Languages, 456–469, 1997. http://cs.nyu.edu/phd_students/zheyang/papers/read.ps.
Refine user’s guide version 3.0, 1990.
J. Reif and H. Lewis: Symbolic evaluation and the global value graph. In Proc. 4 th Annual ACM Symp. on Principles of Programming Languages, 104–118, 1997.
T. Reps and T. Teitelbaum: The Synthesizer Generator: A System for Constructing Language-Based Editors. Springer-Verlag, New York, 1989.
T. Reps, T. Teitelbaum, and A. Demers: Incremental context-dependent analysis for language-based editors. ACM TOPLAS, 5(3), 449–477, 1983.
J. Schwartz: Automatic data structure choice in a language of very high-level. CACM, 18(12), 722–728, 1975.
J. Schwartz: Optimization of very high-level languages, Parts I, II. J. of Computer Languages, 1(2–3), 161–218, 1975.
J. Schwartz, Dewar, R., Dubinsky, E., and Schonberg, E.: Programming with Sets: An Introduction to SETL. Springer-Verlag, New York, 1986.
D. Smith: Kids—a semi-automatic program development system. IEEE Transactions on Software Engineering, 129–136, 1990.
K. Snyder: The SETL2 programming language. Technical Report 490, Courant Insititute, New York University, 1990.
A. Tarski: A lattice-theoretical fixpoint theorem and its application. Pacific J. of Mathematics, 5, 285–309, 1955.
J. Ullman: Principles of Database and Knowledge-Base Systems. Computer Science Press, 1988.
E. van der Meulen: Incremental Rewriting. Ph.D. thesis, CWI, Amsterdam, The Netherlands, 1994.
D. E. Willard: Predicate Retrieval Theory. Tech. Report 83-3, SUNY Albany, USA, 1983.
D. E. Willard: Quasi-linear algorithms for processing relational data base expressions. In Proceedings of the 9 th ACM Sigact-Sigmod-Sigart Symposium on Principles of Database Systems, 243–257, 1990.
D. E. Willard: Applications of range query theory to relational data base join and selection operations. J. Computer and System Sci., 52, 157–169, 1996.
Z. Yang: Encoding types in ML-like languages. In P. Hudak and C. Queinnec, eds., Proceedings of the 1998 ACM SIGPLAN International Conference on Functional Programming (Eds.), Baltimore, Maryland, USA, ACM Press, 289–300, 1998.
Z. Yang: A native ML implementation of type-directed partial evaluation. In Proceedings of the 1998 APPSEM Workshop on Normalization by Evaluation, NBE ’98. O. Danvy and P. Dybjer, (Eds.) . Göteborg, Sweden, May 8–9, 1998 , NS-98-1 in BRICS Notes Series, BRICS, Department of Computer Science, University of Aarhus, May 1998.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer
About this chapter
Cite this chapter
Paige, R. (2008). A National Science Foundation Proposal. In: Danvy, O., Mairson, H., Henglein, F., Pettorossi, A. (eds) Automatic Program Development. Springer, Dordrecht. https://doi.org/10.1007/978-1-4020-6585-9_2
Download citation
DOI: https://doi.org/10.1007/978-1-4020-6585-9_2
Publisher Name: Springer, Dordrecht
Print ISBN: 978-1-4020-6584-2
Online ISBN: 978-1-4020-6585-9
eBook Packages: Computer ScienceComputer Science (R0)