## A calculus for link-time compilation (2000)

### Cached

### Download Links

Citations: | 21 - 4 self |

### BibTeX

@TECHREPORT{Machkasova00acalculus,

author = {Elena Machkasova and Franklyn A. Turbak},

title = {A calculus for link-time compilation},

institution = {},

year = {2000}

}

### Years of Citing Articles

### OpenURL

### Abstract

Abstract. We present a module calculus for studying a simple model of link-time compilation. The calculus is stratified into a term calculus, a core module calculus, and a linking calculus. At each level, we show that the calculus enjoys a computational soundness property: iftwo terms are equivalent in the calculus, then they have the same outcome in a smallstep operational semantics. This implies that any module transformation justified by the calculus is meaning preserving. This result is interesting because recursive module bindings thwart confluence at two levels ofour calculus, and prohibit application ofthe traditional technique for showing computational soundness, which requires confluence. We introduce a new technique, based on properties we call lift and project, thatusesa weaker notion of confluence with respect to evaluation to establish computational soundness for our module calculus. We also introduce the weak distributivity property for a transformation T operating on modules D1 and D2 linked by ⊕: T (D1 ⊕ D2) =T (T (D1) ⊕ T (D2)). We argue that this property finds promising candidates for link-time optimizations. 1

### Citations

271 | A type-theoretic approach to higherorder modules with sharing
- Harper, Lillibridge
- 1994
(Show Context)
Citation Context ...enewed interest in linking issues that was inspired by Cardelli’s call to arms [Car97]. Recent work on module systems and linking has focused on such issues as: sophisticated type systems for modules =-=[HL94,Ler94]-=-; the expressiveness of modules systems (e.g., handling features like recursive modules [FF98,CHP97,AZ99], inheritance and mixins [DS96,AZ99] and dynamic linking [FF98,WV99]); binary compatibility in ... |

268 | A revised report on the syntactic theories of sequential control and state, Theoretical Computer Science 103
- Felleisen, Hieb
- 1992
(Show Context)
Citation Context ...radition of using untyped calculi for reasoning about programming languages features: e.g., call-by-name vs. call-by-value semantics [Plo75], call-by-need semantics [AFM + 95,AF97], state and control =-=[FH92]-=-, and sharing and cycles [AK97,AB97]. Our notion of confluence with respect to evaluation avoids cyclic substitutions in the operational semantics, and so is related to the acyclic substitution restri... |

225 | Manifest types, modules, and separate compilation - Leroy - 1994 |

193 | Units: Cool modules for HOT languages
- Flatt, Felleisen
- 1998
(Show Context)
Citation Context ...med to fresh hidden labels before the modules are linked to avoid collisions. The renaming performed by ⊕ is is similar to the α-renaming required in other module calculi linking operations (e.g., in =-=[FF98]-=- when rewriting the compound linking form to the unit module form). The definition of →F lifts core module reduction steps to the module expression level and adds evaluation rules for the link-level o... |

192 | A call-byneed lambda calculus - Ariola, Felleisen, et al. - 1995 |

178 |
Call-by-name, call-by-value, and the lambda-calculus. Theoret
- Plotkin
- 1975
(Show Context)
Citation Context ...es of meaning preserving transformations. Our work follows a long tradition of using untyped calculi for reasoning about programming languages features: e.g., call-by-name vs. call-by-value semantics =-=[Plo75]-=-, call-by-need semantics [AFM + 95,AF97], state and control [FH92], and sharing and cycles [AK97,AB97]. Our notion of confluence with respect to evaluation avoids cyclic substitutions in the operation... |

164 |
The Lambda Calculus, its Syntax and Semantics. North-Holland, 2nd edition
- Barendregt
- 1984
(Show Context)
Citation Context ... proving standardization using the lift property (rather than directly): proofs of both the lift and project properties use the same mechanism (certain properties of residuals and finite developments =-=[Bar84]-=-) and share several intermediate results. The following theorem embodies our new approach to proving soundness: Theorem 2. Suppose that ⇒ is confluent. Then lift, project, and class preservation imply... |

146 | Program fragments, linking, and modularization
- Cardelli
- 1997
(Show Context)
Citation Context ... semantics, and so is related to the acyclic substitution restriction of Ariola and Klop [AK97]. This work is part of a renewed interest in linking issues that was inspired by Cardelli’s call to arms =-=[Car97]-=-. Recent work on module systems and linking has focused on such issues as: sophisticated type systems for modules [HL94,Ler94]; the expressiveness of modules systems (e.g., handling features like recu... |

112 | A calculus of module systems
- Ancona, Zucca
- 2002
(Show Context)
Citation Context ...ules [FF98,CHP97,AZ99], inheritance and mixins [DS96,AZ99] and dynamic linking [FF98,WV99]); binary compatibility in the context of program modifications [SA93,DEW99]; and modularizing module systems =-=[Ler96,AZ99]-=-. There has been relatively little focus on issues related to link-time optimization; exceptions are [Fer95] and recent work on just-in-time compilers (e.g, [PC97]). Our work stands out from other wor... |

94 | What are principal typings and what are they good for - Jim - 1998 |

90 | What is a recursive module - Crary, Harper, et al. - 1999 |

80 | Simple and effective link-time optimization of Modula-3 programs
- Fernandez
- 1995
(Show Context)
Citation Context ... in the context of program modifications [SA93,DEW99]; and modularizing module systems [Ler96,AZ99]. There has been relatively little focus on issues related to link-time optimization; exceptions are =-=[Fer95]-=- and recent work on just-in-time compilers (e.g, [PC97]). Our work stands out from other work on modules in two important respects. First, we partition the reduction relation of the calculus (→) into ... |

80 | A modular module system - Leroy |

61 | Smartest Recompilation - Shao, Appel - 1993 |

59 | Mixin modules - Duggan, Sourelis - 1996 |

55 | A Modular, Polyvariant and Type-based Closure Analysis - Banerjee - 1997 |

51 | Principality and decidable type inference for finiterank intersection types - Kfoury, Wells - 1999 |

43 | A fragment calculus - towards a model of separate compilation, linking and binary compatibility - Drossopoulou, Eisenbach, et al. |

38 | Cyclic lambda calculi - Ariola, Blom - 1997 |

38 | Lambda calculus with explicit recursion
- Ariola, Klop
- 1997
(Show Context)
Citation Context ...[AK97,AB97]. Our notion of confluence with respect to evaluation avoids cyclic substitutions in the operational semantics, and so is related to the acyclic substitution restriction of Ariola and Klop =-=[AK97]-=-. This work is part of a renewed interest in linking issues that was inspired by Cardelli’s call to arms [Car97]. Recent work on module systems and linking has focused on such issues as: sophisticated... |

35 | Does ¨just in time=̈ ¨better late than never
- Plezbert, Cytron
- 1997
(Show Context)
Citation Context ...nd modularizing module systems [Ler96,AZ99]. There has been relatively little focus on issues related to link-time optimization; exceptions are [Fer95] and recent work on just-in-time compilers (e.g, =-=[PC97]-=-). Our work stands out from other work on modules in two important respects. First, we partition the reduction relation of the calculus (→) into evaluation (sometimes called standard) steps (⇒) that d... |

22 | Does "just in time" = "better late than never - Plezbert, Cytron - 1997 |

17 | Confluent equational reasoning for linking with first-class primitive modules
- Wells, Vestergaard
- 2000
(Show Context)
Citation Context ...→ λx.(1 + 2)] to [F ↦→ λx.3] or [A ↦→ 4, F ↦→ λx.x + A] to [A ↦→ 4, F ↦→ λx.x + 4] are difficult to prove meaning preserving. Second, unlike most recent work on modules (with the notable exception of =-=[WV99]-=-), our work considers only an untyped module language. There are several reasons for this. First, types are orthogonal to our focus on computational soundness and weak distributivity; types would only... |

12 | Simple and eective link-time optimization of Modula-3 programs - Fernandez - 1995 |

1 | A fragment calculus – towards a model ofseparate compilation, linking, and binary compatibility - Dossopoulou, Eisenbach, et al. - 1999 |

1 |
Simple and effective link-time optimization ofModula-3 programs
- Fernandez
- 1995
(Show Context)
Citation Context ... in the context of program modifications [SA93,DEW99]; and modularizing module systems [Ler96,AZ99]. There has been relatively little focus on issues related to link-time optimization; exceptions are =-=[Fer95]-=- and recent work on just-in-time compilers (e.g, [PC97]). Our work stands out from other work on modules in two important respects. First, we partition the reduction relation of the calculus (→) intoe... |

1 | 96: 23rd ACM Symp. Princ. of Prog. Langs - POPL - 1996 |