Specifications for Intelligent Software Synthesis

Total Page:16

File Type:pdf, Size:1020Kb

Specifications for Intelligent Software Synthesis Czech Technical University in Prague Faculty of Electrical Engineering Department of Computer Science Specifications for Intelligent Software Synthesis Doctoral Thesis Ing. Josef Kufner Prague, January 2020 Ph.D. Programme: Electrical Engineering and Information Technology Branch of study: Artificial Intelligence and Biocybernetics Supervisor: Ing. Radek Mařík, CSc. Abstract Abstrakt To relieve programmers of repetitive and tir- Implementace jednoduchých, avšak příliš ing work on simple, yet too diverse, entities různorodých, entit ve webových aplikacích je in web applications, this thesis searches for únavná úloha, jejíž řešení se pokusíme au- an assistive framework, where machines aid tomatizovat. Tato práce směřuje k vytvoření the programmers with implementing such en- asistivní technologie, kdy počítače programá- tities. The first question to answer is how to torům s implementací pomáhají, ale nesnaží se tell the computer what we want without spec- je plně nahradit. První otázkou je, jak počítači ifying all the details; otherwise, we could just sdělit, co po něm chceme tak, aby taková spe- implement the application instead. The sec- cifikace byla jednodušší, než kdybychom to ond question is how to effectively reason about sami naprogramovali. Druhá otázka cílí na the software so that we can analyze what we možnosti uvažování o programech – jak ana- have and infer what we miss. The proposed lyzovat to, co máme a jak odvozovat, co nám solution introduces Smalldb state machines as chybí. V rámci navrhovaného řešení předsta- a formal model that describes the behavior of víme Smalldb, které formálně popisuje chování the entities in a web application. Such a model entit webové aplikace pomocí konečných auto- is not designed to cover every aspect of the ap- matů, avšak nesnaží se zachytit každý aspekt plication; instead, it leaves well-defined gaps takové aplikace. Pro věci, které je nepraktické for the details that are impractical to spec- formálně modelovat, se ponechají dobře de- ify formally. The formal model then becomes finované mezery a ty se následně zaplní po- part of the application architecture and run- mocí vhodnějšího nástroje. Formální model time, where it provides a secure API between se tak začlení jak do architektury aplikace, business logic and presentation layer; more- tak do jejího běhového prostředí, kde tvoří over, it verifies that the implementation corre- API mezi business logikou a prezentační vrst- sponds to the model. To answer the first ques- vou aplikace. Takto integrovaný model na- tion, we return to the very beginning of the víc hlídá, zda implementované chování od- software development process, where we iden- povídá tomu modelovanému. Abychom zod- tify software specifications that programmers pověděli onu první otázku, je potřeba se po- already use and discuss whether such speci- dívat na samotný začátek procesu vývoje apli- fications are sufficiently machine-friendly for kace a identifikovat, jaké specifikace progra- automated processing. The identified BPMN mátoři obvykle používají při návrhu a zda business process diagrams become an input for jsou tyto specifikace vhodné ke strojovému a novel STS algorithm — a software architect zpracování. Jednou z takových specifikací jsou draws how users will use a web application, procesní diagramy kreslené pomocí BPMN and the STS algorithm infers the implementa- notace. Ty použijeme jako vstup nově vy- tion in the form of a Smalldb state machine. tvořeného STS algoritmu, kterému architekt The thesis concludes with presenting a Cas- nakreslí, jak budou uživatelé používat danou cade, a machine-friendly approach to software aplikaci, a STS algoritmus odvodí implemen- composition based on the utilization of the for- taci v podobě Smalldb automatu. Na závěr si mal models. představíme kaskádu, která je nástrojem pro automatizované sestavování programů využí- vající formální modely. Keywords: Software specification, finite au- Klícovᡠslova: Softwarové specifikace, tomata, web application, business process konečné automaty, webové aplikace, mode- modeling, software architecture, REST, MVC, lování business procesů, softwarová architek- SQL, CQS, BPMN. tura, REST, MVC, SQL, CQS, BPMN. Contents I Introduction 13 1 Introduction 15 1.1 Specification — Model — Implementation . 15 1.2 How to tell what we want? . 16 1.3 Software Synthesis as an Assistive Tool . 17 1.4 Goals . 17 1.5 Contributions . 18 1.6 Technologies for Web Applications . 19 1.7 Thesis Structure . 19 2 Programmer’s Inputs 21 2.1 Use Cases and Requirements Management . 21 2.2 User Interface and API . 23 2.3 Data Structures . 24 2.4 Business Process Diagrams and State Machines . 25 2.5 Algorithms . 25 2.6 Programmer’s Experience . 26 2.7 Conclusion . 26 3 Software Specification and Synthesis: State of the Art 27 3.1 Generics and Templates . 27 3.2 Domain-Specific Languages . 27 3.3 Macros, Decorators and Annotations . 28 3.4 Moldable Tools . 28 3.5 Components and Web Services . 29 3.6 Dependency Injection Containers . 30 3.7 Specification Morphisms . 30 3.8 Graph Rewriting . 30 3.9 Functional Block Programming . 31 3.10 Tensor Flow . 31 3.11 Finite Automata . 31 3.12 Petri Nets and Workflows . 32 3.13 Behavior Trees . 32 3.14 Behavior-Driven Development . 33 3.15 Literate programming . 33 3.16 Intentional Programming . 34 3.17 Aspect-Oriented Programming . 34 3.18 Planning . 35 3.19 Generative Programming . 35 3.20 Evolutionary Programming . 36 5 CONTENTS 3.21 Machine Learning . 36 3.22 Type-Driven Software Synthesis . 37 3.23 Conclusion . 37 4 Computing with the Unknown 39 4.1 Three-valued Logic . 39 4.2 Epistemic Modal Logic . 40 4.3 Set Theory and Kripke Semantics . 40 4.4 Generalizing the Sets . 41 4.5 Relations as Sets . 41 4.6 The Incomplete Solution . 41 4.7 Opening the Closed-World Assumption . 42 4.8 Conclusion . 42 II Models & Specification 43 5 Specifications & Synthesis Overview 45 5.1 Application Architecture . 45 5.2 Knowledge Sources for Development . 46 5.3 Automation . 46 6 State Machine Abstraction Layer 49 6.1 Introduction . 49 6.2 REST Resource as a State Machine . 50 6.3 Real-world Example . 50 6.4 State Machine . 51 6.4.1 Smalldb State Machine Definition . 51 6.4.2 Explanation of Nondeterminism . 52 6.4.3 Simplified Deterministic Definition . 52 6.4.4 Properties and State Function . 53 6.4.5 Input Events . 53 6.4.6 Output Events . 53 6.4.7 Methods . 54 6.4.8 Transitions and Transition Function . 54 6.4.9 Assertion Function . 54 6.5 Space of State Machines . 54 6.5.1 Smalldb and SQL Database . 55 6.6 Spontaneous Transitions . 55 6.7 State Machine Metadata . 56 6.8 Application Correctness . 56 6.8.1 Access Control Verification . 56 6.8.2 Optimizations vs. Understandability . 57 6.8.3 Computational Power of Smalldb Machine . 57 6.8.4 Troubles with Methods M ........................... 57 6.9 Workflow Correctness . 58 6.9.1 State Machine Cooperation . 58 6.9.2 BPMN Diagrams . 58 6.10 Conclusion . 58 6 CONTENTS 7 RESTful Architecture with Smalldb State Machines 59 7.1 Introduction . 59 7.2 REST API for a State Machine . 61 7.3 Architectural and Model Constraints . 62 7.3.1 Declarative formal model . 62 7.3.2 Encapsulated interface . 62 7.3.3 State machine space . 62 7.3.4 Persistent state storage . 63 7.3.5 The initial “Not Exists” state . 63 7.3.6 Addressable transitions . ..
Recommended publications
  • Journal of Applied Logic
    JOURNAL OF APPLIED LOGIC AUTHOR INFORMATION PACK TABLE OF CONTENTS XXX . • Description p.1 • Impact Factor p.1 • Abstracting and Indexing p.1 • Editorial Board p.1 • Guide for Authors p.5 ISSN: 1570-8683 DESCRIPTION . This journal welcomes papers in the areas of logic which can be applied in other disciplines as well as application papers in those disciplines, the unifying theme being logics arising from modelling the human agent. For a list of areas covered see the Editorial Board. The editors keep close contact with the various application areas, with The International Federation of Compuational Logic and with the book series Studies in Logic and Practical Reasoning. Benefits to authors We also provide many author benefits, such as free PDFs, a liberal copyright policy, special discounts on Elsevier publications and much more. Please click here for more information on our author services. Please see our Guide for Authors for information on article submission. This journal has an Open Archive. All published items, including research articles, have unrestricted access and will remain permanently free to read and download 48 months after publication. All papers in the Archive are subject to Elsevier's user license. If you require any further information or help, please visit our Support Center IMPACT FACTOR . 2016: 0.838 © Clarivate Analytics Journal Citation Reports 2017 ABSTRACTING AND INDEXING . Zentralblatt MATH Scopus EDITORIAL BOARD . Executive Editors Dov M. Gabbay, King's College London, London, UK Sarit Kraus, Bar-llan University,
    [Show full text]
  • Fiendish Designs
    Fiendish Designs A Software Engineering Odyssey © Tim Denvir 2011 1 Preface These are notes, incomplete but extensive, for a book which I hope will give a personal view of the first forty years or so of Software Engineering. Whether the book will ever see the light of day, I am not sure. These notes have come, I realise, to be a memoir of my working life in SE. I want to capture not only the evolution of the technical discipline which is software engineering, but also the climate of social practice in the industry, which has changed hugely over time. To what extent, if at all, others will find this interesting, I have very little idea. I mention other, real people by name here and there. If anyone prefers me not to refer to them, or wishes to offer corrections on any item, they can email me (see Contact on Home Page). Introduction Everybody today encounters computers. There are computers inside petrol pumps, in cash tills, behind the dashboard instruments in modern cars, and in libraries, doctors’ surgeries and beside the dentist’s chair. A large proportion of people have personal computers in their homes and may use them at work, without having to be specialists in computing. Most people have at least some idea that computers contain software, lists of instructions which drive the computer and enable it to perform different tasks. The term “software engineering” wasn’t coined until 1968, at a NATO-funded conference, but the activity that it stands for had been carried out for at least ten years before that.
    [Show full text]
  • PDF (Dissertation.Pdf)
    Kind Theory Thesis by Joseph R. Kiniry In Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy California Institute of Technology Pasadena, California 2002 (Defended 10 May 2002) ii © 2002 Joseph R. Kiniry All Rights Reserved iii Preface This thesis describes a theory for representing, manipulating, and reasoning about structured pieces of knowledge in open collaborative systems. The theory's design is motivated by both its general model as well as its target user commu- nity. Its model is structured information, with emphasis on classification, relative structure, equivalence, and interpretation. Its user community is meant to be non-mathematicians and non-computer scientists that might use the theory via computational tool support once inte- grated with modern design and development tools. This thesis discusses a new logic called kind theory that meets these challenges. The core of the work is based in logic, type theory, and universal algebras. The theory is shown to be efficiently implementable, and several parts of a full realization have already been constructed and are reviewed. Additionally, several software engineering concepts, tools, and technologies have been con- structed that take advantage of this theoretical framework. These constructs are discussed as well, from the perspectives of general software engineering and applied formal methods. iv Acknowledgements I am grateful to my initial primary adviser, Prof. K. Mani Chandy, for bringing me to Caltech and his willingness to let me explore many unfamiliar research fields of my own choosing. I am also appreciative of my second adviser, Prof. Jason Hickey, for his support, encouragement, feedback, and patience through the later years of my work.
    [Show full text]
  • On a New Notion of Partial Refinement
    On a New Notion of Partial Refinement Emil Sekerinski Tian Zhang McMaster University McMaster University Hamilton, Canada Hamilton, Canada [email protected] [email protected] Formal specification techniques allow expressing idealized specifications, which abstract from re- strictions that may arise in implementations. However, partial implementations are universal in soft- ware development due to practical limitations. Our goal is to contribute to a method of program refinement that allows for partial implementations. For programs with a normal and an exceptional exit, we propose a new notion of partial refinement which allows an implementation to terminate ex- ceptionally if the desired results cannot be achieved, provided the initial state is maintained. Partial refinement leads to a systematic method of developing programs with exception handling. 1 Introduction In software development, specifications are meant to be concise by stating abstractly only the intention of a program rather than elaborating on a possible implementation. However, practical restrictions can prevent idealized specifications from being fully implemented. In general, there are three sources of partiality in implementations: there may be inherent limitations of the implementation, some features may intentionally not (yet) be implemented, or there may be a genuine fault. As an example of inherent limitations of an implementation, consider a class for the analysis of a collection of integers. The operations are initialization, inserting an integer, and summing all its elements. Assume that int is a type for machine-representable integers, bounded by MIN and MAX, and machine arithmetic is bounded, i.e. an overflow caused by arithmetic operations on int is detected and raises an exception, as available in x86 assembly language [11] and .NET [20].
    [Show full text]
  • Lecture Notes in Computer Science 5014 Commenced Publication in 1973 Founding and Former Series Editors: Gerhard Goos, Juris Hartmanis, and Jan Van Leeuwen
    Lecture Notes in Computer Science 5014 Commenced Publication in 1973 Founding and Former Series Editors: Gerhard Goos, Juris Hartmanis, and Jan van Leeuwen Editorial Board David Hutchison Lancaster University, UK Takeo Kanade Carnegie Mellon University, Pittsburgh, PA, USA Josef Kittler University of Surrey, Guildford, UK Jon M. Kleinberg Cornell University, Ithaca, NY, USA Alfred Kobsa University of California, Irvine, CA, USA Friedemann Mattern ETH Zurich, Switzerland John C. Mitchell Stanford University, CA, USA Moni Naor Weizmann Institute of Science, Rehovot, Israel Oscar Nierstrasz University of Bern, Switzerland C. Pandu Rangan Indian Institute of Technology, Madras, India Bernhard Steffen University of Dortmund, Germany Madhu Sudan Massachusetts Institute of Technology, MA, USA Demetri Terzopoulos University of California, Los Angeles, CA, USA Doug Tygar University of California, Berkeley, CA, USA Gerhard Weikum Max-Planck Institute of Computer Science, Saarbruecken, Germany Jorge Cuellar Tom Maibaum Kaisa Sere (Eds.) FM 2008: Formal Methods 15th International Symposium on Formal Methods Turku, Finland, May 26-30, 2008 Proceedings 13 Volume Editors Jorge Cuellar Siemens Corporate Technology Otto-Hahn-Ring 6 81730 München, Germany E-mail: [email protected] Tom Maibaum McMaster University Software Quality Research Laboratory and Department of Computing and Software 1280 Main St West, Hamilton, ON L8S 4K1, Canada E-mail: [email protected] Kaisa Sere Åbo Akademi University Department of Information Technology 20520 Turku, Finland E-mail: kaisa.sere@abo.fi Library of Congress Control Number: 2008927062 CR Subject Classification (1998): D.2, F.3, D.3, D.1, J.1, K.6, F.4 LNCS Sublibrary: SL 2 – Programming and Software Engineering ISSN 0302-9743 ISBN-10 3-540-68235-X Springer Berlin Heidelberg New York ISBN-13 978-3-540-68235-6 Springer Berlin Heidelberg New York This work is subject to copyright.
    [Show full text]
  • FM'99 - Formal Methods
    Lecture Notes in Computer Science 1708 FM'99 - Formal Methods World Congress on Formal Methods in the Developement of Computing Systems, Toulouse, France, September 20-24, 1999, Proceedings, Volume I Bearbeitet von Jeannette M. Wing, Jim Woodcook, Jim Davies 1. Auflage 1999. Taschenbuch. xxxvi, 940 S. Paperback ISBN 978 3 540 66587 8 Format (B x L): 15,5 x 23,5 cm Gewicht: 1427 g Weitere Fachgebiete > Technik > Technik Allgemein > Computeranwendungen in der Technik Zu Inhaltsverzeichnis schnell und portofrei erhältlich bei Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft. Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programm durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr als 8 Millionen Produkte. Preface Formal methods are coming of age. Mathematical techniques and tools are now regarded as an important part of the development process in a wide range of industrial and governmental organisations. A transfer of technology into the mainstream of systems development is slowly, but surely, taking place. FM'99, the First World Congress on Formal Methods in the Development of Computing Systems, is a result, and a measure, of this new-found maturity. It brings an impressive array of industrial and applications-oriented papers that show how formal methods have been used to tackle real problems. These proceedings are a record of the technical symposium of FM'99 :along- side the papers describing applications of formal methods, you will find technical reports, papers, and abstracts detailing new advances in formal techniques, from mathematical foundations to practical tools.
    [Show full text]
  • On Software Certification: We Need Product-Focused Approaches
    On Software Certification: We Need Product-Focused Approaches Alan Wassyng, Tom Maibaum, and Mark Lawford Software Quality Research Laboratory Department of Computing and Software McMaster University, Hamilton, Canada L8S 4K1 [email protected], [email protected], [email protected] Abstract. In this paper we begin by examining the “certification” of a consumer product, a baby walker, that is product-focused, i.e., the certifi- cation process requires the performance of precisely defined tests on the product with measurable outcomes. We then review current practices in software certification and contrast the software regime’s process-oriented approach to certification with the product-oriented approach typically used in other engineering disciplines. We make the case that product- focused certification is required to produce reliable software intensive systems. These techniques will have to be domain and even product specific to succeed. 1 Introduction This paper deals briefly with the current state of software certification, why it is generally ill-conceived and some reasons for how (and why) we landed in this mess, and suggestions for improving the situation. 2 Motivation A certification story: Let us start the discussion with an item that has little to do with software, but is typical of engineered artifacts - a baby walker. Consider a typical baby walker, as shown in Figure 1. In recent years, there has been considerable concern regarding the safety and effectiveness of baby walkers. In reaction to this concern, we can now consider a certification process we may wish to advocate in order that we may regulate the sale of particular baby walkers. So, what should be the overall thrust of such a certification process? Well, humbly we may suggest that we model the process on certification processes that are common in our domain (software).
    [Show full text]
  • Self-Enforcing Automatic Rational Contracts Between Computers
    UCAM-CL-TR-600 Technical Report ISSN 1476-2986 Number 600 Computer Laboratory Trust for resource control: Self-enforcing automatic rational contracts between computers Brian Ninham Shand August 2004 15 JJ Thomson Avenue Cambridge CB3 0FD United Kingdom phone +44 1223 763500 http://www.cl.cam.ac.uk/ c 2004 Brian Ninham Shand This technical report is based on a dissertation submitted February 2004 by the author for the degree of Doctor of Philosophy to the University of Cambridge, Jesus College. This research was supported by ICL, now part of Fujitsu, through the Computer Laboratory’s ICL studentship, and by the Overseas Research Students award scheme, the Cambridge Commonwealth Trust, and the SECURE EU consortium. Technical reports published by the University of Cambridge Computer Laboratory are freely available via the Internet: http://www.cl.cam.ac.uk/TechReports/ ISSN 1476-2986 Abstract Computer systems need to control access to their resources, in order to give precedence to urgent or important tasks. This is increasingly important in networked applications, which need to interact with other machines but may be subject to abuse unless protected from attack. To do this effectively, they need an explicit resource model, and a way to assess others’ actions in terms of it. This dissertation shows how the actions can be represented using resource- based computational contracts, together with a rich trust model which monitors and enforces contract compliance. Related research in the area has focused on individual aspects of this problem, such as resource pricing and auctions, trust modelling and reputation systems, or resource-constrained computing and resource-aware middleware.
    [Show full text]
  • Search-Based Model Transformations
    Die approbierte Originalversion dieser Dissertation ist in der Hauptbibliothek der Technischen Universität Wien aufgestellt und zugänglich. http://www.ub.tuwien.ac.at The approved original version of this thesis is available at the main library of the Vienna University of Technology. http://www.ub.tuwien.ac.at/eng Search-Based Model Transformations DISSERTATION zur Erlangung des akademischen Grades Doktor der Technischen Wissenschaften eingereicht von Martin Fleck, MSc Matrikelnummer 1248308 an der Fakultät für Informatik der Technischen Universität Wien Betreuung: Priv.-Doz. Mag. Dr. Manuel Wimmer Diese Dissertation haben begutachtet: Gerti Kappel Marouane Kessentini Wien, 20. April 2016 Martin Fleck Technische Universität Wien A-1040 Wien Karlsplatz 13 Tel. +43-1-58801-0 www.tuwien.ac.at Search-Based Model Transformations DISSERTATION submitted in partial fulfillment of the requirements for the degree of Doktor der Technischen Wissenschaften by Martin Fleck, MSc Registration Number 1248308 to the Faculty of Informatics at the TU Wien Advisor: Priv.-Doz. Mag. Dr. Manuel Wimmer The dissertation has been reviewed by: Gerti Kappel Marouane Kessentini Vienna, 20th April, 2016 Martin Fleck Technische Universität Wien A-1040 Wien Karlsplatz 13 Tel. +43-1-58801-0 www.tuwien.ac.at Erklärung zur Verfassung der Arbeit Martin Fleck, MSc Barawitzkagasse 34/4/50 1190 Wien Österreich Hiermit erkläre ich, dass ich diese Arbeit selbständig verfasst habe, dass ich die verwen- deten Quellen und Hilfsmittel vollständig angegeben habe und dass ich die Stellen der Arbeit – einschließlich Tabellen, Karten und Abbildungen –, die anderen Werken oder dem Internet im Wortlaut oder dem Sinn nach entnommen sind, auf jeden Fall unter Angabe der Quelle als Entlehnung kenntlich gemacht habe.
    [Show full text]
  • Foundations of Algebraic Specification and Formal Software Development
    Donald Sannella and Andrzej Tarlecki Foundations of Algebraic Specification and Formal Software Development September 29, 2010 Springer Page: v job: root macro: svmono.cls date/time: 29-Sep-2010/17:47 Page: xiv job: root macro: svmono.cls date/time: 29-Sep-2010/17:47 Contents 0 Introduction .................................................... 1 0.1 Modelling software systems as algebras . 1 0.2 Specifications . 5 0.3 Software development . 8 0.4 Generality and abstraction . 10 0.5 Formality . 12 0.6 Outlook . 14 1 Universal algebra .............................................. 15 1.1 Many-sorted sets . 15 1.2 Signatures and algebras . 18 1.3 Homomorphisms and congruences . 22 1.4 Term algebras . 27 1.5 Changing signatures . 32 1.5.1 Signature morphisms . 32 1.5.2 Derived signature morphisms . 36 1.6 Bibliographical remarks . 38 2 Simple equational specifications ................................. 41 2.1 Equations . 41 2.2 Flat specifications . 44 2.3 Theories . 50 2.4 Equational calculus . 54 2.5 Initial models . 58 2.6 Term rewriting . 66 2.7 Fiddling with the definitions . 72 2.7.1 Conditional equations . 72 2.7.2 Reachable semantics . 74 2.7.3 Dealing with partial functions: error algebras . 78 2.7.4 Dealing with partial functions: partial algebras . 84 2.7.5 Partial functions: order-sorted algebras . 87 xv xvi Contents 2.7.6 Other options . 91 2.8 Bibliographical remarks . 93 3 Category theory................................................ 97 3.1 Introducing categories. 99 3.1.1 Categories . 99 3.1.2 Constructing categories . 105 3.1.3 Category-theoretic definitions . 109 3.2 Limits and colimits . 111 3.2.1 Initial and terminal objects .
    [Show full text]
  • Full List of DIRC Publications
    DIRC Dependability of Computer-Based Systems List of Publications and Reports January 15, 2007 This document lists known citations to publications and Technical Reports for the first five years of DIRC. It was generated by simply listing everything in the full BibTeX file so there are some multiple entries where the same text appeared in two places (e.g. Newcastle produce Technical Reports on submission to a journal). Furthermore, although reasonable efforts were made, we suspect that the list is incomplete (currently there are 546 entries on this list). 1 Publications Arranged by Site 1.1 NEWCASTLE [dLGR04, BR04a, BKR05a, BKR04, SBM04, BR04b, DJP+02a, BGB04, BG03a, DdC03, BB03b, BA04, GA04, Jon03f, JHR04, JR05, Jon03b, Jon03c, HJJ03a, JR04, CJJ04, AB03, ABGR02, AGL01, Bes01, BC01, BA03, BG02, BG03b, BL01, CB02, DJP+02b, GLA01, GLA02, LG02, HJJ03b, Jon00a, Jon00b, Jon01, Jon03d, Jon03a, CJ00, JRW02, JPRW03, Jon03e, LJ02, SO02, GIJ+03, Ran00, BR03a, BR03b, dLGR02a, dLGR02b, dLGR03b, dLGR03a, dLGR03c, Gac01, Gac02, GA02, BKR05b] 1.2 LANCASTER [S+03, ADH+04, CHR+03a, PR01, CHR01, DJP+02a, RHR04, CFR04b, CHRT02, CHRT01, CFDR02, DRSS03, CFDR03, CHR+03b, CDFR03, CFR04a, WKR04b, WKRR04a, WKRR04b, WKR04a, CFGR04, Loc04, ML03, SDCR05, DCR+04, DSBJ03, KCC+02a, BD04a, BDS04, DCRS04, DRSC04, BD04b, MMR04, DCR03, DE03, DTE01a, DTW01, DTE01c, DTE01b, ABGR02, CCD+02, CCH+01a, CDFR02, CFPR01, CDH+02, CHPR01d, CHPR01a, CHPR01b, CHPR01c, CHHR03, CRH+02, CHP+02b, Dew01, DCH+03a, DE01, DCH+02, DCRS02, DCH+03b, DE00, DTE02, DJP+02b, ETDG00, HPRR01, HPRS02, HPRS00,
    [Show full text]
  • Verification of Concurrent Programs with Chalice
    Verification of Concurrent Programs with Chalice K. Rustan M. Leino 0 , Peter Müller 1 , and Jan Smans 2 0 Microsoft Research, Redmond, WA, USA, [email protected] 1 ETH Zurich, Switzerland, [email protected] 2 KU Leuven, Belgium, [email protected] Manuscript KRML 197, 17 June 2009. Abstract. A program verifier is a tool that allows developers to prove that their code satisfies its specification for every possible input and every thread schedule. These lecture notes describe a verifier for concurrent programs called Chalice. Chalice’s verification methodology centers around permissions and permission transfer. In particular, a memory location may be accessed by a thread only if that thread has permission to do so. Proper use of permissions allows Chalice to de- duce upper bounds on the set of locations modifiable by a method and guarantees the absence of data races for concurrent programs. The lecture notes informally explain how Chalice works through various examples. 0 Introduction Writing correct sequential programs is hard. The correctness of a program typically re- lies on many implicit assumptions. For example, a developer may assume that a certain variable lies within the bounds of an array, that a parameter is non-null, that a method will not modify the contents of a certain memory location, or that operations on a given data structure follow some particular protocol. However, it is difficult for developers to see whether their assumptions are correct and, as a consequence, it is difficult to write correct programs. Writing correct concurrent programs is even harder because of data races, dead- locks, and potential interference among threads.
    [Show full text]