{"title":"Issues in ethical data management","authors":"S. Abiteboul","doi":"10.1145/3131851.3131854","DOIUrl":"https://doi.org/10.1145/3131851.3131854","url":null,"abstract":"Data science holds incredible promise of improving people's lives, accelerating scientific discovery and innovation, and bringing about positive societal change. Yet, if not used responsibly, this technology can generate economic inequality, destabilize global markets and worsen systemic bias. We consider issues such as bias and violation of data privacy in data analysis. We discuss desirable properties of data analysis such as fairness, transparency, neutrality, and diversity. Our goal is to draw the attention of the computer science community to the important emerging subject of responsible data management and analysis. We present our perspective on the issue, and motivate research directions.","PeriodicalId":448247,"journal":{"name":"ACM-SIGPLAN International Conference on Principles and Practice of Declarative Programming","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133185073","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
J. Jansen, Ingmar Dasseville, Jo Devriendt, Gerda Janssens
{"title":"Experimental Evaluation of a State-Of-The-Art Grounder","authors":"J. Jansen, Ingmar Dasseville, Jo Devriendt, Gerda Janssens","doi":"10.1145/2643135.2643149","DOIUrl":"https://doi.org/10.1145/2643135.2643149","url":null,"abstract":"Many state-of-the-art declarative systems use a ground-and-solve approach, where the problem statement, expressed in a high-level language, is first grounded into a low-level representation. Next, a solver is used to search a solution for the low-level representation. In order to prevent a combinatorial blowup of the grounding, many intelligent techniques have been developed. In this paper we study in detail three such techniques (Lifted Unit Propagation, Grounding With Bounds, and Reduced Grounding) to get a better insight in their individual merits and their interactions. Our experiments take as benchmarks all the NP problems of the previous Answer Set Programming (ASP) competitions. The experiments are performed with IDP3 and all tools needed to run them are made publicly available. The first experiment discusses the impact of the three techniques on the \"efficiency\" of the grounding step, and on each other. In a second set of experiments we show that a reduction in the grounding size as a result of the application of these grounding techniques does not reduce the search space. We give an in-depth analysis of our results and discuss what this means for the development of grounding techniques for declarative systems.","PeriodicalId":448247,"journal":{"name":"ACM-SIGPLAN International Conference on Principles and Practice of Declarative Programming","volume":"292 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-09-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121087461","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Lazier Imperative Programming","authors":"Rémi Douence, Nicolas Tabareau","doi":"10.1145/2643135.2643159","DOIUrl":"https://doi.org/10.1145/2643135.2643159","url":null,"abstract":"Laziness is a powerful concept in functional programming that enables reusing general functions in a specific context, while keeping performance close to the efficiency of dedicated definitions. Lazy evaluation can be used in imperative programming too. Twenty years ago, John Launchbury was already advocating for lazy imperative programming, but the level of laziness of his framework remained limited: a single effect can trigger numerous delayed computations, even if those are not required for the correctness of the evaluation. Twenty years after, the picture has not changed. In this article, we propose an Haskell framework to specify computational effects of imperative programs as well as their dependencies. Our framework is based on the operational monad transformer which encapsulates an algebraic presentation of effectful operations. A lazy monad transformer is then in charge of delaying non-necessary computations by maintaining a trace of imperative closures. We present a semantics of a call-by-need λ-calculus extended with imperative strict and lazy features and prove the correctness of our approach. While originally motivated by a less rigid use of foreign functions, we show that our approach is fruitful for a simple scenario based on sorted mutable arrays. Furthermore, we can take advantage of equations between algebraic operations to dynamically optimize imperative computations composition.","PeriodicalId":448247,"journal":{"name":"ACM-SIGPLAN International Conference on Principles and Practice of Declarative Programming","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-09-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128150647","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Bidirectional Elaboration of Dependently Typed Programs","authors":"Francisco Ferreira, B. Pientka","doi":"10.1145/2643135.2643153","DOIUrl":"https://doi.org/10.1145/2643135.2643153","url":null,"abstract":"Dependently typed programming languages allow programmers to express a rich set of invariants and verify them statically via type checking. To make programming with dependent types practical, dependently typed systems provide a compact language for programmers where one can omit some arguments, called implicit, which can be inferred. This source language is then usually elaborated into a core language where type checking and fundamental properties such as normalization are well understood. Unfortunately, this elaboration is rarely specified and in general is ill-understood. This makes it not only difficult for programmers to understand why a given program fails to type check, but also is one of the reasons that implementing dependently typed programming systems remains a black art known only to a few.\u0000 In this paper, we specify the design of a source language for a dependently typed programming language where we separate the language of programs from the language of types and terms occurring in types. Total functions in our language correspond directly to first-order inductive proofs over a specific index domain. We then give a bi-directional elaboration algorithm to translate source terms where implicit arguments can be omitted to a fully explicit core language and prove soundness of our elaboration. Our framework provides post-hoc explanation for elaboration found in the programming and proof environment, Beluga.","PeriodicalId":448247,"journal":{"name":"ACM-SIGPLAN International Conference on Principles and Practice of Declarative Programming","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-09-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125458021","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
R. Lämmel, A. Varanovich, Martin Leinberger, Thomas Schmorleiz, J. Favre
{"title":"Declarative Software Development: Distilled Tutorial","authors":"R. Lämmel, A. Varanovich, Martin Leinberger, Thomas Schmorleiz, J. Favre","doi":"10.1145/2643135.2643163","DOIUrl":"https://doi.org/10.1145/2643135.2643163","url":null,"abstract":"Software development could be said to be declarative, if declarative programming languages were used significantly in the development of a software system. Software development could also be said to be declarative, if lightweight or heavyweight formal methods or model-driven engineering and model transformation were used as the primary development methods. This tutorial discusses another view on 'declarative software development'. That is, we promote the use of declarative methods for understanding software systems, software languages, software technologies, and software concepts. More specifically, we discuss a method package of a software ontology, automated software analysis, a modeling approach for software technologies, and Linked Data-based publication and exploration of software data.","PeriodicalId":448247,"journal":{"name":"ACM-SIGPLAN International Conference on Principles and Practice of Declarative Programming","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-09-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130770330","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A Type Theoretic Specification of Partial Evaluation","authors":"K. Asai, L. Fennell, Peter Thiemann, Yang Zhang","doi":"10.1145/2643135.2643146","DOIUrl":"https://doi.org/10.1145/2643135.2643146","url":null,"abstract":"We develop a type theoretic specification of offline partial evaluation for the simply-typed lambda calculus in the dependently-typed programming language Agda. We establish the correctness of the specification by proving termination, typing preservation, and semantics preservation using logical relations. Typing preservation is achieved by relying on a typed syntax representation based on De Bruijn indices for the source and the target language. The full calculus contains primitive recursion on natural numbers and higher-order lifting for function, product, and sum types.","PeriodicalId":448247,"journal":{"name":"ACM-SIGPLAN International Conference on Principles and Practice of Declarative Programming","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-09-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129310979","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Bijective Collection Encodings and Boolean Operations with Hereditarily Binary Natural Numbers","authors":"Paul Tarau","doi":"10.1145/2643135.2643139","DOIUrl":"https://doi.org/10.1145/2643135.2643139","url":null,"abstract":"Our tree-based hereditarily binary numbers apply recursively a run-length compression mechanism. They enable performing arithmetic computations symbolically and lift tractability of computations to be limited by the representation size of their operands rather than by their bitsizes.\u0000 We apply them to derive compact representations for \"structurally simple\" (sparse or dense) lists, sets and multisets, as well as their hereditarily finite counterparts. This enables the use of hereditarily binary numbers to define bijective size-proportionate Gödel numberings for several data types, that we \"virtualize\" through a generic data type transformation framework. As an application, a size-proportionate Gödel numbering scheme for term algebras is derived.\u0000 After extending the arithmetic operations on hereditarily binary numbers with boolean operations, we use them to perform computations with bitvectors and sets as well as a 3-valued logic interpretation for bijective base-2 bitvectors.","PeriodicalId":448247,"journal":{"name":"ACM-SIGPLAN International Conference on Principles and Practice of Declarative Programming","volume":"330 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-09-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122742712","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"BiFluX: A Bidirectional Functional Update Language for XML","authors":"Hugo Pacheco, Tao Zan, Zhenjiang Hu","doi":"10.1145/2643135.2643141","DOIUrl":"https://doi.org/10.1145/2643135.2643141","url":null,"abstract":"Different XML formats are widely used for data exchange and processing, being often necessary to mutually convert between them. Standard XML transformation languages, like XSLT or XQuery, are unsatisfactory for this purpose since they require writing a separate transformation for each direction. Existing bidirectional transformation languages mean to cover this gap, by allowing programmers to write a single program that denotes both transformations. However, they often 1) induce a more cumbersome programming style than their traditionally unidirectional relatives, to establish the link between source and target formats, and 2) offer limited configurability, by making implicit assumptions about how modifications to both formats should be translated that may not be easy to predict.\u0000 This paper proposes a bidirectional XML update language called BIFLUX (BIdirectional FunctionaL Updates for XML), inspired by the FLUX XML update language. Our language adopts a novel bidirectional programming by update paradigm, where a program succinctly and precisely describes how to update a source document with a target document, in an intuitive way, such that there is a unique \"inverse\" source query for each update program. BIFLUX extends FLUX with bidirectional actions that describe the connection between source and target formats. We introduce a core BIFLUX language, with a clear and well-behaved bidirectional semantics and a decidable static type system based on regular expression types.","PeriodicalId":448247,"journal":{"name":"ACM-SIGPLAN International Conference on Principles and Practice of Declarative Programming","volume":"70 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-09-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133563617","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Proofs in continuation-passing style: normalization of Gödel's System T extended with sums and delimited control operators: Distilled Tutorial","authors":"Danko Ilik","doi":"10.1145/2643135.2643161","DOIUrl":"https://doi.org/10.1145/2643135.2643161","url":null,"abstract":"While writing programs in continuation-passing style (CPS) is a common technique from Programming Languages research, writing mathematical proofs in CPS is much less common. Although such proofs open new possibilities for writing constructive proofs (for cases where more direct CPS-less proofs are not known, like in this tutorial), working with them is delicate (instead of data, we manipulate functionals). Proof assistants come to our rescue.\u0000 In this tutorial, the participants will be guided on how to use the Agda proof assistant to write a normalization by evaluation (NBE) algorithm in CPS, starting with simply typed lambda calculus and ending with Gödel's System T extended with delimited control operators. How to write such a normalization proof without using CPS is not at all clear. Basic familiarity with the Agda proof assistant will be presupposed, although the development will be self-contained.","PeriodicalId":448247,"journal":{"name":"ACM-SIGPLAN International Conference on Principles and Practice of Declarative Programming","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-09-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114805621","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"On Combining Backward and Forward Chaining in Constraint Logic Programming","authors":"Rémy Haemmerlé","doi":"10.1145/2643135.2643144","DOIUrl":"https://doi.org/10.1145/2643135.2643144","url":null,"abstract":"We address the problem of designing constraint logic languages that usefully combine backward and forward chaining in a sound and complete way. Following the approach of Constraint Logic Programming, we define a class of programming languages that generalize both Constraint Logic and Concurrent Constraint Programming. Syntactically, this class corresponds to Constraint Handling Rules with disjunctions, but differ operationally by featuring set-based semantics instead of multiset-based ones; i.e., conjunction and disjunction are idempotent. The assumption of program confluence is the crux on which both the committed choice strategy and the logical completeness of the languages rely.","PeriodicalId":448247,"journal":{"name":"ACM-SIGPLAN International Conference on Principles and Practice of Declarative Programming","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-09-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115031274","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}