Lecture Notes in Computer Science 1782 Edited by G. Goos, J. Hartmanis and J. van Leeuwen
3 Berlin Heidelberg New York Barcelona Hong Kong London Milan Paris Singapore Tokyo
Gert Smolka (Ed.) Programming Languages and Systems 9th European Symposium on Programming, ESOP 2000 Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2000 Berlin, Germany, March 25 April 2, 2000 Proceedings 13
Series Editors Gerhard Goos, Karlsruhe University, Germany Juris Hartmanis, Cornell University, NY, USA Jan van Leeuwen, Utrecht University, The Netherlands Volume Editor Gert Smolka University of Saarland Programming Systems Lab, Building 45, P. O. Box 15 11 50, 66041 Saarbrücken, Germany E-mail: smolka@ps.uni-sb.de Cataloging-in-Publication Data applied for Die Deutsche Bibliothek - CIP-Einheitsaufnahme Programming languages and systems : proceedings / 9th European Symposium on Programming, ESOP 2000, held as part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2000, Berlin, Germany, March 25 - April 2, 2000 / Gert Smolka (ed.). - Berlin ; Heidelberg ; New York ; Barcelona ; Hong Kong ; London ; Milan ; Paris ; Singapore ; Tokyo : Springer, 2000 (Lecture notes in computer science ; Vol. 1782) ISBN 3-540-67262-1 CR Subject Classification (1991): D.3, D.1-2, F.3, F.4, E.1 ISSN 0302-9743 ISBN 3-540-67262-1 Springer-Verlag Berlin Heidelberg New York This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, re-use of illustrations, recitation, broadcasting, reproduction on microfilms or in any other way, and storage in data banks. Duplication of this publication or parts thereof is permitted only under the provisions of the German Copyright Law of September 9, 1965, in its current version, and permission for use must always be obtained from Springer-Verlag. Violations are liable for prosecution under the German Copyright Law. Springer-Verlag is a company in the BertelsmannSpringer publishing group. Springer-Verlag Berlin Heidelberg 2000 Printed in Germany Typesetting: Camera-ready by author, data conversion by PTP-Berlin, Stefan Sossna Printed on acid-free paper SPIN 10719936 06/3142 543210
Foreword ETAPS 2000 was the third instance of the European Joint Conferences on Theory and Practice of Software. ETAPS is an annual federated conference that was established in 1998 by combining a number of existing and new conferences. This year it comprised five conferences (FOSSACS, FASE, ESOP, CC, TACAS), five satellite workshops (CBS, CMCS, CoFI, GRATRA, INT), seven invited lectures, a panel discussion, and ten tutorials. The events that comprise ETAPS address various aspects of the system development process, including specification, design, implementation, analysis, and improvement. The languages, methodologies, and tools which support these activities are all well within its scope. Different blends of theory and practice are represented, with an inclination towards theory with a practical motivation on one hand and soundly-based practice on the other. Many of the issues involved in software design apply to systems in general, including hardware systems, and the emphasis on software is not intended to be exclusive. ETAPS is a loose confederation in which each event retains its own identity, with a separate program committee and independent proceedings. Its format is open-ended, allowing it to grow and evolve as time goes by. Contributed talks and system demonstrations are in synchronized parallel sessions, with invited lectures in plenary sessions. Two of the invited lectures are reserved for unifying talks on topics of interest to the whole range of ETAPS attendees. The aim of cramming all this activity into a single one-week meeting is to create a strong magnet for academic and industrial researchers working on topics within its scope, giving them the opportunity to learn about research in related areas, and thereby to foster new and existing links between work in areas that were formerly addressed in separate meetings. The program of ETAPS 2000 included a public business meeting where participants had the opportunity to learn about the present and future organization of ETAPS and to express their opinions about what is bad, what is good, and what might be improved. ETAPS 2000 was hosted by the Technical University of Berlin and was efficiently organized by the following team: Bernd Mahr (General Chair) Hartmut Ehrig (Program Coordination) Peter Pepper (Organization) Stefan Jähnichen (Finances) Radu Popescu-Zeletin (Industrial Relations) with the assistance of BWO Marketing Service GmbH. The publicity was superbly handled by Doris Fähndrich of the TU Berlin with assistance from the ETAPS publicity chair, Andreas Podelski. Overall planning for ETAPS conferences is the responsibility of the ETAPS steering committee, whose current membership is:
VI Foreword Egidio Astesiano (Genova), Jan Bergstra (Amsterdam), Pierpaolo Degano (Pisa), Hartmut Ehrig (Berlin), José Fiadeiro (Lisbon), Marie-Claude Gaudel (Paris), Susanne Graf (Grenoble), Furio Honsell (Udine), Heinrich Hußmann (Dresden), Stefan Jähnichen (Berlin), Paul Klint (Amsterdam), Tom Maibaum (London), Tiziana Margaria (Dortmund), Ugo Montanari (Pisa), Hanne Riis Nielson (Aarhus), Fernando Orejas (Barcelona), Andreas Podelski (Saarbrücken), David Sands (Göteborg), Don Sannella (Edinburgh), Gert Smolka (Saarbrücken), Bernhard Steffen (Dortmund), Wolfgang Thomas (Aachen), Jerzy Tiuryn (Warsaw), David Watt (Glasgow), Reinhard Wilhelm (Saarbrücken) ETAPS 2000 received generous sponsorship from: the Institute for Communication and Software Technology of TU Berlin the European Association for Programming Languages and Systems the European Association for Theoretical Computer Science the European Association for Software Development Science the High-Level Scientific Conferences component of the European Commission s Fifth Framework Programme I would like to express my sincere gratitude to all of these people and organizations, the program committee members of the ETAPS conferences, the organizers of the satellite events, the speakers themselves, and finally Springer-Verlag for agreeing to publish the ETAPS proceedings. January 2000 Donald Sannella ETAPS Steering Committee chairman
Preface This volume contains the 27 papers presented at ESOP 2000, the Ninth European Symposium on Programming, which took place in Berlin, March 27 31, 2000. The ESOP series originated in 1986 and addresses the design, specification, and analysis of programming languages and programming systems. Since 1998, ESOP has belonged to the ETAPS confederation. The call for papers of ESOP 2000 encouraged the following topics: programming paradigms and their integration, including concurrent, functional, logic, and object-oriented; computational calculi and semantics; type systems, program analysis, and concomitant constraint systems; program transformation; programming environments and tools. The volume starts with a contribution from Martin Odersky, the invited speaker of the conference. The remaining 26 papers were selected by the program committee from 84 submissions (almost twice as many as for ESOP 99). With two exceptions, each submission received at least three reviews, done by the program committee members or their subreferees (names appear below). Once the initial reviews were available, we had two weeks for conflict resolution and paper selection, supported by a database system with Web interfaces. I would like to express my sincere gratitude to Christian Schulte who took care of the software, handled the submissions, tracked the refereeing process, and finally assembled the proceedings. Then, of course, I am grateful to my fellow program committee members, the many additional referees, and the authors of the submitted papers. Finally, I have to thank Don Sannella, who smoothly organized the program at the ETAPS level and relieved me of many organizational burdens. January 2000 Gert Smolka
VIII Organization Organization Program Chair Gert Smolka UdS, Saarbrücken, Germany Program Committee Gerard Boudol Sophia Drossopoulou Matthias Felleisen Michael Franz Manuel Hermenegildo Xavier Leroy Alan Mycroft Martin Odersky Andreas Podelski Gert Smolka Peter Thiemann Mads Tofte Pascal Van Hentenryck INRIA, Sophia-Antipolis, France Imperial College, London, UK Rice University, Houston, USA UC Irvine, USA TU Madrid, Spain INRIA Rocquencourt, France Cambridge University, UK EPF Lausanne, Switzerland MPI, Saarbrücken, Germany UdS, Saarbrücken, Germany Uni Freiburg, Germany Uni Copenhagen, Denmark Uni Louvain, Belgium Additional Referees Martín Abadi, Roberto Amadio, Zena Matilde Ariola, Andrea Asperti, Uwe Assmann, Isabelle Attali, Gilles Barthe, David Basin, Alexander Bockmayr, Maurice Bruynooghe, Francisco Bueno, Egon Börger, Robert Cartwright, Giuseppe Castagna, Ilaria Castellani, Witold Charatonik, Olaf Chitil, Agostino Cortesi, Patrick Cousot, Roy Crole, Paul Cunningham, Silvano Dal Zilio, Saumya Debray, Bart Demoen, Damien Doligez, Thomas Ehrhard, Jérôme Feret, Gilberto Filé, Ian Foster, Cédric Fournet, Peter H. Froehlich, Martin Fränzle, María García de la Banda, Roberto Giacobazzi, Jens Christian Godskesen, Georges Gonthier, Andy Gordon, Susanne Graf, Niels Hallenberg, Chris Hankin, Nevin Heintze, Simon Helsen, Angel Herranz, Ralf Hinze, Sebastian Hunt, Graham Hutton, Jean-Marie Jacquet, Suresh Jagannathan, C. B. Jay, Neil D. Jones, Antonios Kakas, Sam Kamin, Andy King, Jan Willem Klop, Povl Koch, Shriram Krishnamurthi, Herbert Kuchen, Arun Lakhotia, David Ephraim Larkin, Ziemowit Laski, Baudouin Le Charlier, Fabrice Le Fessant, K. Rustan M. Leino, Jean-Jacques Lévy, Michael Maher, Jan Maluszynski, John Maraist, Luc Maranget, Mircea Marin, Julio Mariño, Kim Marriott, Laurent Mauborgne, Erik Meijer, Massimo Merro, Laurent Michel, Yasuhiko Minamide, Eugenio Moggi, Andrew Moran, Juan José Moreno Navarro, Anders Møller, Peter Møller
Organization IX Neergaard, Lee Naish, Uwe Nestmann, Flemming Nielson, Jukka Paakki, Jens Palsberg, Ross Paterson, Alberto Pettorossi, Iain Phillips, Enrico Pontelli, François Pottier, Germàn Puebla, Christian Queinnec, Laurent Regnier, John Reppy, Hanne Riis Nielson, David Rosenblueth, Andreas Rossberg, Abhik Roychowdhury, Albert Rubio, Radu Rugina, Claudio Vittorio Russo, Didier Rémy, Michel Rüher, Amr Sabry, Beverly Sanders, Davide Sangiorgi, Hiroyuki Sato, David Schmidt, Wolfgang Schreiner, Christian Schulte, Peter Sestoft, Zhong Shao, Richard Sharp, Yu Shi, Harald Sondergaard, Fausto Spoto, Harini Srinivasan, Paul Steckler, Peter Stuckey, Jean-Ferdinand Susini, Don Syme, Sophie Tison, Jan Vitek, Philip Wadler, David S. Warren, Reinhard Wilhelm, Burkhard Wolff, Andrew Wright, Christoph Zenger, Matthias Zenger, Elena Zucca, Frank S. de Boer.
Table of Contents Invited Paper Functional Nets... 1 Martin Odersky (École Polytechnique Fédérale de Lausanne) Regular Papers Faithful Translations between Polyvariant Flows and Polymorphic Types.. 26 Torben Amtoft (Boston University) and Franklyn Turbak (Wellesley College) On the Expressiveness of Event Notification in Data-Driven Coordination Languages... 41 Nadia Busi and Gianluigi Zavattaro (Università di Bologna) Flow-Directed Closure Conversion for Typed Languages... 56 Henry Cejtin (Entertainment Decisions), Suresh Jagannathan (NEC Research Institute), and Stephen Weeks (Intertrust STAR Laboratories) Directional Type Checking for Logic Programs: Beyond Discriminative Types 72 Witold Charatonik (Max-Planck-Institut für Informatik) Formalizing Implementation Strategies for First-Class Continuations... 88 Olivier Danvy (University of Aarhus) Correctness of Java Card Method Lookup via Logical Relations...104 Ewen Denney and Thomas Jensen (IRISA) Compile-Time Debugging of C Programs Working on Trees...119 Jacob Elgaard, Anders Møller, and Michael I. Schwartzbach (University of Aarhus) A Calculus for Compiling and Linking Classes...135 Kathleen Fisher (AT&T Labs), John Reppy, and Jon G. Riecke (Bell Laboratories, Lucent Technologies) Abstract Domains for Universal and Existential Properties...150 Andrew Heaton, Patricia M. Hill (University of Leeds), and Andy King (University of Kent) A Type System for Bounded Space and Functional In-Place Update Extended Abstract...165 Martin Hofmann (LFCS Edinburgh)
XII Table of Contents Secure Information Flow as Typed Process Behaviour...180 Kohei Honda (Queen Mary and Westfield College), Vasco Vasconcelos (University of Lisbon), and Nobuko Yoshida (University of Leicester) Implementing Groundness Analysis with Definite Boolean Functions...200 Jacob M. Howe and Andy King (University of Kent) The Correctness of Type Specialisation...215 John Hughes (Chalmers University) Type Classes with Functional Dependencies...230 Mark P. Jones (Oregon Graduate Institute) Sharing Continuations: Proofnets for Languages with Explicit Control...245 Julia L. Lawall and Harry G. Mairson (Boston University) A Calculus for Link-Time Compilation...260 Elena Machkasova (Boston University) and Franklyn A. Turbak (Wellesley College) Improving the Representation of Infinite Trees to Deal with Sets of Trees. 275 Laurent Mauborgne (École Normale Supérieure) On the Translation of Procedures to Finite Machines...290 Markus Müller-Olm (Universität Dortmund) and Andreas Wolf (Christian-Albrechts-Universität Kiel) A Kleene Analysis of Mobile Ambients...305 Flemming Nielson, Hanne Riis Nielson (Aarhus University), and Mooly Sagiv (Tel Aviv University) A 3-Part Type Inference Engine...320 François Pottier (INRIA Rocquencourt) First-Class Structures for Standard ML...336 Claudio V. Russo (Cambridge University) Constraint-Based Inter-Procedural Analysis of Parallel Programs...351 Helmut Seidl (Universität Trier) and Bernhard Steffen (Universität Dortmund) Alias Types...366 Frederick Smith, David Walker, and Greg Morrisett (Cornell University) Polyvariant Flow Analysis with Constrained Types...382 Scott F. Smith and Tiejun Wang (The Johns Hopkins University) On Exceptions Versus Continuations in the Presence of State...397 Hayo Thielecke (Queen Mary and Westfield College)
Table of Contents XIII Equational Reasoning for Linking with First-Class Primitive Modules...412 J. B. Wells and René Vestergaard (Heriot-Watt University) Author Index...429