English
Related papers

Related papers: A Dependently Typed Library for Static Information…

200 papers

It is common to prove by reasoning over source code that programs do not leak sensitive data. But doing so leaves a gap between reasoning and reality that can only be filled by accounting for the behaviour of the compiler. This task is…

Logic in Computer Science · Computer Science 2020-10-23 Robert Sison , Toby Murray

We present Lifty, a domain-specific language for data-centric applications that manipulate sensitive data. A Lifty programmer annotates the sources of sensitive data with declarative security policies, and the language statically and…

Programming Languages · Computer Science 2020-07-02 Nadia Polikarpova , Deian Stefan , Jean Yang , Shachar Itzhaky , Travis Hance , Armando Solar-Lezama

Redis is an in-memory data structure store, often used as a database, with a Haskell interface Hedis. Redis is dynamically typed --- a key can be discarded and re-associated to a value of a different type, and a command, when fetching a…

Programming Languages · Computer Science 2017-08-31 Ting-Yan Lai , Tyng-Ruey Chuang , Shin-Cheng Mu

We present an approach for dynamic information flow control across the application and database. Our approach reduces the amount of policy code required, yields formal guarantees across the application and database, works with existing…

Programming Languages · Computer Science 2016-04-26 Jean Yang , Travis Hance , Thomas H. Austin , Armando Solar-Lezama , Cormac Flanagan , Stephen Chong

When components of a system exchange data, they need to serialise the data so that it can be sent over the network. Then, the recipient has to deserialise the data in order to be able to process it. These steps take time and have an impact…

Programming Languages · Computer Science 2025-04-30 Arthur Jamet , Michael Vollmer

A central goal of probabilistic programming languages (PPLs) is to separate modelling from inference. However, this goal is hard to achieve in practice. Users are often forced to re-write their models in order to improve efficiency of…

Programming Languages · Computer Science 2022-02-21 Maria I. Gorinova , Andrew D. Gordon , Charles Sutton , Matthijs Vákár

Applications written in low-level languages without type or memory safety are especially prone to memory corruption. Attackers gain code execution capabilities through such applications despite all currently deployed defenses by exploiting…

Cryptography and Security · Computer Science 2014-07-03 Mathias Payer , Antonio Barresi , Thomas R. Gross

A distributed storage system (DSS) needs to be efficiently accessible and repairable. Recently, considerable effort has been made towards the latter, while the former is usually not considered, since a trivial solution exists in the form of…

Information Theory · Computer Science 2020-01-16 Lukas Holzbaur , Stanislav Kruglik , Alexey Frolov , Antonia Wachter-Zeh

We present Turnstile+, a high-level, macros-based metaDSL for building dependently typed languages. With it, programmers may rapidly prototype and iterate on the design of new dependently typed features and extensions. Or they may create…

Programming Languages · Computer Science 2021-07-06 Stephen Chang , Michael Ballantyne , Milo Turner , William J. Bowman

Information-flow control systems often enforce progress-insensitive noninterference, as it is simple to understand and enforce. Unfortunately, real programs need to declassify results and endorse inputs, which noninterference disallows,…

Cryptography and Security · Computer Science 2025-07-29 Ethan Cecchetti

Deadlocks occur in concurrent programs as a consequence of cyclic resource acquisition between threads. In this paper we present a novel type system that guarantees deadlock freedom for a language with references, unstructured locking…

Programming Languages · Computer Science 2011-10-20 Prodromos Gerakios , Nikolaos Papaspyrou , Konstantinos Sagonas

Dependently typed programming languages such as Coq, Agda, Idris, and F*, allow programmers to write detailed specifications of their programs and prove their programs meet these specifications. However, these specifications can be violated…

Programming Languages · Computer Science 2025-09-12 Paulette Koronkevich , William J. Bowman

Web applications written in JavaScript are regularly used for dealing with sensitive or personal data. Consequently, reasoning about their security properties has become an important problem, which is made very difficult by the highly…

Programming Languages · Computer Science 2013-02-14 Martin Lester , Luke Ong , Max Schaefer

Modern Haskell supports zero-cost coercions, a mechanism where types that share the same run-time representation may be freely converted between. To make sure such conversions are safe and desirable, this feature relies on a mechanism of…

Programming Languages · Computer Science 2019-06-03 Stephanie Weirich , Pritam Choudhury , Antoine Voizard , Richard A. Eisenberg

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…

Cryptography and Security · Computer Science 2023-06-22 Cristian Ene , Laurent Mounier , Marie-Laure Potet

Modern programmable network switches can implement custom applications using efficient packet processing hardware, and the programming language P4 provides high-level constructs to program such switches. The increase in speed and…

Programming Languages · Computer Science 2022-06-15 Karuna Grewal , Loris D'Antoni , Justin Hsu

Type systems hide data that is captured by function closures in function types. In most cases this is a beneficial design that favors simplicity and compositionality. However, some applications require explicit information about the data…

Programming Languages · Computer Science 2013-12-03 Gabriel Scherer , Jan Hoffmann

A security policy specifies a security property as the maximal information flow. A distributed system composed of interacting processes implicitly defines an intransitive security policy by repudiating direct information flow between…

Cryptography and Security · Computer Science 2013-10-15 Jean Quilbeuf , Georgeta Igna , Denis Bytschkow , Harald Ruess

We present a new design for an algebraic simplification library structured around concepts from universal algebra: theories, models, homomorphisms, and universal properties of free algebras and free extensions of algebras. The library's…

Programming Languages · Computer Science 2025-07-21 Guillaume Allais , Edwin Brady , Nathan Corbyn , Ohad Kammar , Jeremy Yallop

Real-world applications routinely make authorization decisions based on dynamic computation. Reasoning about dynamically computed authority is challenging. Integrity of the system might be compromised if attackers can improperly influence…

Cryptography and Security · Computer Science 2021-04-22 Owen Arden , Anitha Gollamudi , Ethan Cecchetti , Stephen Chong , Andrew C. Myers