|
ABSTRACT
To separately compile a program module in traditional statically-typed languages, one has to manually write down an import interface which explicitly specifies all the external symbols referenced in the module. Whenever the definitions of these external symbols are changed, the module has to be recompiled. In this paper, we present an algorithm which can automatically infer the “minimum” import interface for any module in languages based on the Damas-Milner type discipline (e.g., ML). By “minimum”, we mean that the interface specifies a set of assumptions (for external symbols) that are just enough to make the module type-check and compile. By compiling each module using its “minimum” import interface, we get a separate compilation method that can achieve the following optimal property: A compilation unit never needs to be recompiled unless its own implementation changes.
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
|
|
| |
2
|
William E. Aitken and John H. Reppy. Abstract value constructors. In A CM SIGPLAN Workshop on ML and its Applications, June 1992.
|
| |
3
|
Maria Virginia Aponte. Typage d'un systeme de modules parametriques avec partage: une application de t'unification dans Its theories equationneIIes. Phi) thesis, Universite de Paris, February 1992.
|
| |
4
|
Andrew W. Appel and David B. MacQueen. Standard ML of New Jersey. In Martin Wirsing, editor, Third Int'l Syrup. on Prog. Lang. Implementation and Logic Programming, pages 1-13, New York, August 1991. Springer-Verlag.
|
 |
5
|
|
| |
6
|
Luis Damas. Type Assignment in Programming Languages. PhD thesis, University of Edinburgh, Department of Computer Science, Edinburgh, UK, 1985.
|
 |
7
|
|
| |
8
|
David K. Gkfford et al. FX-87 reference manual. Teclmical Report MIT/LCS/TR-407, M.I.T. Laboratory for Computer Science~ September 1987.
|
| |
9
|
Stuart I. Feldman. Make - a program for maintaining computer prograans. Software - Practice and Experience, 9(4):255-265, Aplrl 1979.
|
| |
10
|
Emden l~. Gansner. AT&T Bell Labs, personal communication, 1992.
|
 |
11
|
Paul Hudak , Simon Peyton Jones , Philip Wadler , Brian Boutel , Jon Fairbairn , Joseph Fasel , María M. Guzmán , Kevin Hammond , John Hughes , Thomas Johnsson , Dick Kieburtz , Rishiyur Nikhil , Will Partain , John Peterson, Report on the programming language Haskell: a non-strict, purely functional language version 1.2, ACM SIGPLAN Notices, v.27 n.5, p.1-164, May 1992
[doi> 10.1145/130697.130699]
|
| |
12
|
|
 |
13
|
|
| |
14
|
Bill Kalsow and Eric Muller. SRC Modula-3 version 1.6 manual, February 1991.
|
 |
15
|
|
 |
16
|
|
 |
17
|
|
 |
18
|
|
| |
19
|
|
| |
20
|
Robin Milner, Mads Tofte, and Robert Harper. The Defini- 1990.
|
| |
21
|
J. Mitchell, W. Maybury, and R. Sweet. Mesa language manual. Technical Report CSL-79-3, Xerox Palo Alto Research Center, Palo Alto, CA, 1979.
|
| |
22
|
|
| |
23
|
Rishiyur S. Niklfil. Id version 90.0 reference manual. Technical Report TR-CSG-Memo 284-1, MIT Laboratory for Computer Science, 1990.
|
 |
24
|
|
 |
25
|
|
 |
26
|
|
| |
27
|
Eugene J. Rollins. SourceGroup: A selective recompilation system for SML. in Th2rd International Workshop on Standard ML, Pittsburgh, September 1991. Carnegie Mellon University.
|
| |
28
|
Nick Rothwell and Mads Tofte. import command source code. with Standard ML of New Jersey releases 0.65.
|
 |
29
|
|
| |
30
|
Zhong Shao and Andrew W. Appel. Smartest recompilation. Technical Report CS-TR-395-92, Princeton Univ. Dept. of Computer Science, Princeton, NJ, October 1992.
|
 |
31
|
|
| |
32
|
Mads Torte. Operational Semantics and PoIymorphic Type Inference. PhD thesis, University of Edinburgh, Edinburgh, UK, November 1987.
|
 |
33
|
|
CITED BY 23
|
|
|
|
|
Xavier Leroy, Manifest types, modules, and separate compilation, Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.109-122, January 16-19, 1994, Portland, Oregon, United States
|
|
|
Craig Chambers , Jeffrey Dean , David Grove, A framework for selective recompilation in the presence of complex intermodule dependencies, Proceedings of the 17th international conference on Software engineering, p.221-230, April 24-28, 1995, Seattle, Washington, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jacky Estublier , David Leblang , Geoff Clemm , Reidar Conradi , Walter Tichy , André van der Hoek , Darcy Wiborg-Weber, Impact of the research community on the field of software configuration management: summary of an impact project report, ACM SIGSOFT Software Engineering Notes, v.27 n.5, September 2002
|
|
|
|
|
|
D. Ancona , G. Lagorio , E. Zucca, True separate compilation of Java classes, Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming, p.189-200, October 06-08, 2002, Pittsburgh, PA, USA
|
|
|
|
|
|
|
|
|
|
|