On Understanding Types, Data Abstraction, and Polymorphism
Total Page:16
File Type:pdf, Size:1020Kb

Load more
Recommended publications
-
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 . -
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. -
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. -
Concepts and Paradigms of Object-Oriented Programming Expansion of Oct 400PSLA-89 Keynote Talk Peter Wegner, Brown University
Concepts and Paradigms of Object-Oriented Programming Expansion of Oct 400PSLA-89 Keynote Talk Peter Wegner, Brown University 1. What Is It? 8 1.1. Objects 8 1.2. Classes 10 1.3. Inheritance 11 1.4. Object-Oriented Systems 12 2. What Are Its Goals? 13 2.1. Software Components 13 2.2. Object-Oriented Libraries 14 2.3. Reusability and Capital-intensive Software Technology 16 2.4. Object-Oriented Programming in the Very Large 18 3. What Are Its Origins? 19 3.1. Programming Language Evolution 19 3.2. Programming Language Paradigms 21 4. What Are Its Paradigms? 22 4.1. The State Partitioning Paradigm 23 4.2. State Transition, Communication, and Classification Paradigms 24 4.3. Subparadigms of Object-Based Programming 26 5. What Are Its Design Alternatives? 28 5.1. Objects 28 5.2. Types 33 5.3. Inheritance 36 5.4. Strongly Typed Object-Oriented Languages 43 5.5. Interesting Language Classes 45 5.6. Object-Oriented Concept Hierarchies 46 6. what Are Its Models of Concurrency? 49 6.1. Process Structure 50 6.2. Internal Process Concurrency 55 6.3. Design Alternatives for Synchronization 56 6.4. Asynchronous Messages, Futures, and Promises 57 6.5. Inter-Process Communication 58 6.6. Abstraction, Distribution, and Synchronization Boundaries 59 6.7. Persistence and Transactions 60 7. What Are Its Formal Computational Models? 62 7.1. Automata as Models of Object Behavior 62 7.2. Mathematical Models of Types and Classes 65 7.3. The Essence of Inheritance 74 7.4. Reflection in Object-Oriented Systems 78 8. -
The Interactive Nature of Computing: Refuting the Strong Church-Turing Thesis
TEX source file Click here to download Manuscript: paper.tex The Interactive Nature of Computing: Refuting the Strong Church-Turing Thesis Dina Goldin∗, Peter Wegner Brown University Abstract. The classical view of computing positions computation as a closed-box transformation of inputs (rational numbers or finite strings) to outputs. According to the interactive view of computing, computation is an ongoing interactive process rather than a function-based transformation of an input to an output. Specifi- cally, communication with the outside world happens during the computation, not before or after it. This approach radically changes our understanding of what is computation and how it is modeled. The acceptance of interaction as a new paradigm is hindered by the Strong Church-Turing Thesis (SCT), the widespread belief that Turing Machines (TMs) capture all computation, so models of computation more expressive than TMs are impossible. In this paper, we show that SCT reinterprets the original Church-Turing Thesis (CTT) in a way that Turing never intended; its commonly assumed equiva- lence to the original is a myth. We identify and analyze the historical reasons for the widespread belief in SCT. Only by accepting that it is false can we begin to adopt interaction as an alternative paradigm of computation. We present Persistent Turing Machines (PTMs), that extend TMs to capture sequential interaction. PTMs allow us to formulate the Sequential Interaction Thesis, going beyond the expressiveness of TMs and of the CTT. The paradigm shift to interaction provides an alternative understanding of the nature of computing that better reflects the services provided by today’s computing technology. -
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. -
Dina Goldin · Scott A. Smolka · Peter Wegner (Eds.) Dina Goldin Scott A
Dina Goldin · Scott A. Smolka · Peter Wegner (Eds.) Dina Goldin Scott A. Smolka Peter Wegner (Eds.) Interactive Computation The New Paradigm With 84 Figures 123 Editors Dina Goldin Scott A. Smolka Brown University State University of New York at Stony Brook Computer Science Department Department of Computer Science Providence, RI 02912 Stony Brook, NY 11794-4400 USA USA [email protected] [email protected] Peter Wegner Brown University Computer Science Department Providence, RI 02912 USA [email protected] Cover illustration: M.C. Escher’s „Whirlpools“ © 2006 The M.C. Escher Company-Holland. All rights reserved. www.mcescher.com Library of Congress Control Number: 2006932390 ACM Computing Classification (1998): F, D.1, H.1, H.5.2 ISBN-10 3-540-34666-X Springer Berlin Heidelberg New York ISBN-13 978-3-540-34666-1 Springer 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, reuse of illustrations, recitation, broad- casting, reproduction on microfilm 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. Violations are liable for prosecution under the German Copyright Law. Springer is a part of Springer Science+Business Media springer.com © Springer-Verlag Berlin Heidelberg 2006 The use of general descriptive names, registered names, trademarks, etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant pro- tective laws and regulations and therefore free for general use. -
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. -
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. -
An Imperative Object Calculus
An Imperative Object Calculus Mart’n Abadi and Luca Cardelli Digital Equipment Corporation, Systems Research Center Abstract. We develop an imperative calculus of objects. Its main type con- structor is the one for object types, which incorporate variance annotations and Self types. A subtyping relation between object types supports object subsumption. The type system for objects relies on unusual but beneficial as- sumptions about the possible subtypes of an object type. With the addition of polymorphism, the calculus can express classes and inheritance. 1 Introduction Object calculi are formalisms at the same level of abstraction as λ-calculi, but based exclusively on objects rather than functions. Unlike λ-calculi, object calculi are de- signed specifically for clarifying features of object-oriented languages. There is a wide spectrum of relevant object calculi, just as there is a wide spectrum of λ-calculi. One can investigate untyped, simply-typed, and polymorphic calculi, as well as functional and imperative calculi. In object calculi, as in λ-calculi, a small untyped kernel is enriched with derived constructions and with increasingly sophisticated type systems, until language fea- tures can be realistically modeled. The compactness of the initial kernel gives concep- tual unity to the calculi, and enables formal analysis. In this paper we introduce a tiny but expressive imperative calculus. It provides a minimal setting in which to study the imperative operational semantics and the deli- cate typing rules of practical object-oriented languages. The calculus comprises objects, method invocation, method update, object cloning, and local definitions. In a quest for minimality, we take objects to be just collections of methods. -
A Bibliography of Publications of Alan Mathison Turing
A Bibliography of Publications of Alan Mathison Turing Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 581 4148 E-mail: [email protected], [email protected], [email protected] (Internet) WWW URL: http://www.math.utah.edu/~beebe/ 24 August 2021 Version 1.227 Abstract This bibliography records publications of Alan Mathison Turing (1912– 1954). Title word cross-reference 0(z) [Fef95]. $1 [Fis15, CAC14b]. 1 [PSS11, WWG12]. $139.99 [Ano20]. $16.95 [Sal12]. $16.96 [Kru05]. $17.95 [Hai16]. $19.99 [Jon17]. 2 [Fai10b]. $21.95 [Sal12]. $22.50 [LH83]. $24.00/$34 [Kru05]. $24.95 [Sal12, Ano04, Kru05]. $25.95 [KP02]. $26.95 [Kru05]. $29.95 [Ano20, CK12b]. 3 [Ano11c]. $54.00 [Kru05]. $69.95 [Kru05]. $75.00 [Jon17, Kru05]. $9.95 [CK02]. H [Wri16]. λ [Tur37a]. λ − K [Tur37c]. M [Wri16]. p [Tur37c]. × [Jon17]. -computably [Fai10b]. -conversion [Tur37c]. -D [WWG12]. -definability [Tur37a]. -function [Tur37c]. 1 2 . [Nic17]. Zycie˙ [Hod02b]. 0-19-825079-7 [Hod06a]. 0-19-825080-0 [Hod06a]. 0-19-853741-7 [Rus89]. 1 [Ano12g]. 1-84046-250-7 [CK02]. 100 [Ano20, FB17, Gin19]. 10011-4211 [Kru05]. 10th [Ano51]. 11th [Ano51]. 12th [Ano51]. 1942 [Tur42b]. 1945 [TDCKW84]. 1947 [CV13b, Tur47, Tur95a]. 1949 [Ano49]. 1950s [Ell19]. 1951 [Ano51]. 1988 [Man90]. 1995 [Fef99]. 2 [DH10]. 2.0 [Wat12o]. 20 [CV13b]. 2001 [Don01a]. 2002 [Wel02]. 2003 [Kov03]. 2004 [Pip04]. 2005 [Bro05]. 2006 [Mai06, Mai07]. 2008 [Wil10]. 2011 [Str11]. 2012 [Gol12]. 20th [Kru05]. 25th [TDCKW84]. -
Exact Maximal Reduction of Stochastic Reaction Networks by Species
Bioinformatics, 2021, 1–8 doi: 10.1093/bioinformatics/btab081 Advance Access Publication Date: 3 February 2021 Original Paper Downloaded from https://academic.oup.com/bioinformatics/advance-article/doi/10.1093/bioinformatics/btab081/6126804 by DTU Library user on 06 July 2021 Systems Biology Exact maximal reduction of stochastic reaction networks by species lumping Luca Cardelli,1 Isabel Cristina Perez-Verona,2 Mirco Tribastone ,2,* Max Tschaikowski,3 Andrea Vandin 4 and Tabea Waizmann2 1Department of Computer Science, University of Oxford, Oxford 34127, OX1 3QD, UK, 2IMT School for Advanced Studies, Lucca 55100, Italy, 3Department of Computer Science, University of Aalborg, Aalborg 34127, 9220, Denmark and 4Sant’Anna School of Advanced Studies, Pisa 56127, Italy *To whom correspondence should be addressed. Associtate Editor: Alfonso Valencia Received on October 16, 2020; revised on January 9, 2021; editorial decision on January 27, 2021; accepted on January 28, 2021 Abstract Motivation: Stochastic reaction networks are a widespread model to describe biological systems where the pres- ence of noise is relevant, such as in cell regulatory processes. Unfortunately, in all but simplest models the resulting discrete state-space representation hinders analytical tractability and makes numerical simulations expensive. Reduction methods can lower complexity by computing model projections that preserve dynamics of interest to the user. Results: We present an exact lumping method for stochastic reaction networks with mass-action kinetics. It hinges on an equivalence relation between the species, resulting in a reduced network where the dynamics of each macro- species is stochastically equivalent to the sum of the original species in each equivalence class, for any choice of the initial state of the system.