TY - GEN
T1 - Smartest recompilation
AU - Shao, Zhong
AU - Appel, Andrew W.
PY - 1993
Y1 - 1993
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=0027306954&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0027306954&partnerID=8YFLogxK
U2 - 10.1145/158511.158702
DO - 10.1145/158511.158702
M3 - Conference contribution
AN - SCOPUS:0027306954
SN - 0897915607
SN - 9780897915601
T3 - Conference Record of the Annual ACM Symposium on Principles of Programming Languages
SP - 439
EP - 450
BT - Conference Record of the Annual ACM Symposium on Principles of Programming Languages
PB - Publ by ACM
T2 - 20th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Y2 - 10 January 1993 through 13 January 1993
ER -