|
ABSTRACT
Progressing beyond the productivity of present-day languages appears to require using domain-specific knowledge. Domain-specific languages and libraries (DSLs) proliferate, but most optimizations and language features have limited portability because each language's semantics are related closely to its domain. We explain how any DSL compiler can use a domain-independent AI planner to implement algorithm composition as a language feature. Our notion of composition addresses a common DSL problem: good library designers tend to minimize redundancy by including only fundamental procedures that users must chain together into call sequences. Novice users are confounded by not knowing an appropriate sequence to achieve their goal. Composition allows the programmer to define and call an abstract algorithm (AA) like a procedure. The compiler replaces an AA call with a sequence of library calls, while considering the calling context. Because AI planners compute a sequence of operations to reach a goal state, the compiler can implement composition by analyzing the calling context to provide the planner's initial state. Nevertheless, mapping composition onto planning is not straightforward because applying planning to software requires extensions to classical planning, and procedure specifications may be incomplete when expressed in a planning language. Compositions may not be provably correct, so our approach mitigates semantic incompleteness with unobtrusive programmer-compiler interaction. This tradeoff is key to making composition a practical and natural feature of otherwise imperative languages, whose users eschew complex logical specifications. Compositions satisfying an AA may not be equal in performance, memory usage, or precision and require selection of a preferred solution. We examine language design and implementation issues, and we perform a case study on the BioPerl bioinformatics library.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
Thomas Ball , Rupak Majumdar , Todd Millstein , Sriram K. Rajamani, Automatic predicate abstraction of C programs, Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation, p.203-213, June 2001, Snowbird, Utah, United States
|
| |
2
|
|
| |
3
|
|
| |
4
|
D. Batory. The Road to Utopia: A Future for Generative Programming. In C. Lengauer et al., editors, Domain-Specific Program Generation (Dagstuhl), pages 1--18, 2004.
|
| |
5
|
A. W. Biermann. Approaches to Automatic Programming. Advances in Computers, 15:1--63, 1976.
|
| |
6
|
J. Blythe et al. The Role of Planning in Grid Computing. In Proceedings of the International Conference on Automated Planning and Scheduling, June 2003.
|
| |
7
|
|
 |
8
|
|
| |
9
|
|
 |
10
|
|
| |
11
|
R. E. Fikes and N. J. Nilsson. STRIPS: A New Approach to the Application of Theorem Proving to Problem Solving. Artificial Intelligence, 2(3-4):189--208, 1971.
|
 |
12
|
|
| |
13
|
M. Ghallab et al. PDDL - the Planning Domain Definition Language, Version 1.2. Technical Report DCS TR-1165, Yale Center for Computational Vision and Control, 1998.
|
| |
14
|
|
| |
15
|
|
| |
16
|
K. Golden. A Domain Description Language for Data Processing. In Proceedings of the International Conference on Automated Planning and Scheduling, Workshop on the Future of PDDL, 2003.
|
| |
17
|
|
| |
18
|
M. Gribskov. President, International Society for Computational Biology; Professor of Biological Sciences and Computer Science, Purdue University. Personal communication, September 2005.
|
| |
19
|
|
| |
20
|
S. Z. Guyer and C. Lin. Broadway: A Compiler for Exploiting the Domain-Specific Semantics of Software Libraries. Proceedings of the IEEE, 93(2):342--357, February 2005
|
| |
21
|
|
 |
22
|
Elias N. Houstis , Ann C. Catlin , John R. Rice , Vassilios S. Verykios , Naren Ramakrishnan , Catherine E. Houstis, PYTHIA-II: a knowledge/database system for managing performance data and recommending scientific software, ACM Transactions on Mathematical Software (TOMS), v.26 n.2, p.227-253, June 2000
[doi> 10.1145/353474.353475]
|
| |
23
|
N. Jefferson and S. Riddle. Towards a Formal Semantics of a Composition Language. In Proceedings of the Workshop on Composition Languages at ECOOP, 2003.
|
| |
24
|
K. Kennedy et al. Telescoping Languages: A System for Automatic Generation of Domain Languages. Proceedings of the IEEE, 93(3):387--408, 2005.
|
| |
25
|
|
 |
26
|
|
 |
27
|
|
 |
28
|
|
 |
29
|
David Mandelin , Lin Xu , Rastislav Bodík , Doug Kimelman, Jungloid mining: helping to navigate the API jungle, Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, June 12-15, 2005, Chicago, IL, USA
|
| |
30
|
|
| |
31
|
|
 |
32
|
|
 |
33
|
|
| |
34
|
R. Metzger and Z. Wen. Automatic Algorithm Recognition and Replacement. MIT Press, 2000.
|
| |
35
|
D. S. Nau, Y. Cao, A. Lotem, and H. Muñoz-Avila. The SHOP planning system. AI Magazine, Fall 2001.
|
 |
36
|
|
| |
37
|
E. P. D. Pednault. ADL and the State-Transition Model of Action. Journal of Logic and Computation, 4(5):467--512, 1994.
|
| |
38
|
|
| |
39
|
J. R. Rice. The Algorithm Selection Problem. Advances in Computers, 15:65--118, 1976.
|
| |
40
|
|
| |
41
|
|
 |
42
|
|
| |
43
|
J. M. Siskind and D. A. McAllester. Screamer: A Portable Efficient Implementation of Nondeterministic Common Lisp. Technical Report IRCS-93-03, Institute for Research in Cognitive Science, University of Pennsylvania, 1993.
|
| |
44
|
J. E. Stajich et al. The Bioperl Toolkit: Perl Modules for the Life Sciences. Genome Research, 12(10):1611--1618, October 2002.
|
| |
45
|
|
 |
46
|
Nathan Thomas , Gabriel Tanase , Olga Tkachyshyn , Jack Perdue , Nancy M. Amato , Lawrence Rauchwerger, A framework for adaptive algorithm selection in STAPL, Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, June 15-17, 2005, Chicago, IL, USA
[doi> 10.1145/1065944.1065981]
|
| |
47
|
|
 |
48
|
|
| |
49
|
D. S. Weld. Recent Advances in AI Planning. AI Magazine, pages 93--123, Summer 1999.
|
| |
50
|
|
| |
51
|
|
 |
52
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.1
PROGRAMMING TECHNIQUES
D.1.2
Automatic Programming
Additional Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
D.3.4
Processors
Subjects:
Compilers;
Optimization
I.
Computing Methodologies
I.2
ARTIFICIAL INTELLIGENCE
I.2.8
Problem Solving, Control Methods, and Search
Subjects:
Plan execution, formation, and generation
General Terms:
Algorithms,
Languages,
Performance
Keywords:
algorithm composition,
algorithm selection,
automated planning,
bioinformatics,
domain-specific languages
|