Choice in Dynamic Linking

  • Martín Abadi
  • Georges Gonthier
  • Benjamin Werner
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2987)


We introduce a computational interpretation for Hilbert’s choice operator (ε). This interpretation yields a typed foundation for dynamic linking in software systems. The use of choice leads to interesting difficulties—some known from proof theory and others specific to the programming-language perspective that we develop. We therefore emphasize an important special case, restricting the nesting of choices. We define and investigate operational semantics. Interestingly, computation does not preserve types but it is type-sound.


  1. 1.
    Avigad, J., Zach, R.: The epsilon calculus. In the Stanford Encyclopedia of Philosophy, version of May 3 (2002) on the web at,,
  2. 2.
    Cardelli, L.: Program fragments, linking, and modularization. In: Conference Record of POPL 1997: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January15–17 pp. 266–277 (1997)Google Scholar
  3. 3.
    Cardelli, L.: Type systems. In: Tucker, A.B. (ed.) The Computer Science and Engineering Handbook, ch. 103, pp. 2208–2236. CRC Press, Boca Raton (1997)Google Scholar
  4. 4.
    Cardelli, L., Leroy, X.: Abstract types and the dot notation. In: Proceedings of the IFIP TC2 Working Conference on Programming Concepts and Methods, North Holland, pp. 479–504 (1990)Google Scholar
  5. 5.
    Dean, D.: The security of static typing with dynamic linking. In: Proceedings of the Fourth ACM Conference on Computer and Communications Security, pp. 18–27 (1997)Google Scholar
  6. 6.
    Drossopoulou, S., Eisenbach, S., Wragg, D.: A fragment calculus— towards a model of separate compilation, linking and binary compatibility. In: Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science, pp. 147–156 (1999)Google Scholar
  7. 7.
    Drossopoulou, S., Lagorio, G., Eisenbach, S.: Flexible models for dynamic linking. In: Degano, P. (ed.) ESOP 2003. LNCS, vol. 2618, pp. 38–53. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  8. 8.
    Flannagan, T.B.: On an extension of Hilbert’s second ε-theorem. Journal of Symbolic Logic 40(3), 393–397 (1975)MATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Girard, J.-Y.: Interprétation Fonctionnelle et Elimination des Coupures de l’Arithmétique d’Ordre Supérieur. Thèse de doctorat d’état, Université Paris VII (June 1972)Google Scholar
  10. 10.
    Glew, N., Morrisett, G.: Type safe linking and modular assembly language. In: Conference Record of POPL 1999: 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 250–261 (January 1999)Google Scholar
  11. 11.
    Harper, R., Mitchell, J.C.: Parametricity and variants of Girard’s J operator. Information Processing Letters 70(1), 1–5 (1999)MATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    Hicks, M., Weirich, S., Crary, K.: Safe and flexible dynamic linking of native code. In: Harper, R. (ed.) TIC 2000. LNCS, vol. 2071, Springer, Heidelberg (2001)CrossRefGoogle Scholar
  13. 13.
    Krivine, J.-L.: Two talks about specifications and objects. Lectures at TYPES Spring School (March 2002)Google Scholar
  14. 14.
    Leisenring, C.: Mathematical Logic and Hilbert’s ε-Symbol. Gordon and Breach Science Publishers, New York (1969)Google Scholar
  15. 15.
    Leivant, D.: Existential instantiation in a system of natural deduction for intuitionistic arithmetics. Technical report, Stichting Mathematisch Centrum. Note ZW 13/73Google Scholar
  16. 16.
    Mints, G.: Heyting predicate calculus with epsilon-symbol. Journal of Soviet Mathematics 8, 317–323 (1977); Preprint provided by the author with an indication that the paper appeared in Selected Papers in Proof TheoryGoogle Scholar
  17. 17.
    Mints, G.: Strong termination for the epsilon substitution method. Journal of Symbolic Logic 61(4), 1193–1205 (1996)MATHCrossRefMathSciNetGoogle Scholar
  18. 18.
    Mints, G.: Private communication (2000)Google Scholar
  19. 19.
    Mitchell, J.C., Plotkin, G.D.: Abstract types have existential type. In: Proceedings of the Twelfth Annual ACM Symposium on Principles of Programming Languages, pp. 37–51 (1985)Google Scholar
  20. 20.
    Nelson, G. (ed.): Systems Programming in Modula-3. Prentice Hall, Englewood Cliffs (1991)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Martín Abadi
    • 1
  • Georges Gonthier
    • 2
  • Benjamin Werner
    • 3
  1. 1.University of California at Santa Cruz 
  2. 2.Microsoft Research 
  3. 3.INRIA – Futurs and LIX, Projet LogiCal, Pôle Commun de Recherche en Informatique du Plateau de Saclay, INRIA, CNRS, E. Polytechnique et U. Paris-Sud 

Personalised recommendations