• 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
• 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
• 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
• 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
• arXiv.cs.PL Pub Date : 2020-03-11

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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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.

down
wechat
bug