Is sound gradual typing dead?
A Takikawa, D Feltey, B Greenman, MS New… - Proceedings of the 43rd …, 2016 - dl.acm.org
Programmers have come to embrace dynamically-typed languages for prototyping and
delivering large and complex systems. When it comes to maintaining and evolving these …
delivering large and complex systems. When it comes to maintaining and evolving these …
Abstracting definitional interpreters (functional pearl)
In this functional pearl, we examine the use of definitional interpreters as a basis for abstract
interpretation of higher-order programming languages. As it turns out, definitional …
interpretation of higher-order programming languages. As it turns out, definitional …
Compiling symbolic execution with staging and algebraic effects
Building effective symbolic execution engines poses challenges in multiple dimensions: an
engine must correctly model the program semantics, provide flexibility in symbolic execution …
engine must correctly model the program semantics, provide flexibility in symbolic execution …
Types, modes and so much more–the Prolog way
We present in a tutorial way some ideas developed in the context of the Ciao Prolog system
that we believe could be useful for the future evolution of Prolog. We concentrate primarily …
that we believe could be useful for the future evolution of Prolog. We concentrate primarily …
Relatively complete counterexamples for higher-order programs
PC Nguyễn, D Van Horn - ACM SIGPLAN Notices, 2015 - dl.acm.org
In this paper, we study the problem of generating inputs to a higher-order program causing it
to error. We first approach the problem in the setting of PCF, a typed, core functional …
to error. We first approach the problem in the setting of PCF, a typed, core functional …
Soft contract verification for higher-order stateful programs
Software contracts allow programmers to state rich program properties using the full
expressive power of an object language. However, since they are enforced at runtime …
expressive power of an object language. However, since they are enforced at runtime …
Securing Verified IO Programs Against Unverified Code in F
We introduce SCIO*, a formally secure compilation framework for statically verified programs
performing input-output (IO). The source language is an F* subset in which a verified …
performing input-output (IO). The source language is an F* subset in which a verified …
Automatic and scalable detection of logical errors in functional programming assignments
D Song, M Lee, H Oh - Proceedings of the ACM on Programming …, 2019 - dl.acm.org
We present a new technique for automatically detecting logical errors in functional
programming assignments. Compared to syntax or type errors, detecting logical errors …
programming assignments. Compared to syntax or type errors, detecting logical errors …
How to evaluate the performance of gradual type systems
B Greenman, A Takikawa, MS New, D Feltey… - Journal of Functional …, 2019 - cambridge.org
A sound gradual type system ensures that untyped components of a program can never
break the guarantees of statically typed components. This assurance relies on runtime …
break the guarantees of statically typed components. This assurance relies on runtime …
[PDF][PDF] Gradual C0: Symbolic Execution for Efficient Gradual Verification
J DiVincenzo, I McCormack, H Gouni… - arXiv preprint arXiv …, 2022 - jennalwise.github.io
Separation logic [Reynolds 2002] supports the modular static verification of heap-
manipulating programs. The↦→ operator asserts both ownership of a heap location and its …
manipulating programs. The↦→ operator asserts both ownership of a heap location and its …