|
ABSTRACT
We describe the design of a rule-based language for expressing changes to Haskell programs in a systematic and reliable way. The update language essentially offers update commands for all constructs of the object language (a subset of Haskell). The update language can be translated into a core calculus consisting of a small set of basic updates and update combinators. The key construct of the core calculus is a scope update mechanism that allows (and enforces) update specifications for the definition of a symbol together with all of its uses.The type of an update program is given by the possible type changes it can cause for an object programs. We have developed a type-change inference system to automatically infer type changes for updates. Updates for which a type change can be successfully inferred and that satisfy an additional structural condition can be shown to preserve type correctness of object programs.In this paper we define the Haskell Update Language HULA and give a translation into the core update calculus. We illustrate HULA and its translation into the core calculus by several examples.
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
|
ACM. Communications of the ACM, volume 44(10), October 2001.
|
| |
2
|
N. Bjørner. Type Checking Meta Programs. In Workshop on Logical Frameworks and Meta-Languages, 1999.
|
| |
3
|
B. Borovanský, C. Kirchner, H. Kirchner, P. E. Moreau, and C. Ringeissen. Rewriting with Strategies in ELAN: a Functional Semantics. Int. Journal of Foundations of Computer Science, 2001. To appear.
|
| |
4
|
B. Borovanský, C. Kirchner, H. Kirchner, P. E. Moreau, and M. Vittek. ELAN: A Logical Framework Based on Computational Systems. In Workshop on Rewriting Logic and Applications, 1996.
|
 |
5
|
P. Borras , D. Clement , Th. Despeyroux , J. Incerpi , G. Kahn , B. Lang , V. Pascual, Centaur: the system, Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments, p.14-24, November 28-30, 1988, Boston, Massachusetts, United States
|
| |
6
|
|
| |
7
|
|
| |
8
|
M. Erwig. Update your Program? Program Your Update! Technical Report TR02-60-01, Department of Computer Science, Oregon State University, 2002. http://www.cs.orst.edu/~erwig/papers/up.pdf.
|
| |
9
|
M. Erwig and D. Ren. An Update Calculus for Type-Safe Program Changes. 2002. submitted for publication. http://www.cs.orst.edu/~erwig/papers/uc.pdf.
|
| |
10
|
|
 |
11
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William Griswold, Getting started with ASPECTJ, Communications of the ACM, v.44 n.10, p.59-65, Oct. 2001
[doi> 10.1145/383845.383858]
|
| |
12
|
|
| |
13
|
|
| |
14
|
|
| |
15
|
S. L. Peyton Jones, J. Hughes, et al. Report on the Programming Language Haskell 98, 1999. http://haskell.org/onlinereport.
|
| |
16
|
|
 |
17
|
|
| |
18
|
|
| |
19
|
D. Roberts and J. Brant. Refactoring Tools. In M. Fowler, editor, Refactoring: Improving the Design of Existing Code, chapter 14, pages 309-352. Addison-Wesley, Reading, MA, 1999.
|
| |
20
|
|
| |
21
|
|
| |
22
|
|
| |
23
|
|
| |
24
|
E. Visser. Language Independent Traversals for Program Transformation. In Workshop on Generic Programming, 2000. Technical Report UU-CS-2000-19, Universiteit Utrecht.
|
| |
25
|
|
 |
26
|
Eelco Visser , Zine-el-Abidine Benaissa , Andrew Tolmach, Building program optimizers with rewriting strategies, Proceedings of the third ACM SIGPLAN international conference on Functional programming, p.13-26, September 26-29, 1998, Baltimore, Maryland, United States
|
| |
27
|
E. Visser, et al. The Online Survey of Program Transformation. http://www.program-transformation.org/survey.html.
|
| |
28
|
|
Peer to Peer - Readers of this Article have also read:
-
Data structures for quadtree approximation and compression
Communications of the ACM
28, 9
Hanan Samet
-
A hierarchical single-key-lock access control using the Chinese remainder theorem
Proceedings of the 1992 ACM/SIGAPP Symposium on Applied computing
Kim S. Lee
, Huizhu Lu
, D. D. Fisher
-
The GemStone object database management system
Communications of the ACM
34, 10
Paul Butterworth
, Allen Otis
, Jacob Stein
-
Putting innovation to work: adoption strategies for multimedia communication systems
Communications of the ACM
34, 12
Ellen Francik
, Susan Ehrlich Rudman
, Donna Cooper
, Stephen Levine
-
An intelligent component database for behavioral synthesis
Proceedings of the 27th ACM/IEEE conference on Design automation
Gwo-Dong Chen
, Daniel D. Gajski
|