Graph IRs for impure higher-order languages: Making aggressive optimizations affordable with precise effect dependencies

O Bračevac, G Wei, S Jia, S Abeysinghe… - Proceedings of the …, 2023 - dl.acm.org
Graph-based intermediate representations (IRs) are widely used for powerful compiler
optimizations, either interprocedurally in pure functional languages, or intraprocedurally in …

Abstracting abstract machines

D Van Horn, M Might - Proceedings of the 15th ACM SIGPLAN …, 2010 - dl.acm.org
We describe a derivational approach to abstract interpretation that yields novel and
transparently sound static analyses when applied to well-established abstract machines. To …

Verifying higher-order functional programs with pattern-matching algebraic data types

CHL Ong, SJ Ramsay - ACM SIGPLAN Notices, 2011 - dl.acm.org
Type-based model checking algorithms for higher-order recursion schemes have recently
emerged as a promising approach to the verification of functional programs. We introduce …

AnyDSL: a partial evaluation framework for programming high-performance libraries

R Leißa, K Boesche, S Hack, A Pérard-Gayot… - Proceedings of the …, 2018 - dl.acm.org
This paper advocates programming high-performance code using partial evaluation. We
present a clean-slate programming system with a simple, annotation-based, online partial …

[PDF][PDF] Static program analysis

A Møller, MI Schwartzbach - Notes. Feb, 2012 - users-cs.au.dk
Static program analysis is the art of reasoning about the behavior of computer programs
without actually running them. This is useful not only in optimizing compilers for producing …

Abstracting definitional interpreters (functional pearl)

D Darais, N Labich, PC Nguyen… - Proceedings of the ACM on …, 2017 - dl.acm.org
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 …

Resolving and exploiting the k-CFA paradox: illuminating functional vs. object-oriented program analysis

M Might, Y Smaragdakis, D Van Horn - Proceedings of the 31st ACM …, 2010 - dl.acm.org
Low-level program analysis is a fundamental problem, taking the shape of" flow analysis" in
functional languages and" points-to" analysis in imperative and object-oriented languages …

Don't Write, but Return: Replacing Output Parameters with Algebraic Data Types in C-to-Rust Translation

J Hong, S Ryu - Proceedings of the ACM on Programming Languages, 2024 - dl.acm.org
Translating legacy system programs from C to Rust is a promising way to enhance their
reliability. To alleviate the burden of manual translation, automatic C-to-Rust translation is …

Analysing the complexity of functional programs: higher-order meets first-order

M Avanzini, U Dal Lago, G Moser - Proceedings of the 20th ACM …, 2015 - dl.acm.org
We show how the complexity of higher-order functional programs can be analysed
automatically by applying program transformations to a defunctionalised versions of them …

Abstract interpretation: past, present and future

P Cousot, R Cousot - Proceedings of the Joint Meeting of the Twenty …, 2014 - dl.acm.org
Abstract interpretation is a theory of abstraction and constructive approximation of the
mathematical structures used in the formal description of complex or infinite systems and the …