Luca-Cardelli-Fest-MSR-TR-2014

Total Page:16

File Type:pdf, Size:1020Kb

Luca-Cardelli-Fest-MSR-TR-2014 CARDELLIFEST Martín Abadi Philippa Gardner Andrew D. Gordon Radu Mardare (Eds.) Essays for the Luca Cardelli Fest September 8-9, 2014 Microsoft Research Cambridge Technical Report MSR-TR-2014-104 Preface Luca Cardelli has made exceptional contributions to the field of programming languages and beyond. Throughout his career, he has re-invented himself every decade or so, while continuing to make true innovations. His achievements span many areas: software; language design, including experimental languages; pro- gramming language foundations; and the interaction of programming languages and biology. These achievements form the basis of his lasting scientific leadership and his wide impact. Luca was born in Montecatini Terme, Italy, studied at the University of Pisa until 1978, and received a Ph.D. in computer science from the University of Edinburgh, supervised by Gordon Plotkin. He held research positions at Bell Labs, Murray Hill (1982{1985), and at Digital's Systems Research Center, Palo Alto (1985{1997). He joined Microsoft Research in Cambridge in 1997, where for many years he managed the Programming Principles and Tools group. Since 2013, he holds a Royal Society Research Professorship at the University of Oxford, alongside his position as Principal Researcher at Microsoft Research. Luca Cardelli is a Fellow of the Royal Society, an ACM Fellow, an Elected Member of the Academia Europaea, an Elected Member of AITO (International Association for Object Technologies), and a member of EATCS (European As- sociation for Theoretical Computer Science) and ISCB (International Society for Computational Biology). A scientific event in honour of Luca Cardelli has been organized in Cambridge (UK) on September 8{9, 2014. This celebration will gather many of Luca's col- leagues and friends. It will include talks on a wide variety of topics, correspond- ing to many of the areas in which Luca has worked. Its program is available at http://research.microsoft.com/lucacardellifest/. Complementing these talks, and as a more lasting reflection of the event, many of Luca's colleagues and friends wrote the short papers included in this informal volume. Luca is always asking \what is new", and is always looking to the future. Therefore, we have asked authors to produce short pieces that would indicate where they are today and where they are going. Some of the resulting pieces are short scientific papers, or abridged versions of longer papers; others are less technical, with thoughts on the past and ideas for the future. We hope that they will all interest Luca. We thank all the contributors for their work, and Andrew Phillips for his editorial help. Mart´ınAbadi Philippa Gardner Andrew D. Gordon Radu Mardare Table of Contents Naiad Models and Languages . 7 Mart´ınAbadi The Behavior of Probabilistic Systems: From Equivalences to Behavioural Distances . 15 Giorgio Bacci, Giovanni Baci Bacci, Kim G. Larsen and Radu Mardare The Challenges of Attaining Grace (in a Language Definition) . 27 Andrew Black, Kim Bruce, Michael Homer and James Noble The Gene Gate Model: Some Afterthoughts . 41 Ralf Blossey Multilinear Programming with Big Data . 51 Mihai Budiu and Gordon Plotkin Types and Logic, Concurrency and Non-Determinism . 69 Lu´ısCaires What Makes a Biological Clock Efficient? . .85 Attila Csik´asz-Nagyand Neil Dalchau Two Possibly Alternative Approaches to the Semantics of Stochastic Process Calculi . 95 Rocco De Nicola, Diego Latella, Michele Loreti and Mieke Massink Refining Objects . 109 Robert Harper and Rowan Davies A Theory of Model Equivalence . 141 Ozan Kahramano˘gullari and James F. Lynch Challenges in Automated Verification and Synthesis for Molecular Programming . .155 Marta Kwiatkowska Temporal Logic: The Lesser of Three Evils . 171 Leslie Lamport Simple Proofs of Simple Programs in Why3 . 177 Jean-Jacques L´evy Introduction to New Perspectives in Biology . 187 Giuseppe Longo and Mael Mont´evil Luca Cardelli and the Early Evolution of ML . 201 David MacQueen Tiny Bang: Type Inference and Pattern Matching on Steroids . 215 Pottayil Harisanker Menon, Zachary Palmer, Alexander Rozenshteyn and Scott Smith The Spider Calculus: Computing in Active Graphs . 227 Benjamin C. Pierce, Alessandro Romanel and Daniel Wagner From Amber to Coercion Constraints . 243 Didier R´emyand Julien Cretin Classical π ................................................................257 Steffen van Bakel and Maria Grazia Vigliotti Naiad Models and Languages Mart´ınAbadi Microsoft Research Abstract Naiad is a recent distributed system for data-parallel computation. The goal of this note is to review Naiad and the computing model that underlies it, and to suggest opportunities for explaining them and extending them through programming languages, calculi, and semantics. 1 Prologue Luca Cardelli's research often demonstrates the great value of programming nota- tions and their semantics in understanding and improving a wide variety of com- putational concepts and phenomena. Some of these concepts and phenomena| for example, linking|are close to programming languages, though often hidden inside implementations. Others, like ambients and chemical reactions, may seem more surprising. Finding and developing an appropriate programming-language perspective on such subjects requires insight and elegance, but it can be quite fruitful, as Luca's work illustrates superbly. On the occasion of a celebration of Luca's research, his friends and colleagues were invited to write short pieces that would summarize where they are and where they are going. At present I am engaged in several disparate activities in computer security and in programming languages and systems. So, in this note, I chose to focus on one particular project, namely the development of the Naiad system and of the corresponding theory. This subject is related to people and topics that I encountered while working with Luca, such as Kahn networks and the integration of database constructs into programming languages. More importantly, perhaps, it is a subject in which Luca's perspective and approach may prove crucial in the future. (Lately, I sometimes ask myself \What would Luca do?") The subject does not have obvious connections to the many topics on which Luca and I worked together (type systems, objects, explicit substitutions, and more), nor does it have the breadth of Luca's current research interests|but that may all come in due course. 7 The next section is a brief description of Naiad; further details and references can be found in recent papers (Murray et al. 2013; Abadi et al. 2013; McSherry et al. 2013). The following section outlines some areas of current and future research (joint work with many colleagues, listed below). 2 Naiad in a nutshell Naiad is a distributed system for data-parallel computation. It aims to offer high throughput and low latency, and to support a range of tasks that includes traditional batch and stream processing and also iterative and incremental com- putations. For example, a Naiad application may process a stream of events such as tweets (Murray et al. 2013); as they arrive, the events may feed into an incre- mental connected-components computation and other analyses, which may, for instance, identify the most popular topics in each community of users. Naiad thus aspires to serve as a general, coherent platform for data-parallel applications. In this respect, Naiad contrasts with other systems for data-parallel computation that focus on narrower domains (e.g., graph problems) or on particular styles of programs (e.g., with restrictions on loops). 2.1 Timely dataflow At the core of Naiad is a model for parallel computing that we call timely dataflow. This model extends dataflow computation with a notion of virtual time. As in Jefferson’s Time Warp mechanism (Jefferson 1985), virtual time serves to differ- entiate between data at different phases of a computation. Unlike in the Time Warp mechanism, however, virtual time is partially ordered (rather than linearly ordered, since a linear order may impose false dependencies). In Naiad, each communication event is associated with a virtual time. This as- sociation enables the runtime system to overlap|but still distinguish|work that corresponds to multiple logical stages in a computation: different input epochs, iterations, workflow steps, and perhaps speculative executions. It also enables the runtime system to notify nodes when they have received their last message for a given virtual time. This combination of asynchronous scheduling and completion notification implies that, within a single application, some components can func- tion in batch mode (queuing inputs and delaying processing until an appropriate notification) and others in streaming mode (processing inputs as they arrive). As is typical in dataflow models, we specify computations as directed graphs, with distinguished input nodes and output nodes. The graphs may contain loops, even nested loops. Therefore, at each location in a graph, we can define times- tamps of the form (input epoch, loop counters), where there is one loop counter 8 for each enclosing loop context at that location. Each loop must contain a feed- back node whose function is to increment a timestamp counter. Nodes for loop ingress and egress introduce and remove time coordinates, respectively. During execution, stateful nodes send and receive timestamped messages, and in addition may request and receive notification that they have received all mes- sages with a certain timestamp. So the runtime system must be able to reason
Recommended publications
  • Declaration of James Johnson and Exhibits
    Case 1:07-cv-00312-GBD-MHD Document 262 Filed 06/23/15 Page 1 of 51 UNITED STATES DISTRICT COURT SOUTHERN DISTRICT OF NEW YORK ––––––––––––––––––––––––––––––––––––––––––– x : Civil Action No.: 07-CV-00312-GBD : IN RE CELESTICA INC. SEC. LITIG. : (ECF CASE) : : Hon. George B. Daniels : ––––––––––––––––––––––––––––––––––––––––––– x DECLARATION OF JAMES W. JOHNSON IN SUPPORT OF CLASS REPRESENTATIVES’ MOTION FOR FINAL APPROVAL OF PROPOSED CLASS ACTION SETTLEMENT AND PLAN OF ALLOCATION AND CLASS COUNSEL’S MOTION FOR AWARD OF ATTORNEYS’ FEES AND PAYMENT OF LITIGATION EXPENSES Case 1:07-cv-00312-GBD-MHD Document 262 Filed 06/23/15 Page 2 of 51 TABLE OF CONTENTS I. PRELIMINARY STATEMENT: THE SIGNIFICANT RECOVERY ACHIEVED .........................................................................................................................2 II. FACTUAL SUMMARY OF THE CLAIMS ......................................................................4 III. RELEVANT PROCEDURAL HISTORY ..........................................................................6 A. Initial Complaints and Appointment of Lead Plaintiffs ...........................................6 B. The Complaint and Motions to Dismiss ..................................................................7 C. Appeal to the Second Circuit Court of Appeals .......................................................8 D. Extensive Fact Discovery ......................................................................................10 E. Discovery Propounded on Lead Plaintiffs .............................................................14
    [Show full text]
  • The Effect of Compression and Expansion on Stochastic Reaction Networks
    IMT School for Advanced Studies, Lucca Lucca, Italy The Effect of Compression and Expansion on Stochastic Reaction Networks PhD Program in Institutions, Markets and Technologies Curriculum in Computer Science and Systems Engineering (CSSE) XXXI Cycle By Tabea Waizmann 2021 The dissertation of Tabea Waizmann is approved. Program Coordinator: Prof. Rocco De Nicola, IMT Lucca Supervisor: Prof. Mirco Tribastone, IMT Lucca The dissertation of Tabea Waizmann has been reviewed by: Dr. Catia Trubiani, Gran Sasso Science Institute Prof. Michele Loreti, University of Camerino IMT School for Advanced Studies, Lucca 2021 To everyone who believed in me. Contents List of Figures ix List of Tables xi Acknowledgements xiii Vita and Publications xv Abstract xviii 1 Introduction 1 2 Background 6 2.1 Multisets . .6 2.2 Reaction Networks . .7 2.3 Ordinary Lumpability . 11 2.4 Layered Queuing Networks . 12 2.5 PEPA . 16 3 Coarse graining mass-action stochastic reaction networks by species equivalence 19 3.1 Species Equivalence . 20 3.1.1 Species equivalence as a generalization of Markov chain ordinary lumpability . 27 3.1.2 Characterization of SE for mass-action networks . 27 3.1.3 Computation of the maximal SE and reduced net- work . 28 vii 3.2 Applications . 31 3.2.1 Computational systems biology . 31 3.2.2 Epidemic processes in networks . 33 3.3 Discussion . 36 4 DiffLQN: Differential Equation Analysis of Layered Queuing Networks 37 4.1 DiffLQN .............................. 38 4.1.1 Architecture . 38 4.1.2 Capabilities . 38 4.1.3 Syntax . 39 4.2 Case Study: Client-Server dynamics . 41 4.3 Discussion .
    [Show full text]
  • Type Checking Physical Frames of Reference for Robotic Systems
    PhysFrame: Type Checking Physical Frames of Reference for Robotic Systems Sayali Kate Michael Chinn Hongjun Choi Purdue University University of Virginia Purdue University USA USA USA [email protected] [email protected] [email protected] Xiangyu Zhang Sebastian Elbaum Purdue University University of Virginia USA USA [email protected] [email protected] ABSTRACT Engineering (ESEC/FSE ’21), August 23–27, 2021, Athens, Greece. ACM, New A robotic system continuously measures its own motions and the ex- York, NY, USA, 16 pages. https://doi.org/10.1145/3468264.3468608 ternal world during operation. Such measurements are with respect to some frame of reference, i.e., a coordinate system. A nontrivial 1 INTRODUCTION robotic system has a large number of different frames and data Robotic systems have rapidly growing applications in our daily life, have to be translated back-and-forth from a frame to another. The enabled by the advances in many areas such as AI. Engineering onus is on the developers to get such translation right. However, such systems becomes increasingly important. Due to the unique this is very challenging and error-prone, evidenced by the large characteristics of such systems, e.g., the need of modeling the phys- number of questions and issues related to frame uses on developers’ ical world and satisfying the real time and resource constraints, forum. Since any state variable can be associated with some frame, robotic system engineering poses new challenges to developers. reference frames can be naturally modeled as variable types. We One of the prominent challenges is to properly use physical frames hence develop a novel type system that can automatically infer of reference.
    [Show full text]
  • Dynamic Extension of Typed Functional Languages
    Dynamic Extension of Typed Functional Languages Don Stewart PhD Dissertation School of Computer Science and Engineering University of New South Wales 2010 Supervisor: Assoc. Prof. Manuel M. T. Chakravarty Co-supervisor: Dr. Gabriele Keller Abstract We present a solution to the problem of dynamic extension in statically typed functional languages with type erasure. The presented solution re- tains the benefits of static checking, including type safety, aggressive op- timizations, and native code compilation of components, while allowing extensibility of programs at runtime. Our approach is based on a framework for dynamic extension in a stat- ically typed setting, combining dynamic linking, runtime type checking, first class modules and code hot swapping. We show that this framework is sufficient to allow a broad class of dynamic extension capabilities in any statically typed functional language with type erasure semantics. Uniquely, we employ the full compile-time type system to perform run- time type checking of dynamic components, and emphasize the use of na- tive code extension to ensure that the performance benefits of static typing are retained in a dynamic environment. We also develop the concept of fully dynamic software architectures, where the static core is minimal and all code is hot swappable. Benefits of the approach include hot swappable code and sophisticated application extension via embedded domain specific languages. We instantiate the concepts of the framework via a full implementation in the Haskell programming language: providing rich mechanisms for dy- namic linking, loading, hot swapping, and runtime type checking in Haskell for the first time. We demonstrate the feasibility of this architecture through a number of novel applications: an extensible text editor; a plugin-based network chat bot; a simulator for polymer chemistry; and xmonad, an ex- tensible window manager.
    [Show full text]
  • Graceful Language Extensions and Interfaces
    Graceful Language Extensions and Interfaces by Michael Homer A thesis submitted to the Victoria University of Wellington in fulfilment of the requirements for the degree of Doctor of Philosophy Victoria University of Wellington 2014 Abstract Grace is a programming language under development aimed at ed- ucation. Grace is object-oriented, imperative, and block-structured, and intended for use in first- and second-year object-oriented programming courses. We present a number of language features we have designed for Grace and implemented in our self-hosted compiler. We describe the design of a pattern-matching system with object-oriented structure and minimal extension to the language. We give a design for an object-based module system, which we use to build dialects, a means of extending and restricting the language available to the programmer, and of implementing domain-specific languages. We show a visual programming interface that melds visual editing (à la Scratch) with textual editing, and that uses our dialect system, and we give the results of a user experiment we performed to evaluate the usability of our interface. ii ii Acknowledgments The author wishes to acknowledge: • James Noble and David Pearce, his supervisors; • Andrew P. Black and Kim B. Bruce, the other designers of Grace; • Timothy Jones, a coauthor on a paper forming part of this thesis and contributor to Minigrace; • Amy Ruskin, Richard Yannow, and Jameson McCowan, coauthors on other papers; • Daniel Gibbs, Jan Larres, Scott Weston, Bart Jacobs, Charlie Paucard, and Alex Sandilands, other contributors to Minigrace; • Gilad Bracha, Matthias Felleisen, and the other (anonymous) review- ers of papers forming part of this thesis; • the participants in his user study; • and Roma Klapaukh, Juanri Barnard, Alexandra Donnison, Amy Chard, and Timothy Jones for providing feedback on drafts of this thesis.
    [Show full text]
  • SIGMOD Record, June 2018 (Vol
    SIGMOD Officers, Committees, and Awardees Chair Vice-Chair Secretary/Treasurer Juliana Freire Ihab Francis Ilyas Fatma Ozcan Computer Science & Engineering Cheriton School of Computer Science IBM Research New York University University of Waterloo Almaden Research Center Brooklyn, New York Waterloo, Ontario San Jose, California USA CANADA USA +1 646 997 4128 +1 519 888 4567 ext. 33145 +1 408 927 2737 juliana.freire <at> nyu.edu ilyas <at> uwaterloo.ca fozcan <at> us.ibm.com SIGMOD Executive Committee: Juliana Freire (Chair), Ihab Francis Ilyas (Vice-Chair), Fatma Ozcan (Treasurer), K. Selçuk Candan, Yanlei Diao, Curtis Dyreson, Christian S. Jensen, Donald Kossmann, and Dan Suciu. Advisory Board: Yannis Ioannidis (Chair), Phil Bernstein, Surajit Chaudhuri, Rakesh Agrawal, Joe Hellerstein, Mike Franklin, Laura Haas, Renee Miller, John Wilkes, Chris Olsten, AnHai Doan, Tamer Özsu, Gerhard Weikum, Stefano Ceri, Beng Chin Ooi, Timos Sellis, Sunita Sarawagi, Stratos Idreos, Tim Kraska SIGMOD Information Director: Curtis Dyreson, Utah State University Associate Information Directors: Huiping Cao, Manfred Jeusfeld, Asterios Katsifodimos, Georgia Koutrika, Wim Martens SIGMOD Record Editor-in-Chief: Yanlei Diao, University of Massachusetts Amherst SIGMOD Record Associate Editors: Vanessa Braganholo, Marco Brambilla, Chee Yong Chan, Rada Chirkova, Zachary Ives, Anastasios Kementsietsidis, Jeffrey Naughton, Frank Neven, Olga Papaemmanouil, Aditya Parameswaran, Alkis Simitsis, Wang-Chiew Tan, Pinar Tözün, Marianne Winslett, and Jun Yang SIGMOD Conference
    [Show full text]
  • Composition of Software Architectures Christos Kloukinas
    Composition of Software Architectures Christos Kloukinas To cite this version: Christos Kloukinas. Composition of Software Architectures. Computer Science [cs]. Université Rennes 1, 2002. English. tel-00469412 HAL Id: tel-00469412 https://tel.archives-ouvertes.fr/tel-00469412 Submitted on 1 Apr 2010 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Composition of Software Architectures - Ph.D. Thesis - - Presented in front of the University of Rennes I, France - - English Version - Christos Kloukinas Jury Members : Jean-Pierre Banâtre Jacky Estublier Cliff Jones Valérie Issarny Nicole Lévy Joseph Sifakis February 12, 2002 Résumé Les systèmes informatiques deviennent de plus en plus complexes et doivent offrir un nombre croissant de propriétés non fonctionnelles, comme la fiabi- lité, la disponibilité, la sécurité, etc.. De telles propriétés sont habituellement fournies au moyen d’un intergiciel qui se situe entre le matériel (et le sys- tème d’exploitation) et le niveau applicatif, masquant ainsi les spécificités du système sous-jacent et permettant à des applications d’être utilisées avec dif- férentes infrastructures. Cependant, à mesure que les exigences de propriétés non fonctionnelles augmentent, les architectes système se trouvent confron- tés au cas où aucun intergiciel disponible ne fournit toutes les propriétés non fonctionnelles visées.
    [Show full text]
  • Infighting Unravels Alliance Seeking Standard to Protect Internet Purchases Sandberg, Jared
    Infighting unravels alliance seeking standard to protect Internet purchases Sandberg, Jared . Wall Street Journal , Eastern edition; New York, N.Y. [New York, N.Y]28 Sep 1995: B10. ProQuest document link ABSTRACT (ABSTRACT) The consortium brought together such top players as credit-card rivals Visa International and MasterCard International Inc., software titan Microsoft Corp. and Internet upstart Netscape Communications Corp. But this week, the alliance split because of tensions between Visa and MasterCard and their respective technology partners -- Microsoft and Netscape. Microsoft and Visa this week published a detailed description of a credit-card standard -- but with MasterCard conspicuously absent. MasterCard and Netscape now argue, in essence, that the Microsoft-Visa team is withholding the technical design to keep its approach "proprietary" and charge software developers and financial institutions to use it. "We're disappointed that Microsoft and Visa have opted unilaterally to take this approach," a MasterCard spokeswoman said. She said the Microsoft-Visa details were incomplete, thwarting banks and software firms developing new applications. MasterCard said it refused to take part in the Visa announcement because it is "contrary" to the plans for a "single open standard." ABSTRACT A consortium to develop a technical standard for protecting credit-card purchases on the Internet has unraveled because of tensions between Visa International and MasterCard International Inc and their respective technology partners, Microsoft Corp and Netscape Communications Corp. After Visa and Microsoft published a detailed description of a credit-card standard, Mastercard and Netscape are arguing that the Microsoft-Visa team is withholding the technical design. FULL TEXT NEW YORK -- A major alliance to develop a technical standard for protecting credit-card purchases on the Internet has unraveled amid bickering between a handful of heavyweights.
    [Show full text]
  • Introduction to the Literature on Programming Language Design Gary T
    Computer Science Technical Reports Computer Science 7-1999 Introduction to the Literature On Programming Language Design Gary T. Leavens Iowa State University Follow this and additional works at: http://lib.dr.iastate.edu/cs_techreports Part of the Programming Languages and Compilers Commons Recommended Citation Leavens, Gary T., "Introduction to the Literature On Programming Language Design" (1999). Computer Science Technical Reports. 59. http://lib.dr.iastate.edu/cs_techreports/59 This Article is brought to you for free and open access by the Computer Science at Iowa State University Digital Repository. It has been accepted for inclusion in Computer Science Technical Reports by an authorized administrator of Iowa State University Digital Repository. For more information, please contact [email protected]. Introduction to the Literature On Programming Language Design Abstract This is an introduction to the literature on programming language design and related topics. It is intended to cite the most important work, and to provide a place for students to start a literature search. Keywords programming languages, semantics, type systems, polymorphism, type theory, data abstraction, functional programming, object-oriented programming, logic programming, declarative programming, parallel and distributed programming languages Disciplines Programming Languages and Compilers This article is available at Iowa State University Digital Repository: http://lib.dr.iastate.edu/cs_techreports/59 Intro duction to the Literature On Programming Language Design Gary T. Leavens TR 93-01c Jan. 1993, revised Jan. 1994, Feb. 1996, and July 1999 Keywords: programming languages, semantics, typ e systems, p olymorphism, typ e theory, data abstrac- tion, functional programming, ob ject-oriented programming, logic programming, declarative programming, parallel and distributed programming languages.
    [Show full text]
  • Graceful Language Extensions and Interfaces
    Graceful Language Extensions and Interfaces by Michael Homer A thesis submitted to the Victoria University of Wellington in fulfilment of the requirements for the degree of Doctor of Philosophy Victoria University of Wellington 2014 Abstract Grace is a programming language under development aimed at ed- ucation. Grace is object-oriented, imperative, and block-structured, and intended for use in first- and second-year object-oriented programming courses. We present a number of language features we have designed for Grace and implemented in our self-hosted compiler. We describe the design of a pattern-matching system with object-oriented structure and minimal extension to the language. We give a design for an object-based module system, which we use to build dialects, a means of extending and restricting the language available to the programmer, and of implementing domain-specific languages. We show a visual programming interface that melds visual editing (à la Scratch) with textual editing, and that uses our dialect system, and we give the results of a user experiment we performed to evaluate the usability of our interface. ii ii Acknowledgments The author wishes to acknowledge: • James Noble and David Pearce, his supervisors; • Andrew P. Black and Kim B. Bruce, the other designers of Grace; • Timothy Jones, a coauthor on a paper forming part of this thesis and contributor to Minigrace; • Amy Ruskin, Richard Yannow, and Jameson McCowan, coauthors on other papers; • Daniel Gibbs, Jan Larres, Scott Weston, Bart Jacobs, Charlie Paucard, and Alex Sandilands, other contributors to Minigrace; • Gilad Bracha, Matthias Felleisen, and the other (anonymous) review- ers of papers forming part of this thesis; • the participants in his user study; • David Streader, John Grundy, and Laurence Tratt, examiners of the thesis; • and Alexandra Donnison, Amy Chard, Juanri Barnard, Roma Kla- paukh, and Timothy Jones, for providing feedback on drafts of this thesis.
    [Show full text]
  • Incremental Type Inference for Software Engineering
    Incremental Type Inference for Software Engineering Jonathan Aldrich University of Washington [email protected] Abstract The desire to use high-level language constructs while Software engineering focused type inference can enhance preserving a static type-safe guarantee drives programmer productivity in statically typed object- programmers to ask for ever-more powerful type systems. oriented languages. Type inference is a system of However, specifying a type that may be almost as long automatically inferring the argument and return types of and complicated as the function it describes can be a function. It provides considerable programming impractical. convenience, because the programmer can realize the benefits of a statically typed language without manually 1.2. Type Inference in ML entering the type annotations. We study the problem of type inference in object-oriented languages and propose In ML, it is possible for the compiler to analyze the an incremental, programmer-aided approach. Code is body of a function and infer the type of that function. For added one method at a time and missing types are example, a function that squares each of its arguments and inferred if possible. We present a specification and returns the sum of the squares clearly takes several algorithm for inferring simple object-oriented types in arguments of type int and yields an int in return (see this kind of incremental development environment. figure 1). - fun sumsqrs (x, y) = x*x + y*y; 1. Introduction val sumsqrs = fn : int * int -> int Type inference was popularized by the ML language [Milner et al., 1990]. ML is made up of functions and Figure 1.
    [Show full text]
  • Luca Cardelli • Curriculum Vitae • 2014
    Luca Cardelli • Curriculum Vitae • 2014 Short Bio Luca Cardelli was born near Montecatini Terme, Italy, studied at the University of Pisa (until 1978-07- 12), and has a Ph.D. in computer science from the University of Edinburgh(1982-04-01). He worked at Bell Labs, Murray Hill, from 1982-04-05 to 1985-09-20, and at Digital Equipment Corporation, Systems Research Center in Palo Alto, from 1985-09-30 to 1997-10-31, before assuming a position on 1997-11-03 at Microsoft Research, in Cambridge UK, where he was head of the Programming Principles and Tools andSecurity groups until 2012, and is currently a Principal Researcher. His main interests are in type theory and operational semantics (for applications to language design, semantics, and implementation), and in concurrency theory (for applications to computer networks and to modeling biological systems). He implemented the first compiler for ML (one of the most popular typed functional language, whose recent incarnations are Caml and F#) and one of the earliest direct-manipulation user-interface editors. He was a member of the Modula-3 design committee, and has designed a few experimental languages, including Obliq: a distributed higher- order scripting language (voted most influential POPL'95 paper 10 years later), and Polyphonic C#, a distributed extension of C#. His more protracted research activity has been in establishing the semantic and type-theoretic foundations of object-oriented languages, resulting in the 1996 book "A Theory of Objects" with Martin Abadi. More recently he has focused on modeling global and mobile computation, via the Ambient Calculus andSpatial Logics, which indirectly led to a current interest in Systems Biology , Molecular Programming, and Stochastic Systems.
    [Show full text]