| Zhong Shao and Andrew W. Appel. Smartest Recompilation. In Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles Of Programming Languages (POPL'93), pages 439--450, Charleston, SC, USA, 1993. |
....schemes we have de ned before) Even though the type de nition has a polymorphic let construct, it does not use type schemes, only simple types. This is owing to the use of assumption environments. The type de nition is essentially the same as that is presented by Zhong Shao and Andrew W. Appel [52]. Bernstein and Stark proved the relation of the type de nition under type environment and type de nition under assumption environment. The type inference can give the possible types for an unbound program variable. The user replaces a suspect expression within the program with a free variable. ....
....bias of the W and M algorithms so that more error sites can be found and the error reports can be more comprehensive. The left to right bias is not completely removed, because polymorphically typed variables are still treated like in the W and M algorithms. Zhong Shao and Andrew W. Appel [52] presents a type system which does not support principal typings and is still very closely related to the ML type system. The type system is used to de ne the minimum interface so that compilation units never need to be recompiled unless their implementation changes. In the type system [52] a ....
[Article contains additional citation context not shown here]
Zhong Shao and Andrew W. Appel. Smartest recompilation. In Twentieth Annual ACM Symposium on Principles of Programming Languages, pages 439-450. ACM Press, January 1993.
....be directly declared in Used or inherited from some ancestor of Used. Clearly, all these classes cannot be captured by a unique local type environment in our type system. In order to do that, we should introduce type variables in the type environments, analogously to the approach followed in [9]; so we could infer the following class interface for C: Type1; Type2 ; Sel(Used; g; Type2) CT = Parent; Type1 m(Type2) However, in this way the compiler cannot generate Java bytecode for C, since method descriptors cannot contain type variables; as a ....
.... cannot contain type variables; as a consequence, either JVM should be radically modi ed, or we should introduce a sort of pre bytecode that may contain type variables that must be instantiated during static inter checking in order to produce valid Java bytecode (indeed, the solution proposed in [9] relies on static linking; see also [8] Furthermore, it seems hard to de ne a system ensuring the existence of principal types. For these reasons, our prototype compiler will require users to explicitly annotate fragments with their interfaces; for instance, following a style common to many ....
Z. Shao and A.W. Appel. Smartest recompilation. In ACM Symp. on Principles of Programming Languages 1993, pages 439-450. ACM Press, 1993.
....to separate compilation as happens in our framework, simply because its validity requires the type environment extracted from the compilation environment to be well formed. Finally, several interesting papers can be found in literature on separate compilation for ML (see among many others [17, 16, 7]) All these papers clearly show that separate compilation in ML is not a simple issue, and for this reason, needs to be properly formalized. However, ML separate compilation is based on traditional static linking, therefore many problems arising in Java disappear in ML; for instance, the static ....
....show that separate compilation in ML is not a simple issue, and for this reason, needs to be properly formalized. However, ML separate compilation is based on traditional static linking, therefore many problems arising in Java disappear in ML; for instance, the static type checks proposed in [17] are sensible for a static linker, but cannot be performed at run time by a virtual machine without seriously compromising eciency. Furthermore, it seems that no unifying frameworks have been de ned for investigating ML separate compilation, and in fact, this would be useful to compare all the ....
[Article contains additional citation context not shown here]
Z. Shao and A.W. Appel. Smartest recompilation. In ACM Symp. on Principles of Programming Languages 1993, pages 439-450. ACM Press, 1993.
....example above shows, it is sometimes necessary to inspect the implementation of a structure to find the value of a type component. Not surprisingly, this means that it is impossible to provide true separate compilation for SML [2] Even the smartest recompilation scheme proposed by Shao and Appel [26] does not permit true separate compi lation because it delays some type checking, and hence the detection of some type errors, to link time. The need for type sharing constraints in functor definitions is nrotivated by similar problems. Formal parameters cannot be inspected at compile time ....
Z. Shao and A. Appel. Smartest recompilation. In Pro- ceedings Oth Symposium on Principles of Programming Languages. ACM, January 1993.
....that users are expected to build their programs linearly in strict bottom up order. This requirement can be alleviated by systematic use of functors, at the cost of extra declarations (sharing constraints) and late detection of inter compilation unit type clashes. Re cently, Shao and Appel [24] have proposed a more free form separate compilation mechanism for SML, which infers the required constraints, but delays all type checks between compilation units to the linking phase, which is much too late. Late detection of type errors increases the likeliness of programmers writing large ....
Z. Shao and A. Appel. Smartest recompilation. In 20th symposium Principles of Programming Languages, pages 439-450. ACM Press, 1993.
....of F on the component u, leaving its behavior on t unspecified. Higher order functors [43] are particularly important in connection with separate compilation. A separatelycompiled module may be represented by a variable whose signature is the full transparent signature of the module itself [42]. By abstracting the client module with respect to these variables we obtain a (possibly higher order) functor whose application models the process of linking the clients of the module with its actual implementation. The signature matching process ensures that the presumed signature of the ....
Zhong Shao and Andrew Appel. Smartest recompilation. In Twentieth ACM Symposium on Principles of Programming Languages, pages 439--450, Charleston, SC, January 1993.
....recusive de nitions is well typed. Soundness and principal typing theorems completely analogous to theorems 3 and 4 can also be proved to be valid for ML 0 extended with rules (FIX 0 ) and (LETREC 0 ) and T o extended with rules (FIX o ) and (LETREC o ) 6 Related Work Shao and Appel [SA93] presented a smartest recompilation system for Standard ML that is also based on Damas s algorithm T. They do not address the problem of type inference for mutually recursive de nitions, nor the problem of separate compilation of mutually recursive modules. Aditya and Nikihil [AR91] used a similar ....
Zhong Shao and Andrew W. Appel. Smartest recompilation. In 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 439-450, 1993.
....provided by the programmer, for those program units on which the program unit depends, support cut off (or true) separate compilation; that is, such frameworks allow a program unit to be compiled before the program units on which it depends have been compiled. Shao and Appel describe in [SA93] how smartest recompilation may be implemented: A program unit never needs to be recompiled unless its own implementation changes. Smartest recompilation employs type inference to infer types for undeclared identifiers of a program unit. Because some type inference is deferred till link time, ....
....on the underlying operating system. The Definition of Standard ML [MTHM97] defines a program to be a sequence of top level declarations and thus does not provide any solution to how programs are organised on the underlying operation system. 2 As discussed in Section 1. 2, smartest recompilation [SA93] builds up assumptions for free identifiers in a program unit from each of the free occurrences of an identifier, thus, 97 98 CHAPTER 6. CUT OFF INCREMENTAL RECOMPILATION ated by the compiler when program units are compiled or provided by the programmer. Systems that allow the programmer to ....
Zhong Shao and Andrew Appel. Smartest recompilation. In 20th ACM Symposium on Principles of Programming Languages, January 1993.
.... provable in To (FIX o ) LETREC o ) then ( p ; p ) is the principal typing solution for typing problem (e; 0 ) in ML 0 (FIX 0 ) LETREC 0 ) where close( p ; p ; tv u ( p ) otherwise, e; 0 ) has no solution in ML 0 (FIX 0 ) LETREC 0 ) 6 Related Work Shao and Appel [SA93] presented a smartest recompilation system for Standard ML that is also based on Damas s algorithm T. They do not address the problem of type inference for mutually recursive de nitions, nor the problem of separate compilation of mutually recursive modules, since top level declarations in the ....
Zhong Shao and Andrew W. Appel. Smartest recompilation. In 20th ACM POPL, pages 439-450. ACM Press, 1993.
....the minority is a candidate for the mistake. But for many errors there is one correct usage and one incorrect usage and it is not clear how often the minority can be isolated, and sometimes the minority usage may be the correct type. 3. Bernstein and Stark give an method of debugging type errors [3, 8]. This provides a method for diagnosing type errors where the user can probe the internal type information which the ordinary inference algorithm hides. This is done manually. Sometimes it is difficult to make out the connections between each use of subexpressions. We aim to find a method that may ....
Zhong Shao and Andrew W. Appel. Smartest recompilation. In Twentieth Annual ACM Symposium on Principles of Programming Languages, pages 439--450. ACM Press, January 93.
....recusive de nitions is well typed. Soundness and principal typing theorems completely analogous to Theorems 2 and 3 can also be proved to be valid for ML 0 extended with rules (FIX 0 ) and (LETREC 0 ) and T o extended with rules (FIX o ) and (LETREC o ) 6 Related Work Shao and Appel [SA93] presented a smartest recompilation system for Standard ML that is also based on Damas s algorithm T. They do not address the problem of type inference for mutually recursive de nitions, nor the problem of separate compilation of mutually recursive modules. Aditya and Nikihil [AR91] used a similar ....
Zhong Shao and Andrew W. Appel. Smartest recompilation. In 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 439-450, 1993.
....Agency or the U.S. Government. 136 implementation, of another source. This is true of C, for example. However, Standard ML is unusual in that a source may depend on the implementation of another, rendering truly independent compilation impossible to achieve without penalty (Shao and Appel [13] sketch an approach based on link time type checking and link time search to resolve identifier references. MacQueen argues cogently for this language design choice [9, 10] However, recent work by Harper and Lillibridge [6] and Leroy [8] indicate that it is possible to eliminate implementation ....
Zhong Shao and Andrew Appel. Smartest recompilation. In Twentieth ACM Symposium on Principles of Programming Languages, pages 439--450, Charleston, SC, January 1993.
....example above shows, it is sometimes necessary to inspect the implementation of a structure to find the value of a type component. Not surprisingly, this means that it is impossible to provide true separate compilation for SML [2] Even the smartest recompilation scheme proposed by Shao and Appel [26] does not permit true separate compilation because it delays some type checking, and hence the detection of some type errors, to link time. The need for type sharing constraints in functor definitions is motivated by similar problems. Formal parameters cannot be inspected at compile time because ....
Z. Shao and A. Appel. Smartest recompilation. In Proceedings 20th Symposium on Principles of Programming Languages. ACM, January 1993.
....referenced in each module. In P 2 , our ability to perform type inference on program fragments with free variables means that the user need not write these specifications: the compiler can infer them itself. More significantly, principal typings will enable us to achieve smartest recompilation [27], which guarantees that a module need not be recompiled unless its own definition changes. We also show that principal typings enable an elegant and efficient solution to a related problem, incremental type inference [1] Error messages. Most compilers for strongly typed languages do not do a ....
....M : That is, Compile(B M : oe) Link(C; Compile(A M : where Link produces machine code that implements the coercions specified by C. Using this strategy, a module need not be recompiled unless its definition changes. This property was dubbed smartest recompilation by Shao and Appel [27]. They achieved smartest recompilation for ML by relating ML to a restriction of P 2 with principal typings. Shao and Appel identified the following problem with smartest recompilation. If a module references many free variables, e.g. functions from the standard library, then the type ....
[Article contains additional citation context not shown here]
Zhong Shao and Andrew W. Appel. Smartest recompilation. In Conference Record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 439--450, 1993.
....More recently there has been progress on treatments of build optimizations that are mathematically rigorous and, indeed, able to support proofs of completeness. For instance, it was quickly recognized that Tichy s analysis in [25] could be strengthened [21] but Shao and Appel were able to claim [22] that their algorithm produced an optimal point in this space for the SML programming language. On the other hand Abadi, L evy, and Lampson [1] are able to prove a completeness theorem for a class of semantics independent caching optimizations for the lambda calculus, on which the Vesta [12] SCM ....
....C programs, so the example of Figure 8 should be taken with an appropriate grain of salt, but the basic idea applied to most programming languages. The idea has inspired several subsequent studies, including one on smarter recompilation [21] for C programs and smartest recompilation for SML [22]. Another common C programming issue concerns dependencies on library archives. Consider the p net in Figure 9. Library archives like the file gen.a in (libfile1.c) libfile2.c) cc c] cc c] libfile2.o) libfile1.o) my.c) your.c) ar r] gen.a) my.o) your.o) cc c] cc c] ....
Zhong Shao and Andrew W. Appel. Smartest recompilation. In Susan L. Graham, editor, Conference Record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 439--450. ACM, 1993.
....error source. The usage that is in the minority is a candidate for the mistake. But for many errors there is one correct usage and one incorrect usage and it is not clear how often the minority can be isolated, and sometimes the minority usage may be the correct type. Debugging type errors see [8] and [5] This provides a method for diagnosing type errors where the user can probe the internal type information which the ordinary inference algorithm hides. This is done manually. Sometimes it is di cult to make out the connections between each use of subexpressions. Explaining type errors by ....
Zhong Shao and Andrew Appel. Smartest recompilation. In Twentieth Annual ACM Symposium on Principles of Programming Languages, pp 439 - 450, ACM Press, January 1993.
....environment. With this type system the expression in the previous example has the following principal typing: f : fff fi; int fi 0 g; g: fff fl; bool fl 0 g] fn a ) f a; f 1) g a; g true) fi fi 0 ) fl fl 0 ) This same solution was also used by Shao and Appel [SA93] in order to define the minimum interface so that compilation units never need to be recompiled unless their implementation changes. A major difference between their work and ours is that they are interested in a compiler interface and we are interested in a user interface. In their work it is ....
....with our proposed programming environment. In Section 3, we give a type definition with assumption environments and prove that the type definition is very closely related to the Standard ML type definition. We also present a version of the type inference algorithm presented by Shao and Appel [SA93] and sketch a simple direct proof of the correctness of the algorithm which shows that the algorithm computes principal typings for our type definition. A complete proof can be found in the appendix. We feel that our proof has the advantage of being simpler and more straightforward 3 that the ....
[Article contains additional citation context not shown here]
Zhong Shao and Andrew Appel. Smartest recompilation. In Twentieth Annual ACM Symposium on Principles of Programming Languages. Association for Computing Machinery, ACM Press, January 1993.
....than C programs, so the example of Figure 9 should be taken with an appropriate grain of salt, but the basic idea is fairly language independent. The idea has inspired several subsequent studies, including one on smarter recompilation [25] for C programs and smartest recompilation for SML [26]. 2 The method for calculating fingerprints used in CM is based on Rabin s CRC polynomials; see [5] for an exposition. Another common C programming issue concerns dependencies on library archives. Consider the p net in Figure 10. Library archives like the file gen.a (libfile1.c) libfile2.c) ....
Zhong Shao and Andrew W. Appel. Smartest recompilation. In Susan L. Graham, editor, Conference Record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 439--450. ACM, 1993.
....than C programs, so the example of Figure 9 should be taken with an appropriate grain of salt, but the basic idea is fairly language independent. The idea has inspired several subsequent studies, including one on smarter recompilation [13] for C programs and smartest recompilation for SML [14]. 4 P Net Models and Abstractions To really represent the kinds of issues described in the previous section, it is essential to provide a model for a production net that describes the kinds of entities involved in a build over the net and the relations they are expected to satisfy. By way of ....
Zhong Shao and Andrew W. Appel. Smartest recompilation. In Susan L. Graham, editor, Conference Record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 439--450. ACM, 1993.
....referenced in each module. In P 2 , our ability to perform type inference on program fragments with free variables means that the user need not write these specifications: the compiler can infer them itself. More significantly, principal typings will enable us to achieve smartest recompilation [18], which guarantees that a module need not be recompiled unless its own definition changes. We also show that principal typings enable an elegant and efficient solution to a related problem, incremental type inference [1] Error messages. Most compilers for strongly typed languages do not do a ....
.... . That is, Compile(B M : oe) Link(C; Compile(A M : where Link produces machine code that implements the coercions specified by C. Using this strategy, a module need not be recompiled unless its definition changes. This property was dubbed smartest recompilation by Shao and Appel [18]. They achieved smartest recompilation for ML by relating ML to a restriction of P 2 with principal typings. Shao and Appel identified the following problem with smartest recompilation. If a module references many free variables, e.g. functions from the standard library, then the type environment ....
[Article contains additional citation context not shown here]
Zhong Shao and Andrew Appel. Smartest recompilation. In Conference Record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 439--450, 1993.
....datatype. Similar problems arise with functors. All is known about the parameter of a functor is its syntactic signature. Hence, a naive analysis would assume annotation on all components of the functor argument. For better precision, one could use techniques based on conjunctive types such as [24]. Other issues with functors are still unclear, such as the generativity of exception declaration in functor bodies, and the impact of the iexception polymorphismj 3 This might cause performance problems in conjunction with OCaml objects, which relies intensively on type abbreviations to make ....
Zhong Shao and Andrew Appel. Smartest recompilation. In 20th symposium Principles of Programming Languages, pages 439450. ACM Press, 1993.
....than C programs, so the example of Figure 10 should be taken with an appropriate grain of salt, but the basic idea is fairly language independent. The idea has inspired several subsequent studies, including one on smarter recompilation [12] for C programs and smartest recompilation for SML [13]. 4 P Net Models and Abstractions To really represent the kinds of issues described in the previous section, it is essential to provide a model for a production net that describes the kinds of entities involved in a build over the net and the relations they are expected to satisfy. By way of ....
Zhong Shao and Andrew W. Appel. Smartest recompilation. In Susan L. Graham, editor, Conference Record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 439--450. ACM, 1993.
....the M1 again. If one of the modules M1 is altered in a way that does not affect its exported interface and recompiled, cutoff recompilation [21] we use Adams s terminology [1] allows the previously compiled Mi (dependent on Mj) to be used without recompilation. Finally, smartest recompilation[23] allows Mi to be compiled even without the examination of Mj (or any of the Hi ) the linker must then be made smarter so that it can verify hypotheses about Hj and Mj made during the compilation of Mi. But smartest recompilation has not yet been demonstrated feasible for higher order functors. ....
Zhong Shao and Andrew W. Appel. Smartest recompilation. In Proc. Twentieth Annual ACM SIGPLANSIGACT Syrup. on Principles of Programming Languages, pages 439-450. ACM Press, 1993.
....Then, at link time the module can be type checked, since the types of free identifiers then become known. Since code generation is much more expensive than type checking, we might gain significant benefit from this approach. The algorithms for in vacuo separate compilation have been worked out [38], and are now being implemented. A more mundane advantage of the separation of static and dynamic semantics is that a simple, untyped intermediate representation can be used; and the translation of ML into this intermediate representation need not pay attention to types. This somewhat simplifies ....
Zhong Shao and Andrew W. Appel. Smartest recompilation. In Proc. Twentieth Annual ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, page to appear. ACM Press, 1993.
No context found.
Zhong Shao and Andrew W. Appel. Smartest Recompilation. In Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles Of Programming Languages (POPL'93), pages 439--450, Charleston, SC, USA, 1993.
No context found.
Zhong Shao and Andrew W. Appel. Smartest Recompilation. In Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles Of Programming Languages (POPL'93), pages 439--450, Charleston, South Carolina, USA, 1993.
No context found.
Zhong Shao and Andrew W. Appel. Smartest Recompilation. In Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles Of Programming Languages (POPL'93), pages 439--450, Charleston, SC, USA, 1993.
No context found.
Z. Shao and A. W. Appel. Smartest recompilation. In POPL'93, pages 439--450. ACM, 1993.
No context found.
Z. Shao and A.W. Appel. Smartest recompilation. In ACM Symp. on Principles of Programming Languages 1993, pages 439-450. ACM Press, 1993.
No context found.
SHAO,Z.AND APPEL, A. W. 1993. Smartest recompilation. In POPL'93. ACM, 439--450.
No context found.
Z. Shao and A.W. Appel. Smartest recompilation. In ACM Symp. on Principles of Programming Languages 1993.
No context found.
Z. Shao and A.W. Appel. Smartest recompilation. In ACM Symp. on Principles of Programming Languages 1993.
No context found.
Z. Shao and A.W. Appel. Smartest recompilation. In ACM Symp. on Principles of Programming Languages 1993.
No context found.
Z. Shao and A.W. Appel. Smartest recompilation. In ACM Symp. on Principles of Programming Languages 1993, pages 439--450. ACM Press, 1993.
No context found.
Z. Shao and A. Appel. Smartest recompilation. In ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages POPL'93, pages 439-450, Charleston, South Carolina, 1993. ACM.
No context found.
Z. Shao and A.W. Appel. Smartest recompilation. In ACM Symp. on Principles of Programming Languages 1993, pages 439--450. ACM Press, 1993.
No context found.
Z. Shao and A.W. Appel. Smartest recompilation. In ACM Symp. on Principles of Programming Languages 1993, pages 439--450. ACM Press, 1993.
No context found.
Z. Shao, A. Appel. Smartest recompilation. In Conf. Rec. 20th Ann. ACM Symp. Princ. of Prog. Langs., 1993.
No context found.
Z. Shao and A.W. Appel. Smartest recompilation. In ACM Symp. on Principles of Programming Languages 1993.
No context found.
Z. Shao and A.W. Appel. Smartest recompilation. In ACM Symp. on Principles of Programming Languages 1993.
No context found.
Z. Shao and A. W. Appel. Smartest recompilation. In POPL'93, pages 439--450. ACM, 1993.
No context found.
Z. Shao and A.W. Appel. Smartest recompilation. In ACM Symp. on Principles of Programming Languages 1993, pages 439--450. ACM Press, 1993.
No context found.
Zhong Shao and Andrew Appel. Smartest recompilation. In ACM Symposium on Principles of Programming Languages, number 20. ACM, ACM Press, January 1993.
No context found.
Z. Shao and A.W. Appel. Smartest recompilation. In ### ##### ## ########## ## ########### ######### ####, pages 439-450. ACM Press, 1993.
No context found.
Z. Shao and A.W. Appel. Smartest recompilation. In ACM Symp. on Principles of Programming Languages 1993, pages 439--450. ACM Press, 1993.
No context found.
Z. Shao and A. W. Appel. Smartest recompilation. In POPL'93, pages 439--450. ACM, 1993.
No context found.
Z. Shao and A. Appel. Smartest recompilation. In Conf. Rec. 20th Ann. ACM Symp. Princ. of Prog. Langs., 1993.
No context found.
Z. Shao, A. Appel. Smartest recompilation. In Conf. Rec. 20th Ann. ACM Symp. Princ. of Prog. Langs., 1993.
No context found.
Z. Shao and A. Appel. Smartest recompilation. In Conf. Rec. 20th Ann. ACM Symp. Princ. of Prog. Langs., 1993.
No context found.
Z Shao & AW Appel, "Smartest recompilation," in 20th ACM Symposium on Principles of Programming Languages, Charleston, ACM, Jan 1993, 439--450.
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC