The Complexity of Flow Analysis in Higher-Order Languages
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Catamorphic Approach to Program Analysis
Catamorphic Approach to Program Analysis Mizuhito OGAWA1,2, Zhenjiang HU1,2, Isao SASANO1, Masato TAKEICHI1 1 The University of Tokyo 2 PRESTO 21, Japan Science and Technology Corporation {mizuhito,hu,sasano,takeichi}@ipl.t.u-tokyo.ac.jp Abstract. This paper proposes a new framework for program analysis that regards them as maximum marking problems: mark the codes of a program under a certain condition such that the number of marked nodes is maximum. We show that if one can develop an efficient checking program (in terms of a finite catamorphism) whether marked programs are correctly marked, then an efficient and incremental marking algorithm to analyze control flow of structured programs (say in C or Java with limited numbers of gotos) is obtained for free. To describe catamorphisms on control flow graphs, we present an algebraic construction, called SP Term, for graphs with bounded tree width. The transformation to SP Terms is done efficiently in linear time. We demonstrate that our framework is powerful to describe various kinds of control flow analyses. Especially, for analyses in which some optimality is required (or expected), our approach has a big advantage. Keywords: Catamorphism, Control Flow Graphs, Control Flow Analysis, Functional Programming, Linear Time Algorithm, Program Optimization, Bounded Tree Width 1 Introduction While program transformation plays an important role in optimizing compiler and software engi- neering, implementing program transformation requires various kinds of program analyses to extract program fragments satisfying a certain property; these fragments will then be replaced by equivalent but more efficient constructs. As a simple example, consider the program in Fig. -
Control-Flow Analysis of Functional Programs
Control-flow analysis of functional programs JAN MIDTGAARD Department of Computer Science, Aarhus University We present a survey of control-flow analysis of functional programs, which has been the subject of extensive investigation throughout the past 30 years. Analyses of the control flow of functional programs have been formulated in multiple settings and have led to many different approximations, starting with the seminal works of Jones, Shivers, and Sestoft. In this paper, we survey control-flow analysis of functional programs by structuring the multitude of formulations and approximations and comparing them. Categories and Subject Descriptors: D.3.2 [Programming Languages]: Language Classifica- tions—Applicative languages; F.3.1 [Logics and Meanings of Programs]: Specifying and Ver- ifying and Reasoning about Programs General Terms: Languages, Theory, Verification Additional Key Words and Phrases: Control-flow analysis, higher-order functions 1. INTRODUCTION Since the introduction of high-level languages and compilers, much work has been devoted to approximating, at compile time, which values the variables of a given program may denote at run time. The problem has been named data-flow analysis or just flow analysis. In a language without higher-order functions, the operator of a function call is apparent from the text of the program: it is a lexically visible identifier and therefore the called function is available at compile time. One can thus base an analysis for such a language on the textual structure of the program, since it determines the exact control flow of the program, e.g., as a flow chart. On the other hand, in a language with higher-order functions, the operator of a function call may not be apparent from the text of the program: it can be the result of a computation and therefore the called function may not be available until run time. -
Refunctionalization of Abstract Abstract Machines Bridging the Gap Between Abstract Abstract Machines and Abstract Definitional Interpreters (Functional Pearl)
105 Refunctionalization of Abstract Abstract Machines Bridging the Gap between Abstract Abstract Machines and Abstract Definitional Interpreters (Functional Pearl) GUANNAN WEI, Purdue University, USA JAMES DECKER, Purdue University, USA TIARK ROMPF, Purdue University, USA Abstracting abstract machines is a systematic methodology for constructing sound static analyses for higher- order languages, by deriving small-step abstract abstract machines (AAMs) that perform abstract interpretation from abstract machines that perform concrete evaluation. Darais et al. apply the same underlying idea to monadic definitional interpreters, and obtain monadic abstract definitional interpreters (ADIs) that perform abstract interpretation in big-step style using monads. Yet, the relation between small-step abstract abstract machines and big-step abstract definitional interpreters is not well studied. In this paper, we explain their functional correspondence and demonstrate how to systematically transform small-step abstract abstract machines into big-step abstract definitional interpreters. Building on known semantic interderivation techniques from the concrete evaluation setting, the transformations include lin- earization, lightweight fusion, disentanglement, refunctionalization, and the left inverse of the CPS transform. Linearization expresses nondeterministic choice through first-order data types, after which refunctional- ization transforms the first-order data types that represent continuations into higher-order functions. The refunctionalized AAM is an abstract interpreter written in continuation-passing style (CPS) with two layers of continuations, which can be converted back to direct style with delimited control operators. Based on the known correspondence between delimited control and monads, we demonstrate that the explicit use of monads in abstract definitional interpreters is optional. All transformations properly handle the collecting semantics and nondeterminism of abstract interpreta- tion. -
An E Cient and General Implementation of Futures on Large
An Ecient and General Implementation of Futures on Large Scale SharedMemory Multipro cessors A Dissertation Presented to The Faculty of the Graduate School of Arts and Sciences Brandeis University Department of Computer Science James S Miller advisor In Partial Fulllment of the Requirements of the Degree of Doctor of Philosophy by Marc Feeley April This dissertation directed and approved by the candidates committee has b een ac cepted and approved by the Graduate Faculty of Brandeis University in partial fulll ment of the requirements for the degree of DOCTOR OF PHILOSOPHY Dean Graduate School of Arts and Sciences Dissertation Committee Dr James S Miller chair Digital Equipment Corp oration Prof Harry Mairson Prof Timothy Hickey Prof David Waltz Dr Rob ert H Halstead Jr Digital Equipment Corp oration Copyright by Marc Feeley Abstract An Ecient and General Implementation of Futures on Large Scale SharedMemory Multipro cessors A dissertation presented to the Faculty of the Graduate School of Arts and Sciences of Brandeis University Waltham Massachusetts by Marc Feeley This thesis describ es a highp erformance implementation technique for Multilisps future parallelism construct This metho d addresses the nonuniform memory access NUMA problem inherent in large scale sharedmemory multiprocessors The technique is based on lazy task creation LTC a dynamic task partitioning mechanism that dramatically reduces the cost of task creation and consequently makes it p ossible to exploit ne grain parallelism In LTC idle pro cessors get work to do -
Fundamentals of Type Inference Systems
Fundamentals of type inference systems Fritz Henglein DIKU, University of Copenhagen [email protected] February 1, 1991; revised January 31, 1994; updated August 9, 2009 1 Introduction These notes give a compact overview of established core type systems and of their fundamental properties. We emphasize the use and application of type systems in programming languages, but also mention their role in logic. Proofs are omitted, but references to relevant sources in the literature are usually given. 1.1 What is a \type"? There are many examples of types in programming languages: • Primitive types: int, float, bool • Compound types: products (records), sums (disjoint unions), lists, arrays • Recursively definable types, such as tree data types • Function types, e.g. int !int • Parametric polymorphic types • Abstract types, e.g. Java interfaces Loosely speaking a type is a description of a collection of related values. • A type has syntax (\description"): It denotes a collection. • A type has elements (\collection"): It makes sense to talk about ele- ments of a type; in particular, it may have zero, one or many elements 1 • A type's elements have common properties (\related"): Users of a type can rely on each element having some common properties|an interface| without having to know the identity of particular elements. Types incorporate multiple aspects: • Type as a set of values: This view focuses on how values are con- structed to be elements of a type; e.g. constructing the natural num- bers from 0 and the successor function; • Type as a an interface: This view focuses on how values can be used (\deconstructed") by a client; e.g. -
On the Resolution Semiring
Aix-Marseille Université École doctorale 184 UFR sciences Institut de Mathématiques de Marseille Thèse présentée pour obtenir le grade universitaire de docteur Spécialité: Mathématiques On the Resolution Semiring Marc Bagnol Jury: Pierre-Louis Curien Université Paris Diderot Jean-Yves Girard Aix-Marseille Université (directeur) Ugo dal Lago Università di Bologna (rapporteur) Paul-André Melliès Université Paris Diderot Myriam Quatrini Aix-Marseille Université Ulrich Schöpp LMU München Philip Scott University of Ottawa (rapporteur) Kazushige Terui Kyoto University Soutenue le 4/12/2014 à Marseille. This thesis is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International licence. Résumé On étudie dans cette thèse une structure de semi-anneau dont le produit est basé sur la règle de résolution de la programmation logique. Cet objet mathématique a été initialement introduit dans le but de modéliser la procédure d’élimination des coupures de la logique linéaire, dans le cadre du programme de géométrie de l’interaction. Il fournit un cadre algébrique et abstrait, tout en étant présenté sous une forme syntaxique et concrète, dans lequel mener une étude théorique du calcul. On reviendra dans un premier temps sur l’interprétation interactive de la théorie de la démonstration dans ce semi-anneau, via l’axiomatisation catégorique de l’approche de la géométrie de l’interaction. Cette interprétation établit une traduction des programmes fonctionnels vers une forme très simple de programmes logiques. Dans un deuxième temps, on abordera des problématiques de théorie de la complexité: bien que le problème de la nilpotence dans le semi-anneau étudié soit indécidable en général, on fera apparaître des restrictions qui permettent de caractériser le calcul en espace logarithmique (déterministe et non-déterministe) et en temps polynomial (déterministe). -
N350.Doc ISOSTD ISO Template Version 3.0 1997-02-07 © ISO/IEC ISO/IEC PDTR 15942
ISO/IEC JTC1 /SC 22 N 350 Date: 98-08-17 ISO/IEC PDTR 15942 ISO/IEC JTC 1/SC22/WG9 Secretariat: ANSI Working Draft 3.6 - Programming Languages - Guide for the Use of the Ada Programming Language in High Integrity Systems Document type: Technical Report type 3 Document subtype: Not applicable Document stage: (20) Preparatory Document language: E H:\ada\hrg\v36\n350.doc ISOSTD ISO Template Version 3.0 1997-02-07 © ISO/IEC ISO/IEC PDTR 15942 Contents 1 Scope ........................................................................................................................................................................1 1.1 Within the scope ..............................................................................................................................................1 1.2 Out of scope.....................................................................................................................................................2 2 Verification Techniques ..........................................................................................................................................2 2.1 Traceability.......................................................................................................................................................2 2.2 Reviews.............................................................................................................................................................3 2.3 Analysis ............................................................................................................................................................3 -
Metatheorems About Convertibility in Typed Lambda Calculi
Metatheorems about Convertibility in Typed Lambda Calculi: Applications to CPS transform and "Free Theorems" by Jakov Kucan B.S.E., University of Pennsylvania (1991) M.A., University of Pennsylvania (1991) Submitted to the Department of Mathematics in partial fulfillment of the requirements for the degree of Doctor of Philosophy at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY February 1997 @ Massachusetts Institute of Technology 1997. All rights reserved. x - I A uthor .... ................ Department of Mathematics /1. October 10, 1996 Certified by ....... , ,.... ..... .... ........................... Albert R. Meyer Hitachi America Professor of Engineering / -Thesis Supervisor (/1 n / Accepted by..... ... ......Accep.. ...yHungApplied.... .... ....ma.. .........Cheng..... Chairman, itics Committee Accepted by ................................... .......... .... ............ Richard Melrose oChairman, Departmental Committee on Graduate Students MAR 0 41997 Metatheorems about Convertibility in Typed Lambda Calculi: Applications to CPS transform and "Free Theorems" by Jakov Kutan Submitted to the Department of Mathematics on October 10, 1996, in partial fulfillment of the requirements for the degree of Doctor of Philosophy Abstract In this thesis we present two applications of using types of a typed lambda calculus to derive equation schemas, instances of which are provable by convertibility. Part 1: Retraction Approach to CPS transform: We study the continuation passing style (CPS) transform and its generalization, the computational transform, in which the notion of computation is generalized from continuation passing to an arbitrary one. To establish a relation between direct style and continuationpassing style interpretation of sequential call- by-value programs, we prove the Retraction Theorem which says that a lambda term can be recovered from its continuationized form via a A-definable retraction. The Retraction Theorem is proved in the logic of computational lambda calculus for the simply typable terms. -
Control-Flow Analysis of Functional Programs
BRICS RS-07-18 J. Midtgaard: Control-Flow Analysis of Functional Programs BRICS Basic Research in Computer Science Control-Flow Analysis of Functional Programs Jan Midtgaard BRICS Report Series RS-07-18 ISSN 0909-0878 December 2007 Copyright c 2007, Jan Midtgaard. BRICS, Department of Computer Science University of Aarhus. All rights reserved. Reproduction of all or part of this work is permitted for educational or research use on condition that this copyright notice is included in any copy. See back inner page for a list of recent BRICS Report Series publications. Copies may be obtained by contacting: BRICS Department of Computer Science University of Aarhus IT-parken, Aabogade 34 DK–8200 Aarhus N Denmark Telephone: +45 8942 9300 Telefax: +45 8942 5601 Internet: [email protected] BRICS publications are in general accessible through the World Wide Web and anonymous FTP through these URLs: http://www.brics.dk ftp://ftp.brics.dk This document in subdirectory RS/07/18/ Control-flow analysis of functional programs Jan Midtgaard BRICS Department of Computer Science University of Aarhus∗ November 16, 2007 Abstract We present a survey of control-flow analysis of functional programs, which has been the subject of extensive investigation throughout the past 25 years. Analyses of the control flow of functional programs have been formulated in multiple settings and have led to many different approxima- tions, starting with the seminal works of Jones, Shivers, and Sestoft. In this paper we survey control-flow analysis of functional programs by struc- turing the multitude of formulations and approximations and comparing them. ∗IT-parken, Aabogade 34, DK-8200 Aarhus N, Denmark. -
Research Summary
Research Summary Franklyn Turbak Department of Computer Science Wellesley College August 1, 2001 My main research area is the design, analysis, and implementation of expressive programming languages. I also work on pedagogical aspects and applications of programming and of programming languages. This document summarizes my research and publications in these areas. Much of the research described here was undertaken as part of the Church Project1, a group of programming language researchers investigating applications of formal systems in programming language design, analysis, and implementation. I was a co-founder of the Church Project in Septem- ber, 1995, and have been working closely with its members ever since. My research with the Church Project is supported with funding from an NSF Experimental Software Systems grant, an individ- ual grant that is part of a larger collaborative grant with Boston University, Boston College, and Stevens Institute of Technology. Some of my research was conducted with colleagues and students at my home institution, Wellesley College. I believe it is important for undergraduate computer science students to experi- ence the ¯eld outside their coursework, so I encourage my students to become involved in research and independent study projects. Although the technical prerequisites for programming language research set a fairly high bar for undergraduates, I have managed to involve undergraduates in several projects related to programming languages (see Sections 4.3 and 6). This summary is organized into sections according to research themes. In each section, I present the context of my research, describe my publications and contributions, and, where relevant, de- scribe future research plans. -
A Study of Control and Type-Flow Analyses for Higher-Order Programming Languages
A Study of Control and Type-Flow Analyses for Higher-Order Programming Languages Gabriel Petrov Capstone Final Report for BSc (Honours) in Mathematical, Computational and Statistical Sciences Supervised by: Ilya Sergey AY 2020/2021 i ii Acknowledgements I can scarcely put into words how grateful I am to the following peo- ple, for shaping my experiences during my undergraduate education and helping me become the person I am today. To my first computer science professor, Prof Aquinas Hobor, for in- spiring me to pursue a journey in the area, despite the fact that prior to his class I didn’t even know it was a field. Thank-you, for I have so far found that journey to be nothing short of incredible. To my capstone advisor, Prof Ilya Sergey, without whom this thesis would not exist, for his gracious counsel, for his many classes, for de- scribing the field of computer science as a forever incomplete jigsaw puz- zle in sophomore year, and for helping me place the first few pieces down in their correct spaces. To Tram and all of my friends - Adair, Alaukik, Alvin, Karolina, Leyli, Michael, Max, Ryan and more - for far too many moments to count. To my sisters and my parents, the former, for growing up far faster than I could’ve thought possible and the latter for never failing to enable me in my endeavours, for always maintaining their quiet, but unyielding support. I know I don’t rely on it often, but its presence is a comfort. Finally, I am grateful to a Chuhu, whose smile somewhere out there never ceases to make the world shine a little more warmly. -
Chih-Hao Luke ONG Contents
Chih-Hao Luke ONG Department of Computer Science Tel: +44 1865 283522 University of Oxford Fax: +44 1865 273839 Wolfson Building, Parks Road Email: [email protected] Oxford OX1 3QD Homepage: http://www.cs.ox.ac.uk/people/luke.ong/personal/ United Kingdom Born in Singapore; Singapore citizen. Married with one child. 1 Contents 1 Education 2 2 Appointments 2 2.1 Current Appointments............................................2 2.2 Past Appointments..............................................2 2.3 Visiting Positions...............................................3 3 Awards 3 4 Research and Research Group 3 4.1 Postdoctoral Researchers Supervised and Research Fellows Hosted.....................3 4.2 Research Visitors Hosted (4 Weeks or Longer)................................4 4.3 Doctoral Students Graduated.........................................5 4.4 Current Doctoral Students:..........................................7 4.5 Software....................................................7 4.6 Patent.....................................................7 4.7 Research Grants as PI or co-PI........................................8 4.8 Named Collaborator on International Research Grants............................8 5 Invited Presentations 8 5.1 Conferences, Workshops and Instructional Meetings.............................8 5.2 University Colloquia and Seminars...................................... 13 6 Publications 14 7 Professional Activities 19 7.1 International External Review........................................ 19 7.2 Editorial Duties...............................................