Zum Hauptinhalt springen

Showing 1–16 of 16 results for author: Siek, J G

Searching in archive cs. Search in all archives.
.
  1. arXiv:2312.02359  [pdf

    cs.PL

    Quest Complete: the Holy Grail of Gradual Security

    Authors: Tianyu Chen, Jeremy G. Siek

    Abstract: Languages with gradual information-flow control combine static and dynamic techniques to prevent security leaks. Gradual languages should satisfy the gradual guarantee: programs that only differ in the precision of their type annotations should behave the same modulo cast errors. Unfortunately, Toro et al. [2018] identify a tension between the gradual guarantee and information security; they were… ▽ More

    Submitted 9 April, 2024; v1 submitted 4 December, 2023; originally announced December 2023.

    Comments: 48 pages, 24 figures

    MSC Class: 68N15 ACM Class: D.3

  2. arXiv:2211.15745  [pdf

    cs.PL

    Mechanized Noninterference for Gradual Security

    Authors: Tianyu Chen, Jeremy G. Siek

    Abstract: This paper presents the first machine-checked proof of noninterference for a language with gradual information-flow control, thereby establishing a rock solid foundation for secure programming languages that give programmers the choice between runtime versus compile-time enforcement. Along the way we uncovered a flaw in one of the noninterference proofs in the literature, and give a counterexample… ▽ More

    Submitted 28 November, 2022; originally announced November 2022.

    Comments: 32 pages, 18 figures

  3. arXiv:2001.11560  [pdf, ps, other

    cs.PL

    Parameterized Cast Calculi and Reusable Meta-theory for Gradually Typed Lambda Calculi

    Authors: Jeremy G. Siek

    Abstract: The research on gradual typing has led to many variations on the Gradually Typed Lambda Calculus (GTLC) of Siek and Taha (2006) and its underlying cast calculus. For example, Wadler and Findler (2009) added blame tracking, Siek et al. (2009) investigated alternate cast evaluation strategies, and Herman et al. (2010) replaced casts with coercions for space-efficiency. The meta-theory for the GTLC h… ▽ More

    Submitted 15 May, 2021; v1 submitted 30 January, 2020; originally announced January 2020.

    Comments: In submission to Journal of Functional Programming

  4. arXiv:1906.09709  [pdf, ps, other

    cs.PL cs.LO

    Transitivity of Subtyping for Intersection Types

    Authors: Jeremy G. Siek

    Abstract: The subtyping rules for intersection types traditionally employ a transitivity rule (Barendregt et al. 1983), which means that subtyping does not satisfy the subformula property, making it more difficult to use in filter models for compiler verification. Laurent develops a sequent-style subtyping system, without transitivity, and proves transitivity via a sequence of six lemmas that culminate in c… ▽ More

    Submitted 15 May, 2020; v1 submitted 23 June, 2019; originally announced June 2019.

    Comments: 18 pages

  5. arXiv:1902.07808  [pdf, other

    cs.PL

    Optimizing and Evaluating Transient Gradual Typing

    Authors: Michael M. Vitousek, Jeremy G. Siek, Avik Chaudhuri

    Abstract: Gradual typing enables programmers to combine static and dynamic typing in the same language. However, ensuring a sound interaction between the static and dynamic parts can incur significant runtime cost. In this paper, we perform a detailed performance analysis of the transient gradual typing approach implemented in Reticulated Python, a gradually typed variant of Python. The transient approach i… ▽ More

    Submitted 20 February, 2019; originally announced February 2019.

  6. arXiv:1802.06375  [pdf, other

    cs.PL

    Efficient Gradual Typing

    Authors: Andre Kuhlenschmidt, Deyaaeldeen Almahallawi, Jeremy G. Siek

    Abstract: Gradual typing combines static and dynamic typing in the same program. One would hope that the performance in a gradually typed language would range between that of a dynamically typed language and a statically typed language. Existing implementations of gradually typed languages have not achieved this goal due to overheads associated with runtime casts. Takikawa et al. (2016) report up to 100… ▽ More

    Submitted 18 February, 2018; originally announced February 2018.

  7. arXiv:1707.03762  [pdf, ps, other

    cs.PL cs.LO

    Revisiting Elementary Denotational Semantics

    Authors: Jeremy G. Siek

    Abstract: Operational semantics have been enormously successful, in large part due to its flexibility and simplicity, but they are not compositional. Denotational semantics, on the other hand, are compositional but the lattice-theoretic models are complex and difficult to scale to large languages. However, there are elementary models of the $λ$-calculus that are much less complex: by Coppo, Dezani-Ciancagli… ▽ More

    Submitted 20 October, 2017; v1 submitted 12 July, 2017; originally announced July 2017.

    Comments: 25 pages, revision of POPL 2018 submission, now under submission to ESOP 2018

  8. arXiv:1611.05105  [pdf, ps, other

    cs.PL

    Well-Typed Languages are Sound

    Authors: Matteo Cimini, Dale Miller, Jeremy G. Siek

    Abstract: Type soundness is an important property of modern programming languages. In this paper we explore the idea that "well-typed languages are sound": the idea that the appropriate typing discipline over language specifications guarantees that the language is type sound. We instantiate this idea for a certain class of languages defined using small step operational semantics by ensuring the progress and… ▽ More

    Submitted 15 November, 2016; originally announced November 2016.

    ACM Class: D.3.1

  9. arXiv:1610.08476  [pdf, other

    cs.PL

    Gradual Typing in an Open World

    Authors: Michael M. Vitousek, Jeremy G. Siek

    Abstract: Gradual typing combines static and dynamic typing in the same language, offering the benefits of both to programmers. Static typing provides error detection and strong guarantees while dynamic typing enables rapid prototyping and flexible programming idioms. For programmers to fully take advantage of a gradual type system, however, they must be able to trust their type annotations, and so runtime… ▽ More

    Submitted 26 October, 2016; originally announced October 2016.

  10. arXiv:1312.0694  [pdf, ps, other

    cs.PL

    Monotonic References for Gradual Typing

    Authors: Jeremy G. Siek, Michael M. Vitousek

    Abstract: We describe an alternative approach to handling mutable references (aka. pointers) within a gradually typed language that has different efficiency characteristics than the prior approach of Herman et al. [2010]. In particular, we reduce the costs of reading and writing through references in statically typed regions of code. We reduce the costs to be the same as they would in a statically typed lan… ▽ More

    Submitted 12 July, 2014; v1 submitted 2 December, 2013; originally announced December 2013.

  11. arXiv:1208.0535  [pdf, ps, other

    cs.PL

    Modular Type-Safety Proofs using Dependant Types

    Authors: Christopher Schwaab, Jeremy G. Siek

    Abstract: While methods of code abstraction and reuse are widespread and well researched, methods of proof abstraction and reuse are still emerging. We consider the use of dependent types for this purpose, introducing a completely mechanical approach to proof composition. We show that common techniques for abstracting algorithms over data structures naturally translate to abstractions over proofs. We first… ▽ More

    Submitted 2 August, 2012; originally announced August 2012.

    Comments: 8 pages

  12. arXiv:1205.1098  [pdf, other

    cs.MS cs.PF cs.PL

    Reliable Generation of High-Performance Matrix Algebra

    Authors: Geoffrey Belter, Elizabeth Jessup, Thomas Nelson, Boyana Norris, Jeremy G. Siek

    Abstract: Scientific programmers often turn to vendor-tuned Basic Linear Algebra Subprograms (BLAS) to obtain portable high performance. However, many numerical algorithms require several BLAS calls in sequence, and those successive calls result in suboptimal performance. The entire sequence needs to be optimized in concert. Instead of vendor-tuned BLAS, a programmer could start with source code in Fortran… ▽ More

    Submitted 5 May, 2012; originally announced May 2012.

  13. arXiv:1201.0027  [pdf, other

    cs.PL

    The C++0x "Concepts" Effort

    Authors: Jeremy G. Siek

    Abstract: C++0x is the working title for the revision of the ISO standard of the C++ programming language that was originally planned for release in 2009 but that was delayed to 2011. The largest language extension in C++0x was "concepts", that is, a collection of features for constraining template parameters. In September of 2008, the C++ standards committee voted the concepts extension into C++0x, but the… ▽ More

    Submitted 29 December, 2011; originally announced January 2012.

  14. arXiv:1201.0024  [pdf, other

    cs.PL

    Well-typed Islands Parse Faster

    Authors: Erik Silkensen, Jeremy G. Siek

    Abstract: This paper addresses the problem of specifying and parsing the syntax of domain-specific languages (DSLs) in a modular, user-friendly way. That is, we want to enable the design of composable DSLs that combine the natural syntax of external DSLs with the easy implementation of internal DSLs. The challenge in parsing composable DSLs is that the composition of several (individually unambiguous) langu… ▽ More

    Submitted 29 December, 2011; originally announced January 2012.

  15. arXiv:1201.0023  [pdf, ps, other

    cs.PL

    Effects for Funargs

    Authors: Jeremy G. Siek, Michael M. Vitousek, Jonathan D. Turner

    Abstract: Stack allocation and first-class functions don't naturally mix together. In this paper we show that a type and effect system can be the detergent that helps these features form a nice emulsion. Our interest in this problem comes from our work on the Chapel language, but this problem is also relevant to lambda expressions in C++ and blocks in Objective C. The difficulty in mixing first-class functi… ▽ More

    Submitted 29 December, 2011; originally announced January 2012.

  16. arXiv:0708.2255  [pdf, other

    cs.PL cs.SE

    A Language for Generic Programming in the Large

    Authors: Jeremy G. Siek, Andrew Lumsdaine

    Abstract: Generic programming is an effective methodology for developing reusable software libraries. Many programming languages provide generics and have features for describing interfaces, but none completely support the idioms used in generic programming. To address this need we developed the language G. The central feature of G is the concept, a mechanism for organizing constraints on generics that is… ▽ More

    Submitted 16 August, 2007; originally announced August 2007.

    Comments: 50 pages

    ACM Class: D.3.3