Managing Logical and Computational Complexity Using Program Transformations Nicolas Tabareau

Total Page:16

File Type:pdf, Size:1020Kb

Managing Logical and Computational Complexity Using Program Transformations Nicolas Tabareau Managing Logical and Computational Complexity using Program Transformations Nicolas Tabareau To cite this version: Nicolas Tabareau. Managing Logical and Computational Complexity using Program Transformations. Category Theory [math.CT]. université de nantes, 2016. tel-01406351 HAL Id: tel-01406351 https://tel.archives-ouvertes.fr/tel-01406351 Submitted on 1 Dec 2016 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. Ecole´ Doctorale STIM UMR CNRS 6241 LINA Habilitation a` Diriger les Recherches Managing Logical and Computational Complexity using Program Transformations Rendre Compte de la Complexit´eLogique et Calculatoire `atravers des Transformations de Programmes pr´esent´eeet soutenue publiquement par Nicolas Tabareau le 24 novembre 2016 devant le jury compos´ede Thierry Coquand G¨oteborg University (examinateur) Hugo Herbelin Inria Paris (rapporteur) Daniel Hirschkoff Ens Lyon (rapporteur) Claude Jard Universit´ede Nantes (examinateur) Alan Schmitt Inria Rennes Bretagne Atlantique (rapporteur) Table of Contents Remerciementsv Introduction (en fran¸cais)1 Une Introspection R´etrospective..........................1 Ma Future Ligne de Recherche...........................4 1 Looking Back into the Future 17 1.1 A Retrospective Introspection......................... 17 1.2 Future Line of Reasearch........................... 20 2 Call-by-Name Forcing in Type Theory 31 2.1 Call-by-Push-Value............................... 33 2.2 Forcing Translation in the Negative Fragment................ 37 2.3 Yoneda to the Rescue............................. 40 2.4 Datatypes.................................... 42 2.5 Recursive Types................................ 43 2.6 Forcing at Work: Consistency Results.................... 47 2.7 Future Work.................................. 50 3 Chemical Foundations of Distributed Aspects 51 3.1 The distributed objective join calculus.................... 53 3.2 The aspect join calculus............................ 59 3.3 From the aspect join calculus to the join calculus.............. 66 3.4 Aspect JoCaml................................. 73 3.5 Discussion.................................... 76 3.6 Related work.................................. 77 4 Partial Type Equivalences for Verified Dependent Interoperability 81 4.1 Partial Type Equivalences........................... 85 4.2 Partial Type Equivalence for Dependent Interoperability.......... 89 4.3 Higher-Order Partial Type Equivalence................... 93 4.4 A Certified, Interoperable Stack Machine.................. 96 4.5 Related Work.................................. 101 4.6 Future Work.................................. 104 Appendix 107 Publications of the author 111 Bibliography 113 Remerciements Mains aux fleurs, Picasso (1958) Je voulais dire merci aux membres du jury. Qu'ils sachent que je suis tr`eshonor´ede leur pr´esence `ama soutenance. Je voulais dire merci `ames coll`egues, co-auteurs, ´etudiants ou post-docs, pour ces moments de partage et d'envol´ees scientifiques qui font de ce m´etier toute sa sp´ecificit´e. Je voulais dire merci `ames filles, pour leur spontan´eit´equi fait oublier en un clin d'œil toute contrari´et´e. Je voulais dire merci `ama princesse, pour sa fra^ıcheur toujours pr´esente apr`es ces 17 ann´ees qui nous unient. Introduction Le saut dans le vide, Klein (1960) Contents Une Introspection R´etrospective....................1 Aper¸cu du Reste du Manuscrit.......................4 Ma Future Ligne de Recherche.....................4 Objectifs pour les cinq prochaines ann´ees.................7 M´ethodologie................................. 11 Une Introspection R´etrospective Remarque 1 Bien que le reste de ce manuscrit soit ´ecrit de mani`ere conventionnelle, cette section est ´ecrite `ala premi`ere personne pour souligner le fait qu'elle d´eveloppe un point de vue personnel. La S´emantique de la Compilation. Durant mon stage au sein de Microsoft Research `aCambridge en 2007, j'ai commenc´e`a´etudier la s´emantique de la compilation des langages de programmation [BT09] sous la d´elicieuse supervision de Nick Benton. Mes int´er^ets scientifiques de l'´epoque portaient principalement sur la s´emantique d´enotationelle des langages de programmation, mais j'ai alors commenc´e`ar´ealiser1 que la compilation|ou plut^otla traduction|d'un programme ´ecrit dans un langage complexe de haut niveau vers un langage plus simple ´etait un moyen tr`es primitif et efficace pour donner un sens au programme complexe. 1J'ai aussi commenc´e`ar´ealiser que j'aimais beaucoup l'assistant de preuve Coq [CDT15], ce qui devrait ^etre clair `ala lecture du reste de ce manuscrit. 2 Introduction La Programmation par Aspects. Cette remarque m'a poursuivi alors que je com- men¸cais `a´etudier la s´emantique de la programmation par aspects lors de mon arriv´ee dans l'´equipe Ascola (Aspects Components Languages) en 2009. La programmation par aspects [KLM+97] est un paradigme de programmation qui a pour but d'accro^ıtre la modularit´edu code en permettant la s´eparation des propri´et´es transverses. Nous ap- pelons propri´et´etransverse une propri´et´equi ne peut pas ^etre d´efinie en utilisant les m´ecanismes de modularit´eclassiques, comme par exemple les classes, les modules ou les composants. Le calcul de la trace d'un programme ou les probl´ematiques de s´ecurit´e forment deux exemples de propri´et´estransverses, et sont donc sujettes `a´eparpillement et intrication. L'id´eede la programmation par aspects est de ramener toutes les parties du code qui traitent d'une propri´et´etransverse dans un m^eme endroit du programme, `a travers l'utilisation d'un nouveau type de module, appel´eun aspect. Les deux principaux constituants d'un aspect sont les coupes (pointcuts en anglais) et les advices2 Une coupe s´electionne les points d'ex´ecution d'int´er^etdu programme de base, par exemple, les appels de m´ethode dans le cas du calcul de trace. Un advice d´efinit ce qui doit ^etre fait lorsqu'un point d'ex´ecution est s´electionn´e,typiquement l'affichage d'un message avant et/ou apr`es un appel dans le cas de l'affichage de la trace d'un programme. Le processus qui consiste `acomposer des aspects avec un programme de base, afin d'obtenir une impl´ementation concr`ete du programme tel qu'il aurait ´et´e´ecrit sans aspect, s'appelle le tissage. Mon premier travail sur la s´emantique d'un calcul distribu´eavec aspects [Tab10] a ´et´eobtenu en traduisant ce calcul vers le \join calculus" [FG96a], consid´erant ainsi le tissage comme une transformation de programme. J'ai ensuite ´etudi´ela s´emantique de la programmation par aspects pour des langages fonctionnels [Tab11, Tab12], `ala lumi`ere de la traduction monadique, qui constitue une transformation de programme bien connue dans le cadre de la programmation fonctionnelle. Les monades [Mog91] fournissent un m´ecanisme pour embarquer et raisonner sur des effets comme les ´etats m´emoires, les entr´ees/sorties ou la gestion des exceptions, et ce dans un cadre purement fonctionnel comme dans Haskell. D´efinir de la s´emantique d'un langage fonctionnel avec aspects en utilisant une monade permet d'^etre modulaire sur les diff´erentes s´emantiques possibles des aspects (i.e., le d´eploiement d'aspects, la gestion des interf´erences entre aspects), et permet aussi une impl´ementation directe dans le langage, comme nous l'avons montr´esur Haskell [TFT13, FTT14b, FSTT14]. En utilisant des id´ees venant de la notion de port´eepour les aspects, j'ai d´evelopp´e, avec Ismael Figueroa et Eric´ Tanter, une d´efinition monadique de la notion de capacit´espour les effets [FTT14a, FTT15] dans Haskell, capacit´es qui permettent d'imposer certaines politiques de s´ecurit´esur les effets qui sont utilis´esdans un programme Haskell. En plus du cadre monadique, ce travail utilise crucialement le m´ecanisme de type classes de Haskell pour d´ecider statiquement du niveau de permission en se basant sur une impl´ementation du treillis des permissions avec des type classes. Le Forcing en Th´eorie des Types. Entre temps, j'utilisais de plus en plus Coq pour formaliser certaines parties des preuves que je faisais sur papier. Cela me fit prendre con- science que m^eme si la th´eorie des types (ou plus pr´ecis´ement le Calcul des Constructions Inductives, la th´eorie derri`ere Coq) est d´ej`atr`esexpressive, il manque cruellement la possibilit´ed'augmenter son contenu logique ou calculatoire facilement. Cela m'a amen´e`a d´evelopper avec Guilhem Jaber et Matthieu Sozeau une version du forcing pour la th´eorie des types [JTS12]. Le forcing est une m´ethode originellement d´evelopp´ee par Paul Co- hen pour prouver l'ind´ependance de l'hypoth`ese du continu avec la th´eorie des ensembles 2Je me permets cette francisation maladroite du terme \advice" utilis´edans la programmation par aspects qui constitue d´ej`aune utilisation lib´erale du terme anglais. Introduction 3 ZFC [Coh66]. L'id´ee principale est d'ajouter de nouveaux ´el´ements `ala th´eorie qui peu- vent ^etre approxim´es dans le syst`emeinitial, en utilisant ce qu'on appelle des conditions de forcing. Pour adapter cette id´ee`ala th´eorie des types, plut^otque d'utiliser l'approche habituelle du forcing `atravers la th´eorie des ensembles, nous avons utilis´esa reformulation en terme de th´eorie des cat´egories que Bill Lawvere et Myles Tierney [Tie72] ont d´evelopp´e en utilisant le topos des faisceaux. R´ecemment, les travaux de Jean-Louis Krivine [Kri11] et Alexandre Miquel [Miq11a] ont montr´eque les techniques li´ees au forcing sont d'un grand int´er^etpour l'extension de l'isomorphisme de Curry-Howard.
Recommended publications
  • Linear Type Theory for Asynchronous Session Types
    JFP 20 (1): 19–50, 2010. c Cambridge University Press 2009 19 ! doi:10.1017/S0956796809990268 First published online 8 December 2009 Linear type theory for asynchronous session types SIMON J. GAY Department of Computing Science, University of Glasgow, Glasgow G12 8QQ, UK (e-mail: [email protected]) VASCO T. VASCONCELOS Departamento de Informatica,´ Faculdade de Ciencias,ˆ Universidade de Lisboa, 1749-016 Lisboa, Portugal (e-mail: [email protected]) Abstract Session types support a type-theoretic formulation of structured patterns of communication, so that the communication behaviour of agents in a distributed system can be verified by static typechecking. Applications include network protocols, business processes and operating system services. In this paper we define a multithreaded functional language with session types, which unifies, simplifies and extends previous work. There are four main contributions. First is an operational semantics with buffered channels, instead of the synchronous communication of previous work. Second, we prove that the session type of a channel gives an upper bound on the necessary size of the buffer. Third, session types are manipulated by means of the standard structures of a linear type theory, rather than by means of new forms of typing judgement. Fourth, a notion of subtyping, including the standard subtyping relation for session types (imported into the functional setting), and a novel form of subtyping between standard and linear function types, which allows the typechecker to handle linear types conveniently. Our new approach significantly simplifies session types in the functional setting, clarifies their essential features and provides a secure foundation for language developments such as polymorphism and object-orientation.
    [Show full text]
  • A General Framework for the Semantics of Type Theory
    A General Framework for the Semantics of Type Theory Taichi Uemura November 14, 2019 Abstract We propose an abstract notion of a type theory to unify the semantics of various type theories including Martin-L¨oftype theory, two-level type theory and cubical type theory. We establish basic results in the semantics of type theory: every type theory has a bi-initial model; every model of a type theory has its internal language; the category of theories over a type theory is bi-equivalent to a full sub-2-category of the 2-category of models of the type theory. 1 Introduction One of the key steps in the semantics of type theory and logic is to estab- lish a correspondence between theories and models. Every theory generates a model called its syntactic model, and every model has a theory called its internal language. Classical examples are: simply typed λ-calculi and cartesian closed categories (Lambek and Scott 1986); extensional Martin-L¨oftheories and locally cartesian closed categories (Seely 1984); first-order theories and hyperdoctrines (Seely 1983); higher-order theories and elementary toposes (Lambek and Scott 1986). Recently, homotopy type theory (The Univalent Foundations Program 2013) is expected to provide an internal language for what should be called \el- ementary (1; 1)-toposes". As a first step, Kapulkin and Szumio (2019) showed that there is an equivalence between dependent type theories with intensional identity types and finitely complete (1; 1)-categories. As there exist correspondences between theories and models for almost all arXiv:1904.04097v2 [math.CT] 13 Nov 2019 type theories and logics, it is natural to ask if one can define a general notion of a type theory or logic and establish correspondences between theories and models uniformly.
    [Show full text]
  • A Type and Scope Safe Universe of Syntaxes with Binding: Their Semantics and Proofs
    ZU064-05-FPR jfp19 26 March 2020 16:6 Under consideration for publication in J. Functional Programming 1 A Type and Scope Safe Universe of Syntaxes with Binding: Their Semantics and Proofs GUILLAUME ALLAIS, ROBERT ATKEY University of Strathclyde (UK) JAMES CHAPMAN Input Output HK Ltd. (HK) CONOR MCBRIDE University of Strathclyde (UK) JAMES MCKINNA University of Edinburgh (UK) Abstract Almost every programming language’s syntax includes a notion of binder and corresponding bound occurrences, along with the accompanying notions of α-equivalence, capture-avoiding substitution, typing contexts, runtime environments, and so on. In the past, implementing and reasoning about programming languages required careful handling to maintain the correct behaviour of bound variables. Modern programming languages include features that enable constraints like scope safety to be expressed in types. Nevertheless, the programmer is still forced to write the same boilerplate over again for each new implementation of a scope safe operation (e.g., renaming, substitution, desugaring, printing, etc.), and then again for correctness proofs. We present1 an expressive universe of syntaxes with binding and demonstrate how to (1) implement scope safe traversals once and for all by generic programming; and (2) how to derive properties of these traversals by generic proving. Our universe description, generic traversals and proofs, and our examples have all been formalised in Agda and are available in the accompanying material available online at https://github.com/gallais/generic-syntax. 1 Introduction In modern typed programming languages, programmers writing embedded DSLs (Hudak (1996)) and researchers formalising them can now use the host language’s type system to help them.
    [Show full text]
  • Agda User Manual Release 2.6.3
    Agda User Manual Release 2.6.3 The Agda Team Sep 23, 2021 Contents 1 Overview 3 2 Getting Started 5 2.1 What is Agda?..............................................5 2.2 Installation................................................7 2.3 ‘Hello world’ in Agda.......................................... 13 2.4 A Taste of Agda............................................. 14 2.5 A List of Tutorials............................................ 22 3 Language Reference 25 3.1 Abstract definitions............................................ 25 3.2 Built-ins................................................. 27 3.3 Coinduction............................................... 40 3.4 Copatterns................................................ 42 3.5 Core language.............................................. 45 3.6 Coverage Checking............................................ 48 3.7 Cubical.................................................. 51 3.8 Cumulativity............................................... 65 3.9 Data Types................................................ 66 3.10 Flat Modality............................................... 69 3.11 Foreign Function Interface........................................ 70 3.12 Function Definitions........................................... 75 3.13 Function Types.............................................. 78 3.14 Generalization of Declared Variables.................................. 79 3.15 Guarded Cubical............................................. 84 3.16 Implicit Arguments...........................................
    [Show full text]
  • Dependable Atomicity in Type Theory
    Dependable Atomicity in Type Theory Andreas Nuyts1 and Dominique Devriese2 1 imec-DistriNet, KU Leuven, Belgium 2 Vrije Universiteit Brussel, Belgium Presheaf semantics [Hof97, HS97] are an excellent tool for modelling relational preservation prop- erties of (dependent) type theory. They have been applied to parametricity (which is about preservation of relations) [AGJ14], univalent type theory (which is about preservation of equiv- alences) [BCH14, Hub15], directed type theory (which is about preservation of morphisms) and even combinations thereof [RS17, CH19]. Of course, after going through the endeavour of con- structing a presheaf model of type theory, we want type-theoretic profit, i.e. we want internal operations that allow us to write cheap proofs of the `free' theorems [Wad89] that follow from the preservation property concerned. While the models for univalence, parametricity and directed type theory are all just cases of presheaf categories, approaches to internalize their results do not have an obvious common ances- tor (neither historically nor mathematically). Cohen et al. [CCHM16] have used the final type extension operator Glue to prove univalence. In previous work with Vezzosi [NVD17], we used Glue and its dual, the initial type extension operator Weld, to internalize parametricity to some extent. Before, Bernardy, Coquand and Moulin [BCM15, Mou16] have internalized parametricity using completely different `boundary filling’ operators Ψ (for extending types) and Φ (for extending func- tions). Unfortunately, Ψ and Φ have so far only been proven sound with respect to substructural (affine-like) variables of representable types (such as the relational or homotopy interval I). More 1 recently, Licata et al. [LOPS18] have exploited the fact that the homotopyp interval I is atomic | meaning that the exponential functor (I ! xy) has a right adjoint | in order to construct a universe of Kan-fibrant types from a vanilla Hofmann-Streicher universe [HS97] internally.
    [Show full text]
  • Martin-Löf's Type Theory
    Martin-L¨of’s Type Theory B. Nordstr¨om, K. Petersson and J. M. Smith 1 Contents 1 Introduction . 1 1.1 Different formulations of type theory . 3 1.2 Implementations . 4 2 Propositions as sets . 4 3 Semantics and formal rules . 7 3.1 Types . 7 3.2 Hypothetical judgements . 9 3.3 Function types . 12 3.4 The type Set .......................... 14 3.5 Definitions . 15 4 Propositional logic . 16 5 Set theory . 20 5.1 The set of Boolean values . 21 5.2 The empty set . 21 5.3 The set of natural numbers . 22 5.4 The set of functions (Cartesian product of a family of sets) 24 5.5 Propositional equality . 27 5.6 The set of lists . 29 5.7 Disjoint union of two sets . 29 5.8 Disjoint union of a family of sets . 30 5.9 The set of small sets . 31 6 ALF, an interactive editor for type theory . 33 1 Introduction The type theory described in this chapter has been developed by Martin-L¨of with the original aim of being a clarification of constructive mathematics. Unlike most other formalizations of mathematics, type theory is not based on predicate logic. Instead, the logical constants are interpreted within type 1This is a chapter from Handbook of Logic in Computer Science, Vol 5, Oxford University Press, October 2000 1 2 B. Nordstr¨om,K. Petersson and J. M. Smith theory through the Curry-Howard correspondence between propositions and sets [10, 22]: a proposition is interpreted as a set whose elements represent the proofs of the proposition.
    [Show full text]
  • Personality Type Effects on Perceptions of Online Credit Card Payment Services Steven Walczak1 and Gary L
    Journal of Theoretical and Applied Electronic Commerce Research This paper is available online at ISSN 0718–1876 Electronic Version www.jtaer.com VOL 11 / ISSUE 1 / JANUARY 2016 / 67-83 DOI: 10.4067/S0718-18762016000100005 © 2016 Universidad de Talca - Chile Personality Type Effects on Perceptions of Online Credit Card Payment Services Steven Walczak1 and Gary L. Borkan2 1 University of South Florida, School of Information, Tampa, FL, USA, [email protected] 2 Auraria Higher Education, Information Technology Department, Denver, CO, USA, [email protected] Received 22 September 2014; received in revised form 13 May 2015; accepted 18 May 2015 Abstract Credit cards and the subsequent payment of credit card debt play a crucial role in e-commerce transactions. While website design effects on trust and e-commerce have been studied, these are usually coarse grained models. A more individualized approach to utilization of online credit card payment services is examined that utilizes personality as measured by the Myers-Briggs personality type assessment to determine variances in perception of online payment service features. The results indicate that certain overriding principles appear to be largely universal, namely security and efficiency (or timeliness) of the payment system. However there are differences in the perceived benefit of these features and other features between personality types, which may be capitalized upon by payment service providers to attract a broader base of consumers and maintain continuance of existing users. Keywords: Credit-card, Electronic commerce, Myers-Briggs, Payment portals, Personality, Portal features 67 Personality Type Effects on Perceptions of Online Credit Card Payment Services Steven Walczak Gary L.
    [Show full text]
  • Current Issue of FACS FACTS
    Issue 2021-2 July 2021 FACS A C T S The Newsletter of the Formal Aspects of Computing Science (FACS) Specialist Group ISSN 0950-1231 FACS FACTS Issue 2021-2 July 2021 About FACS FACTS FACS FACTS (ISSN: 0950-1231) is the newsletter of the BCS Specialist Group on Formal Aspects of Computing Science (FACS). FACS FACTS is distributed in electronic form to all FACS members. Submissions to FACS FACTS are always welcome. Please visit the newsletter area of the BCS FACS website for further details at: https://www.bcs.org/membership/member-communities/facs-formal-aspects- of-computing-science-group/newsletters/ Back issues of FACS FACTS are available for download from: https://www.bcs.org/membership/member-communities/facs-formal-aspects- of-computing-science-group/newsletters/back-issues-of-facs-facts/ The FACS FACTS Team Newsletter Editors Tim Denvir [email protected] Brian Monahan [email protected] Editorial Team: Jonathan Bowen, John Cooke, Tim Denvir, Brian Monahan, Margaret West. Contributors to this issue: Jonathan Bowen, Andrew Johnstone, Keith Lines, Brian Monahan, John Tucker, Glynn Winskel BCS-FACS websites BCS: http://www.bcs-facs.org LinkedIn: https://www.linkedin.com/groups/2427579/ Facebook: http://www.facebook.com/pages/BCS-FACS/120243984688255 Wikipedia: http://en.wikipedia.org/wiki/BCS-FACS If you have any questions about BCS-FACS, please send these to Jonathan Bowen at [email protected]. 2 FACS FACTS Issue 2021-2 July 2021 Editorial Dear readers, Welcome to the 2021-2 issue of the FACS FACTS Newsletter. A theme for this issue is suggested by the thought that it is just over 50 years since the birth of Domain Theory1.
    [Show full text]
  • Objective Metatheory of Cubical Type Theories (Thesis Proposal) Jonathan Sterling August 15, 2020
    Objective Metatheory of Cubical Type Theories (thesis proposal) Jonathan Sterling August 15, 2020 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Thesis Committee: Robert Harper, Chair Lars Birkedal Jeremy Avigad Karl Crary Favonia Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy. Copyright © 2020 Jonathan Sterling I gratefully acknowledge the support of the Air Force Office of Scientific Research through MURI grant FA9550-15-1-0053. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author and do not necessarily reflect the views of the AFOSR. Contents 1 Introduction 1 1.1 Computation in dependent type theory ................. 1 1.2 Syntactic, phenomenal, and semantic aspects of equality . 3 1.3 Subjective metatheory: the mathematics of formalisms . 6 1.4 Objective metatheory: a syntax-invariant perspective . 6 1.5 Towards principled implementation of proof assistants . 20 1.6 Thesis Statement ............................. 20 1.7 Acknowledgments ............................. 21 2 Background and Prior Work 23 2.1 RedPRL: a program logic for cubical type theory . 23 2.2 The redtt proof assistant ......................... 28 2.3 XTT: cubical equality and gluing .................... 39 3 Proposed work 45 3.1 Algebraic model theory .......................... 46 3.2 Contexts and injective renamings .................... 46 3.3 Characterizing normal forms ....................... 48 3.4 Normalization of cartesian cubical type theory . 49 3.5 redtt reloaded: abstract elaboration ................... 50 3.6 Timeline and fallback positions ..................... 50 A redtt: supplementary materials 51 A.1 The RTT core language ......................... 51 A.2 Normalization by evaluation for RTT . 59 A.3 Elaboration relative to a boundary ..................
    [Show full text]
  • Haskell Communities and Activities Report
    Haskell Communities and Activities Report http://www.haskell.org/communities/ Eighth Edition – May 13, 2005 Andres L¨oh (ed.) Perry Alexander Lloyd Allison Tiago Miguel Laureano Alves Krasimir Angelov Alistair Bayley J´er´emy Bobbio Bj¨orn Bringert Niklas Broberg Paul Callaghan Mark Carroll Manuel Chakravarty Olaf Chitil Koen Claessen Catarina Coquand Duncan Coutts Philippa Cowderoy Alain Cr´emieux Iavor Diatchki Atze Dijkstra Shae Erisson Sander Evers Markus Forsberg Simon Foster Leif Frenzel Andr´eFurtado John Goerzen Murray Gross Walter Gussmann Jurriaan Hage Sven Moritz Hallberg Thomas Hallgren Keith Hanna Bastiaan Heeren Anders H¨ockersten John Hughes Graham Hutton Patrik Jansson Johan Jeuring Paul Johnson Isaac Jones Oleg Kiselyov Graham Klyne Daan Leijen Huiqing Li Andres L¨oh Rita Loogen Salvador Lucas Christoph Luth¨ Ketil Z. Malde Christian Maeder Simon Marlow Conor McBride John Meacham Serge Mechveliani Neil Mitchell William Garret Mitchener Andy Moran Matthew Naylor Rickard Nilsson Jan Henry Nystr¨om Sven Panne Ross Paterson Jens Petersen John Peterson Simon Peyton-Jones Jorge Sousa Pinto Bernie Pope Claus Reinke Frank Rosemeier David Roundy George Russell Chris Ryder David Sabel Uwe Schmidt Martijn Schrage Peter Simons Anthony Sloane Dominic Steinitz Donald Bruce Stewart Martin Sulzmann Autrijus Tang Henning Thielemann Peter Thiemann Simon Thompson Phil Trinder Arjan van IJzendoorn Tuomo Valkonen Eelco Visser Joost Visser Malcolm Wallace Ashley Yakeley Jory van Zessen Bulat Ziganshin Preface You are reading the 8th edition of the Haskell Communities and Activities Report (HCAR). These are interesting times to be a Haskell enthusiast. Everyone seems to be talking about darcs (→ 6.3) and Pugs (→ 6.1) these days, and it is nice to see Haskell being mentioned in places where it usually was not.
    [Show full text]
  • 162581776.Pdf
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by The IT University of Copenhagen's Repository Verification of High-Level Transformations with Inductive Refinement Types Ahmad Salim Al-Sibahi Thomas P. Jensen DIKU/Skanned.com/ITU INRIA Rennes Denmark France Aleksandar S. Dimovski Andrzej Wąsowski ITU/Mother Teresa University, Skopje ITU Denmark/Macedonia Denmark Abstract 1 Introduction High-level transformation languages like Rascal include ex- Transformations play a central role in software development. pressive features for manipulating large abstract syntax trees: They are used, amongst others, for desugaring, model trans- first-class traversals, expressive pattern matching, backtrack- formations, refactoring, and code generation. The artifacts ing and generalized iterators. We present the design and involved in transformations—e.g., structured data, domain- implementation of an abstract interpretation tool, Rabit, for specific models, and code—often have large abstract syn- verifying inductive type and shape properties for transfor- tax, spanning hundreds of syntactic elements, and a corre- mations written in such languages. We describe how to per- spondingly rich semantics. Thus, writing transformations form abstract interpretation based on operational semantics, is a tedious and error-prone process. Specialized languages specifically focusing on the challenges arising when analyz- and frameworks with high-level features have been devel- ing the expressive traversals and pattern matching. Finally, oped to address this challenge of writing and maintain- we evaluate Rabit on a series of transformations (normaliza- ing transformations. These languages include Rascal [28], tion, desugaring, refactoring, code generators, type inference, Stratego/XT [12], TXL [16], Uniplate [31] for Haskell, and etc.) showing that we can effectively verify stated properties.
    [Show full text]
  • Domain-Specific Languages for Modeling and Simulation
    Domain-specifc Languages for Modeling and Simulation Dissertation zur Erlangung des akademischen Grades Doktor-Ingenieur (Dr.-Ing.) der Fakultät für Informatik und Elektrotechnik der Universität Rostock vorgelegt von Tom Warnke, geb. am 25.01.1988 in Malchin aus Rostock Rostock, 14. September 2020 https://doi.org/10.18453/rosdok_id00002966 Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz. Gutachter: Prof. Dr. Adelinde M. Uhrmacher (Universität Rostock) Prof. Rocco De Nicola (IMT Lucca) Prof. Hans Vangheluwe (Universität Antwerpen) Eingereicht am 14. September 2020 Verteidigt am 8. Januar 2021 Abstract Simulation models and simulation experiments are increasingly complex. One way to handle this complexity is developing software languages tailored to specifc application domains, so-called domain-specifc languages (DSLs). This thesis explores the potential of employing DSLs in modeling and simulation. We study diferent DSL design and implementation techniques and illustrate their benefts for expressing simulation models as well as simulation experiments with several examples. Regarding simulation models, we focus on discrete-event models based on continuous- time Markov chains (CTMCs). Most of our work revolves around ML-Rules, an rule-based modeling language for biochemical reaction networks. First, we relate the expressive power of ML-Rules to other currently available modeling languages for this application domain. Then we defne the abstract syntax and operational semantics for ML-Rules, mapping models to CTMCs in an unambiguous and precise way. Based on the formal defnitions, we present two approaches to implement ML-Rules as a DSL. The core of both implementations is fnding the matches for the patterns on the left side of ML-Rules’ rules.
    [Show full text]