当前期刊: arXiv - CS - Programming Languages Go to current issue    加入关注   
显示样式:        排序: 导出
我的关注
我的收藏
您暂时未登录!
登录
  • Founded Semantics and Constraint Semantics of Logic Rules
    arXiv.cs.PL Pub Date : 2016-06-20
    Yanhong A. Liu; Scott D. Stoller

    Logic rules and inference are fundamental in computer science and have been studied extensively. However, prior semantics of logic languages can have subtle implications and can disagree significantly, on even very simple programs, including in attempting to solve the well-known Russell's paradox. These semantics are often non-intuitive and hard-to-understand when unrestricted negation is used in recursion

    更新日期:2020-03-28
  • High-level signatures and initial semantics
    arXiv.cs.PL Pub Date : 2018-05-09
    Benedikt Ahrens; André Hirschowitz; Ambroise Lafont; Marco Maggesi

    We present a device for specifying and reasoning about syntax for datatypes, programming languages, and logic calculi. More precisely, we study a notion of signature for specifying syntactic constructions. In the spirit of Initial Semantics, we define the syntax generated by a signature to be the initial object---if it exists---in a suitable category of models. In our framework, the existence of an

    更新日期:2020-03-28
  • Divide, Conquer, and Combine: a New Inference Strategy for Probabilistic Programs with Stochastic Support
    arXiv.cs.PL Pub Date : 2019-10-29
    Yuan Zhou; Hongseok Yang; Yee Whye Teh; Tom Rainforth

    Universal probabilistic programming systems (PPSs) provide a powerful framework for specifying rich and complex probabilistic models. They further attempt to automate the process of drawing inferences from these models, but doing this successfully is severely hampered by the wide range of non--standard models they can express. As a result, although one can specify complex models in a universal PPS

    更新日期:2020-03-28
  • Context-Aware Parse Trees
    arXiv.cs.PL Pub Date : 2020-03-24
    Fangke Ye; Shengtian Zhou; Anand Venkat; Ryan Marcus; Paul Petersen; Jesmin Jahan Tithi; Tim Mattson; Tim Kraska; Pradeep Dubey; Vivek Sarkar; Justin Gottschlich

    The simplified parse tree (SPT) presented in Aroma, a state-of-the-art code recommendation system, is a tree-structured representation used to infer code semantics by capturing program \emph{structure} rather than program \emph{syntax}. This is a departure from the classical abstract syntax tree, which is principally driven by programming language syntax. While we believe a semantics-driven representation

    更新日期:2020-03-26
  • From Algebraic Word Problem to Program: A Formalized Approach
    arXiv.cs.PL Pub Date : 2020-03-11
    Adam Wiemerslage; Shafiuddin Rehan Ahmed

    In this paper, we propose a pipeline to convert grade school level algebraic word problem into program of a formal languageA-IMP. Using natural language processing tools, we break the problem into sentence fragments which can then be reduced to functions. The functions are categorized by the head verb of the sentence and its structure, as defined by (Hosseini et al., 2014). We define the function signature

    更新日期:2020-03-26
  • Output-sensitive Information flow analysis
    arXiv.cs.PL Pub Date : 2019-09-20
    Cristian Ene; Laurent Mounier; Marie-Laure Potet

    Constant-time programming is a countermeasure to prevent cache based attacks where programs should not perform memory accesses that depend on secrets. In some cases this policy can be safely relaxed if one can prove that the program does not leak more information than the public outputs of the computation. We propose a novel approach for verifying constant-time programming based on a new information

    更新日期:2020-03-26
  • Translation of Array-Based Loops to Distributed Data-Parallel Programs
    arXiv.cs.PL Pub Date : 2020-03-21
    Leonidas Fegaras; Md Hasanuzzaman Noor

    Large volumes of data generated by scientific experiments and simulations come in the form of arrays, while programs that analyze these data are frequently expressed in terms of array operations in an imperative, loop-based language. But, as datasets grow larger, new frameworks in distributed Big Data analytics have become essential tools to large-scale scientific computing. Scientists, who are typically

    更新日期:2020-03-24
  • Multi-modal Synthesis of Regular Expressions
    arXiv.cs.PL Pub Date : 2019-08-09
    Qiaochu Chen; Xinyu Wang; Xi Ye; Greg Durrett; Isil Dillig

    In this paper, we propose a multi-modal synthesis technique for automatically constructing regular expressions (regexes) from a combination of examples and natural language. Using multiple modalities is useful in this context because natural language alone is often highly ambiguous, whereas examples in isolation are often not sufficient for conveying user intent. Our proposed technique first parses

    更新日期:2020-03-24
  • ptype: Probabilistic Type Inference
    arXiv.cs.PL Pub Date : 2019-11-22
    Taha Ceritli; Christopher K. I. Williams; James Geddes

    Type inference refers to the task of inferring the data type of a given column of data. Current approaches often fail when data contains missing data and anomalies, which are found commonly in real-world data sets. In this paper, we propose ptype, a probabilistic robust type inference method that allows us to detect such entries, and infer data types. We further show that the proposed method outperforms

    更新日期:2020-03-24
  • The Three Pillars of Machine Programming
    arXiv.cs.PL Pub Date : 2018-03-20
    Justin Gottschlich; Armando Solar-Lezama; Nesime Tatbul; Michael Carbin; Martin Rinard; Regina Barzilay; Saman Amarasinghe; Joshua B Tenenbaum; Tim Mattson

    In this position paper, we describe our vision of the future of machine programming through a categorical examination of three pillars of research. Those pillars are: (i) intention, (ii) invention, and(iii) adaptation. Intention emphasizes advancements in the human-to-computer and computer-to-machine-learning interfaces. Invention emphasizes the creation or refinement of algorithms or core hardware

    更新日期:2020-03-24
  • Automatic accuracy management of quantum programs via (near-)symbolic resource estimation
    arXiv.cs.PL Pub Date : 2020-03-18
    Giulia Meuli; Mathias Soeken; Martin Roetteler; Thomas Häner

    When compiling programs for fault-tolerant quantum computers, approximation errors must be taken into account. We propose a methodology that tracks such errors automatically and solves the optimization problem of finding accuracy parameters that guarantee a specified overall accuracy while aiming to minimize a custom implementation cost. The core idea is to extract constraint and cost functions directly

    更新日期:2020-03-20
  • CrypTFlow: Secure TensorFlow Inference
    arXiv.cs.PL Pub Date : 2019-09-16
    Nishant Kumar; Mayank Rathee; Nishanth Chandran; Divya Gupta; Aseem Rastogi; Rahul Sharma

    We present CrypTFlow, a first of its kind system that converts TensorFlow inference code into Secure Multi-party Computation (MPC) protocols at the push of a button. To do this, we build three components. Our first component, Athos, is an end-to-end compiler from TensorFlow to a variety of semi-honest MPC protocols. The second component, Porthos, is an improved semi-honest 3-party protocol that provides

    更新日期:2020-03-20
  • Learning Nonlinear Loop Invariants with Gated Continuous Logic Networks
    arXiv.cs.PL Pub Date : 2020-03-17
    Jianan Yao; Gabriel Ryan; Justin Wong; Suman Jana; Ronghui Gu

    In many cases, verifying real-world programs requires inferring loop invariants with nonlinear constraints. This is especially true in programs that perform many numerical operations, such as control systems for avionics or industrial plants. Recently, data-driven methods for loop invariant inference have gained popularity, especially on linear loop invariants. However, applying data-driven inference

    更新日期:2020-03-19
  • Signature restriction for polymorphic algebraic effects
    arXiv.cs.PL Pub Date : 2020-03-18
    Taro Sekiyama; Takeshi Tsukada; Atsushi Igarashi

    It has been well known that naively combining polymorphic effects and polymorphic type assignment breaks type safety. Existing approaches to this problem are classified into two groups: one for restricting how effects are triggered and the other for restricting how they are implemented. This work explores a new approach to the safety of polymorphic effects in polymorphic type assignment. A novelty

    更新日期:2020-03-19
  • Kindly Bent to Free Us
    arXiv.cs.PL Pub Date : 2019-08-26
    Gabriel Radanne; Hannes Saffrich; Peter Thiemann

    Systems programming often requires the manipulation of resources like file handles, network connections, or dynamically allocated memory. Programmers need to follow certain protocols to handle these resources correctly. Violating these protocols causes bugs ranging from type mismatches over data races to use-after-free errors and memory leaks. These bugs often lead to security vulnerabilities. While

    更新日期:2020-03-19
  • RVSDG: An Intermediate Representation for Optimizing Compilers
    arXiv.cs.PL Pub Date : 2019-12-10
    Nico Reissmann; Jan Christian Meyer; Helge Bahmann; Magnus Själander

    Intermediate Representations (IRs) are central to optimizing compilers as the way the program is represented may enhance or limit analyses and transformations. Suitable IRs focus on exposing the most relevant information and establish invariants that different compiler passes can rely on. While control-flow centric IRs appear to be a natural fit for imperative programming languages, analyses required

    更新日期:2020-03-19
  • Adapting Persistent Data Structures for Concurrency and Speculation
    arXiv.cs.PL Pub Date : 2020-03-16
    Thomas Dickerson

    This work unifies insights from the systems and functional programming communities, in order to enable compositional reasoning about software which is nonetheless efficiently realizable in hardware. It exploits a correspondence between design goals for efficient concurrent data structures and efficient immutable persistent data structures, to produce novel implementations of mutable concurrent trees

    更新日期:2020-03-18
  • Fireiron: A Scheduling Language for High-Performance Linear Algebra on GPUs
    arXiv.cs.PL Pub Date : 2020-03-13
    Bastian Hagedorn; Archibald Samuel Elliott; Henrik Barthels; Rastislav Bodik; Vinod Grover

    Achieving high-performance GPU kernels requires optimizing algorithm implementations to the targeted GPU architecture. It is of utmost importance to fully use the compute and memory hierarchy, as well as available specialised hardware. Currently, vendor libraries like cuBLAS and cuDNN provide the best performing implementations of GPU algorithms. However the task of the library programmer is incredibly

    更新日期:2020-03-16
  • Sound Regular Expression Semantics for Dynamic Symbolic Execution of JavaScript
    arXiv.cs.PL Pub Date : 2018-10-10
    Blake Loring; Duncan Mitchell; Johannes Kinder

    Existing support for regular expressions in automated test generation or verification tools is lacking. Common aspects of regular expression engines found in mainstream programming languages, such as backreferences or greedy matching, are commonly ignored or imprecisely approximated, leading to poor test coverage or failed proofs. In this paper, we present the first complete strategy to faithfully

    更新日期:2020-03-16
  • Correctness of Sequential Monte Carlo Inference for Probabilistic Programming Languages
    arXiv.cs.PL Pub Date : 2020-03-11
    Daniel Lundén; Johannes Borgström; David Broman

    Probabilistic programming languages (PPLs) make it possible to reason under uncertainty, by encoding inference problems as programs. In order to solve these inference problems, PPLs employ many different inference algorithms. Existing research on such inference algorithms mainly concerns their implementation and efficiency, rather than the correctness of the algorithms themselves when applied in the

    更新日期:2020-03-12
  • Consistency of the Predicative Calculus of Cumulative Inductive Constructions (pCuIC)
    arXiv.cs.PL Pub Date : 2017-10-11
    Amin Timany; Matthieu Sozeau

    In order to avoid well-know paradoxes associated with self-referential definitions, higher-order dependent type theories stratify the theory using a countably infinite hierarchy of universes (also known as sorts), Type$_0$ : Type$_1$ : $\cdots$ . Such type systems are called cumulative if for any type $A$ we have that $A$ : Type$_{i}$ implies $A$ : Type$_{i+1}$. The predicative calculus of inductive

    更新日期:2020-03-12
  • Egyptian multiplication and some of its ramifications
    arXiv.cs.PL Pub Date : 2019-01-30
    M. H. van Emden

    Multiplication and exponentiation can be defined by equations in which one of the operands is written as the sum of powers of two. When these powers are non-negative integers, the operand is integer; without this restriction it is a fraction. The defining equation can be used in evaluation mode or in solving mode. In the former case we obtain "Egyptian" multiplication, dating from the 17th century

    更新日期:2020-03-12
  • Learning Execution through Neural Code Fusion
    arXiv.cs.PL Pub Date : 2019-06-17
    Zhan Shi; Kevin Swersky; Daniel Tarlow; Parthasarathy Ranganathan; Milad Hashemi

    As the performance of computer systems stagnates due to the end of Moore's Law, there is a need for new models that can understand and optimize the execution of general purpose code. While there is a growing body of work on using Graph Neural Networks (GNNs) to learn representations of source code, these representations do not understand how code dynamically executes. In this work, we propose a new

    更新日期:2020-03-12
  • Code Obfuscation for the C/C++ Language
    arXiv.cs.PL Pub Date : 2020-03-06
    Dominik Picheta

    Obfuscation is the action of making something unintelligible. In software development, this action can be applied to source code or binary applications. The aim of this dissertation was to implement a tool for the obfuscation of C and C++ source code. The motivation was to allow proprietary code to be distributed to third-parties without risking a recreation of the intellectual property within it.

    更新日期:2020-03-10
  • Why You Cannot (Yet) Write an "Interval Arithmetic" Library in Common Lisp
    arXiv.cs.PL Pub Date : 2020-03-08
    Marco Antoniotti

    "Interval Arithmetic" (IA) appears to be a useful numerical tool to have at hand in several applications. Alas, the current IA descriptions and proposed standards are always formulated in terms of the IEEE-754 standard, and the status of IEEE-754 compliance of most Common Lisp implementations is not up to par. A solution would be for Common Lisp implementations to adhere to the Language Independent

    更新日期:2020-03-10
  • Cross-tier web programming for curated databases: A case study
    arXiv.cs.PL Pub Date : 2020-03-08
    Simon Fowler; Simon D. Harding; Joanna Sharman; James Cheney

    Curated databases have become important sources of information across scientific disciplines, and due to the manual work of experts, often become important reference works. Features such as provenance tracking, archiving, and data citation are widely regarded as important features for curated databases, but implementing such features is challenging, and small database projects often lack the resources

    更新日期:2020-03-10
  • Modeling the Invariance of Virtual Pointers in LLVM
    arXiv.cs.PL Pub Date : 2020-02-22
    Piotr Padlewski; Krzysztof Pszeniczny; Richard Smith

    Devirtualization is a compiler optimization that replaces indirect (virtual) function calls with direct calls. It is particularly effective in object-oriented languages, such as Java or C++, in which virtual methods are typically abundant. We present a novel abstract model to express the lifetimes of C++ dynamic objects and invariance of virtual table pointers in the LLVM intermediate representation

    更新日期:2020-03-10
  • Optimizing Streaming Parallelism on Heterogeneous Many-Core Architectures: A Machine Learning Based Approach
    arXiv.cs.PL Pub Date : 2020-03-05
    Peng Zhang; Jianbin Fang; Canqun Yang; Chun Huang; Tao Tang; Zheng Wang

    This article presents an automatic approach to quickly derive a good solution for hardware resource partition and task granularity for task-based parallel applications on heterogeneous many-core architectures. Our approach employs a performance model to estimate the resulting performance of the target application under a given resource partition and task granularity configuration. The model is used

    更新日期:2020-03-10
  • TensorFlow Quantum: A Software Framework for Quantum Machine Learning
    arXiv.cs.PL Pub Date : 2020-03-06
    Michael Broughton; Guillaume Verdon; Trevor McCourt; Antonio J. Martinez; Jae Hyeon Yoo; Sergei V. Isakov; Philip Massey; Murphy Yuezhen Niu; Ramin Halavati; Evan Peters; Martin Leib; Andrea Skolik; Michael Streif; David Von Dollen; Jarrod R. McClean; Sergio Boixo; Dave Bacon; Alan K. Ho; Hartmut Neven; Masoud Mohseni

    We introduce TensorFlow Quantum (TFQ), an open source library for the rapid prototyping of hybrid quantum-classical models for classical or quantum data. This framework offers high-level abstractions for the design and training of both discriminative and generative quantum models under TensorFlow and supports high-performance quantum circuit simulators. We provide an overview of the software architecture

    更新日期:2020-03-09
  • Diamonds are not forever: Liveness in reactive programming with guarded recursion
    arXiv.cs.PL Pub Date : 2020-03-06
    Patrick Bahr; Christian Uldal Graulund; Rasmus Møgelberg

    When designing languages for functional reactive programming (FRP) the main challenge is to provide the user with a simple, flexible interface for writing programs on a high level of abstraction while ensuring that all programs can be implemented efficiently in a low-level language. To meet this challenge, a new family of modal FRP languages has been proposed, in which variants of Nakano's guarded

    更新日期:2020-03-09
  • Memory-Safety Challenge Considered Solved? An Empirical Study with All Rust CVEs
    arXiv.cs.PL Pub Date : 2020-03-06
    Hui Xu; Zhuangbin Chen; Mingshen Sun; Yangfan Zhou

    Rust is an emerging programing language that aims at preventing memory-safety bugs without sacrificing much efficiency. The property is very attractive to developers, and many projects start using the language. However, can Rust achieve the memory-safety promise? This paper studies the question by surveying the bug reports collected from two public datasets, Advisory-db and Trophy-cases, which contain

    更新日期:2020-03-09
  • Compositional Non-Interference for Fine-Grained Concurrent Programs
    arXiv.cs.PL Pub Date : 2019-10-02
    Dan Frumin; Robbert Krebbers; Lars Birkedal

    Non-interference is a program property that ensures the absence of information leaks. In the context of programming languages, there exist two common approaches for establishing non-interference: type systems and program logics. Type systems provide strong automation (by means of type checking), but they are inherently restrictive in the kind of programs they support. Program logics support challenging

    更新日期:2020-03-09
  • Counting Immutable Beans: Reference Counting Optimized for Purely Functional Programming
    arXiv.cs.PL Pub Date : 2019-08-15
    Sebastian Ullrich; Leonardo de Moura

    Most functional languages rely on some garbage collection for automatic memory management. They usually eschew reference counting in favor of a tracing garbage collector, which has less bookkeeping overhead at runtime. On the other hand, having an exact reference count of each value can enable optimizations, such as destructive updates. We explore these optimization opportunities in the context of

    更新日期:2020-03-06
  • Asynchronous effects
    arXiv.cs.PL Pub Date : 2020-03-04
    Danel Ahman; Matija Pretnar

    We investigate asynchronous programming in the context of algebraic effects. In contrast to their conventional synchronous treatment, we show that one can naturally also accommodate asynchrony within algebraic effects, by decoupling the execution of operation calls into signalling that the operation's implementation needs to be executed and interrupting the computation with the operation's result,

    更新日期:2020-03-05
  • Language-Integrated Updatable Views (Extended version)
    arXiv.cs.PL Pub Date : 2020-03-04
    Rudi Horn; Simon Fowler; James Cheney

    Relational lenses are a modern approach to the view update problem in relational databases. As introduced by Bohannon et al. (2006), relational lenses allow the definition of updatable views by the composition of lenses performing individual transformations. Horn et al. (2018) provided the first implementation of incremental relational lenses, which demonstrated that relational lenses can be implemented

    更新日期:2020-03-05
  • Revisiting Occurrence Typing
    arXiv.cs.PL Pub Date : 2019-07-12
    Giuseppe CastagnaCNRS, UParis; Victor LanvinIRIF; Mickaël LaurentENS Paris Saclay; Kim NguyenLRI

    We revisit occurrence typing, a technique to refine the type of variables occurring in type-cases and, thus, capture some programming patterns used in untyped languages. Although occurrence typing was tied from its inception to set-theoretic types---union types, in particular---it never fully exploited the capabilities of these types. Here we show how, by using set-theoretic types, it is possible to

    更新日期:2020-03-05
  • Generating Correctness Proofs with Neural Networks
    arXiv.cs.PL Pub Date : 2019-07-17
    Alex Sanchez-Stern; Yousef Alhessi; Lawrence Saul; Sorin Lerner

    Foundational verification allows programmers to build software which has been empirically shown to have high levels of assurance in a variety of important domains. However, the cost of producing foundationally verified software remains prohibitively high for most projects,as it requires significant manual effort by highly trained experts. In this paper we present Proverbot9001 a proof search system

    更新日期:2020-03-05
  • A Compiler Infrastructure for FPGA and ASIC Development
    arXiv.cs.PL Pub Date : 2020-02-29
    John Demme

    This whitepaper proposes a unified framework for hardware design tools to ease the development and inter-operability of said tools. By creating a large ecosystem of hardware development tools across vendors, academia, and the open source community, we hope to significantly increase much need productivity in hardware design.

    更新日期:2020-03-03
  • DangKiller: Eliminating Dangling Pointers Efficiently via Implicit Identifier
    arXiv.cs.PL Pub Date : 2020-02-29
    Daliang Xu; Dongwei Chen; Chun Yang; KangSun; Xu Cheng; Dong Tong

    Use-After-Free vulnerabilities, allowing the attacker to access unintended memory via dangling pointers, are more threatening. However, most detection schemes can only detect dangling pointers and invalid them, but not provide a tolerance mechanism to repair the errors at runtime. Also, these techniques obtain and manage the metadata inefficiently with complex structures and too much scan (sweep).

    更新日期:2020-03-03
  • Enumerating Hardware-Software Splits with Program Rewriting
    arXiv.cs.PL Pub Date : 2020-02-29
    Gus SmithUniversity of Washington; Zachary TatlockUniversity of Washington; Luis CezeUniversity of Washington

    A core problem in hardware-software codesign is in the sheer size of the design space. Without a set ISA to constrain the hardware-software interface, the design space explodes. This work presents a strategy for managing the massive hardware-software design space within the domain of machine learning inference workloads and accelerators. We first propose EngineIR, a new language for representing machine

    更新日期:2020-03-03
  • Renegotiation and recursion in Bitcoin contracts
    arXiv.cs.PL Pub Date : 2020-02-29
    Massimo Bartoletti; Maurizio Murgia; Roberto Zunino

    BitML is a process calculus to express smart contracts that can be run on Bitcoin. One of its current limitations is that, once a contract has been stipulated, the participants cannot renegotiate its terms: this prevents expressing common financial contracts, where funds have to be added by participants at run-time. In this paper, we extend BitML with a new primitive for contract renegotiation. At

    更新日期:2020-03-03
  • The cross cyclomatic complexity: a bi-dimensional measure for program complexity on graphs
    arXiv.cs.PL Pub Date : 2020-03-01
    Hugo Tremblay; Fabio Petrillo

    Reduce and control complexity is an essential practice in software design. Cyclomatic complexity (CC) is one of the most popular software metrics, applied for more than 40 years. Despite CC is an interesting metric to highlight the number of branches in a program, it clearly not sufficient to represent the complexity in a piece of software. In this paper, we introduce the cross cyclomatic complexity

    更新日期:2020-03-03
  • Process algebra, process scheduling, and mutual exclusion
    arXiv.cs.PL Pub Date : 2020-03-01
    C. A. Middelburg

    In the case of multi-threading as found in contemporary programming languages, parallel processes are interleaved according to what is known as a process-scheduling policy in the field of operating systems. In a previous paper, we extend ACP with this form of interleaving. In the current paper, we do so with the variant of ACP known as ACP$_\epsilon$. The choice of ACP$_\epsilon$ stems from the need

    更新日期:2020-03-03
  • AutoPhase: Juggling HLS Phase Orderings in Random Forests with Deep Reinforcement Learning
    arXiv.cs.PL Pub Date : 2020-03-02
    Qijing Huang; Ameer Haj-Ali; William Moses; John Xiang; Ion Stoica; Krste Asanovic; John Wawrzynek

    The performance of the code a compiler generates depends on the order in which it applies the optimization passes. Choosing a good order--often referred to as the phase-ordering problem, is an NP-hard problem. As a result, existing solutions rely on a variety of heuristics. In this paper, we evaluate a new technique to address the phase-ordering problem: deep reinforcement learning. To this end, we

    更新日期:2020-03-03
  • Observability = Typability + Inhabitation
    arXiv.cs.PL Pub Date : 2018-12-14
    Antonio Bucciarelli; Delia Kesner; Simona Ronchi Della Rocca

    We define an observability property for a calculus with pattern matching which is inspired by the notion of solvability for the lambda-calculus. We prove that observability can be characterized by means of typability and inhabitation in an intersection type system P based on non-idempotent types. We show first that the system P characterizes the set of terms having canonical form, i.e. that a term

    更新日期:2020-03-03
  • A true concurrent model of smart contracts executions
    arXiv.cs.PL Pub Date : 2019-05-10
    Massimo Bartoletti; Letterio Galletta; Maurizio Murgia

    The development of blockchain technologies has enabled the trustless execution of so-called smart contracts, i.e. programs that regulate the exchange of assets (e.g., cryptocurrency) between users. In a decentralized blockchain, the state of smart contracts is collaboratively maintained by a peer-to-peer network of mutually untrusted nodes, which collect from users a set of transactions (representing

    更新日期:2020-03-03
  • Set Constraints, Pattern Match Analysis, and SMT
    arXiv.cs.PL Pub Date : 2019-05-23
    Joseph Eremondi

    Set constraints provide a highly general way to formulate program analyses. However, solving arbitrary boolean combinations of set constraints is NEXPTIME-hard. Moreover, while theoretical algorithms to solve arbitrary set constraints exist, they are either too complex to realistically implement or too slow to ever run. We present a translation that converts a set constraint formula into an SMT problem

    更新日期:2020-03-03
  • Probabilistic process algebra and strategic interleaving
    arXiv.cs.PL Pub Date : 2019-12-20
    C. A. Middelburg

    We first present a probabilistic version of ACP that rests on the principle that probabilistic choices are resolved before choices involved in alternative composition and parallel composition are resolved and then extend this probabilistic version of ACP with a form of interleaving in which parallel processes are interleaved according to what is known as a process-scheduling policy in the field of

    更新日期:2020-03-03
  • Behavioural Types for Memory and Method Safety in a Core Object-Oriented Language
    arXiv.cs.PL Pub Date : 2020-02-28
    Mario Bravetti; Adrian Francalanza; Iaroslav Golovanov; Hans Hüttel; Mathias Steen Jakobsen; Mikkel Klinke Kettunen; António Ravara

    We present a type-based analysis ensuring memory safety and object protocol completion in the Java-like language Mungo. Objects are annotated with usages, typestates-like specifications of the admissible sequences of method calls. The analysis entwines usage checking, controlling the order in which methods are called, with a static check determining whether references may contain null values. The analysis

    更新日期:2020-03-02
  • Declarative Programming with Intensional Sets in Java Using JSetL
    arXiv.cs.PL Pub Date : 2020-02-26
    Maximiliano Cristiá; Andrea Fois; Gianfranco Rossi

    Intensional sets are sets given by a property rather than by enumerating their elements. In previous work, we have proposed a decision procedure for a first-order logic language which provides Restricted Intensional Sets (RIS), i.e., a sub-class of intensional sets that are guaranteed to denote finite---though unbounded---sets. In this paper we show how RIS can be exploited as a convenient programming

    更新日期:2020-02-27
  • Datalog Disassembly
    arXiv.cs.PL Pub Date : 2019-06-07
    Antonio Flores-Montoya; Eric Schulte

    Disassembly is fundamental to binary analysis and rewriting. We present a novel disassembly technique that takes a stripped binary and produces reassembleable assembly code. The resulting assembly code has accurate symbolic information, providing cross-references for analysis and to enable adjustment of code and data pointers to accommodate rewriting. Our technique features multiple static analyses

    更新日期:2020-02-27
  • A Type Checker for a Logical Framework with Union and Intersection Types
    arXiv.cs.PL Pub Date : 2020-02-25
    Luigi Liquori; Claude Stolze

    We present the syntax, semantics, and typing rules of Bull, a prototype theorem prover based on the Delta-Framework, i.e. a fully-typed lambda-calculus decorated with union and intersection types, as described in previous papers by the authors. Bull also implements a subtyping algorithm for the Type Theory Xi of Barbanera-Dezani-de'Liguoro. Bull has a command-line interface where the user can declare

    更新日期:2020-02-26
  • Security Wrappers for Information-Flow Control in Active Object Languages with Futures
    arXiv.cs.PL Pub Date : 2020-02-25
    Farzane Karami; Olaf Owe; Gerardo Schneider

    This paper introduces a run-time mechanism for preventing leakage of secure information in distributed systems. We consider a general concurrency language model, where concurrent objects interact by asynchronous method calls and futures. The aim is to prevent leakage of confidential information to low-level viewers. The approach is based on the notion of a security wrapper, which encloses an object

    更新日期:2020-02-26
  • MLIR: A Compiler Infrastructure for the End of Moore's Law
    arXiv.cs.PL Pub Date : 2020-02-25
    Chris Lattner; Jacques Pienaar; Mehdi Amini; Uday Bondhugula; River Riddle; Albert Cohen; Tatiana Shpeisman; Andy Davis; Nicolas Vasilache; Oleksandr Zinenko

    This work presents MLIR, a novel approach to building reusable and extensible compiler infrastructure. MLIR aims to address software fragmentation, improve compilation for heterogeneous hardware, significantly reduce the cost of building domain specific compilers, and aid in connecting existing compilers together. MLIR facilitates the design and implementation of code generators, translators and optimizers

    更新日期:2020-02-26
  • Facilitating Rapid Prototyping in the OODIDA Data Analytics Platform via Active-Code Replacement
    arXiv.cs.PL Pub Date : 2019-03-22
    Gregor Ulm; Simon Smith; Adrian Nilsson; Emil Gustavsson; Mats Jirstrand

    OODIDA (On-board/Off-board Distributed Data Analytics) is a platform for distributed real-time analytics. It targets fleets of reference vehicles in the automotive industry; its users are data analysts. The bulk of the data analytics tasks are performed by clients (on-board), while a central cloud server performs supplementary tasks (off-board). OODIDA can be automatically packaged and deployed, which

    更新日期:2020-02-26
  • Exponential Amortized Resource Analysis
    arXiv.cs.PL Pub Date : 2020-02-21
    David M Kahn; Jan Hoffmann

    Automatic amortized resource analysis (AARA) is a type-based technique for inferring concrete (non-asymptotic) bounds on a program's resource usage. Existing work on AARA has focused on bounds that are polynomial in the sizes of the inputs. This paper presents and extension of AARA to exponential bounds that preserves the benefits of the technique, such as compositionality and efficient type inference

    更新日期:2020-02-25
  • Verifying Array Manipulating Programs with Full-Program Induction
    arXiv.cs.PL Pub Date : 2020-02-23
    Supratik Chakraborty; Ashutosh Gupta; Divyesh Unadkat

    We present a full-program induction technique for proving (a sub-class of) quantified as well as quantifier-free properties of programs manipulating arrays of parametric size N. Instead of inducting over individual loops, our technique inducts over the entire program (possibly containing multiple loops) directly via the program parameter N. Significantly, this does not require generation or use of

    更新日期:2020-02-25
  • Superoptimization of WebAssembly Bytecode
    arXiv.cs.PL Pub Date : 2020-02-24
    Javier Cabrera Arteaga; Shrinish Donde; Jian Gu; Orestis Floros; Lucas Satabin; Benoit Baudry; Martin Monperrus

    Motivated by the fast adoption of WebAssembly, we propose the first functional pipeline to support the superoptimization of WebAssembly bytecode. Our pipeline works over LLVM and Souper. We evaluate our superoptimization pipeline with 12 programs from the Rosetta code project. Our pipeline improves the code section size of 8 out of 12 programs. We discuss the challenges faced in superoptimization of

    更新日期:2020-02-25
  • Trace-Relating Compiler Correctness and Secure Compilation
    arXiv.cs.PL Pub Date : 2019-07-11
    Carmine Abate; Roberto Blanco; Stefan Ciobaca; Adrien Durier; Deepak Garg; Catalin Hritcu; Marco Patrignani; Éric Tanter; Jérémy Thibault

    Compiler correctness is, in its simplest form, defined as the inclusion of the set of traces of the compiled program into the set of traces of the original program, which is equivalent to the preservation of all trace properties. Here traces collect, for instance, the externally observable events of each execution. This definition requires, however, the set of traces of the source and target languages

    更新日期:2020-02-25
  • RustHorn: CHC-based Verification for Rust Programs (full version)
    arXiv.cs.PL Pub Date : 2020-02-20
    Yusuke Matsushita; Takeshi Tsukada; Naoki Kobayashi

    Reduction to the satisfiablility problem for constrained Horn clauses (CHCs) is a widely studied approach to automated program verification. The current CHC-based methods for pointer-manipulating programs, however, are not very scalable. This paper proposes a novel translation of pointer-manipulating Rust programs into CHCs, which clears away pointers and heaps by leveraging ownership. We formalize

    更新日期:2020-02-24
Contents have been reproduced by permission of the publishers.
导出
全部期刊列表>>
全球疫情及响应:BMC Medicine专题征稿
欢迎探索2019年最具下载量的化学论文
新版X-MOL期刊搜索和高级搜索功能介绍
化学材料学全球高引用
ACS材料视界
南方科技大学
x-mol收录
南方科技大学
自然科研论文编辑服务
上海交通大学彭文杰
中国科学院长春应化所于聪-4-8
武汉工程大学
课题组网站
X-MOL
深圳大学二维材料实验室张晗
中山大学化学工程与技术学院
试剂库存
天合科研
down
wechat
bug