


default search action
Proceedings of the ACM on Programming Languages, Volume 1
Volume 1, Number ICFP, September 2017
- Vincent St-Amour, Daniel Feltey, Spencer P. Florence, Shu-Hung You

, Robert Bruce Findler:
Herbarium Racketensis: a stroll through the woods (functional pearl). 1:1-1:15 - Ivan Perez, Henrik Nilsson:

Testing and debugging functional reactive programming. 2:1-2:27 - Joachim Breitner, Chris Smith:

Lock-step simulation is child's play (experience report). 3:1-3:15 - Benjamin Canou, Roberto Di Cosmo, Grégoire Henry:

Scaling up functional programming education: under the hood of the OCaml MOOC. 4:1-4:25
- J. Michael Spivey:

Faster coroutine pipelines. 5:1-5:23 - Jean-Philippe Bernardy:

A pretty but not greedy printer (functional pearl). 6:1-6:21 - Conal Elliott:

Generic functional parallel algorithms: scan and FFT. 7:1-7:25 - William E. Byrd, A. Ballantyne, Gregory Rosenblatt, Matthew Might:

A unified approach to solving seven programming problems (functional pearl). 8:1-8:26
- Joshua S. Auerbach, Martin Hirzel, Louis Mandel, Avraham Shinnar, Jérôme Siméon:

Prototyping a query compiler using Coq (experience report). 9:1-9:15 - Daniel Winograd-Cort, Andreas Haeberlen

, Aaron Roth
, Benjamin C. Pierce:
A framework for adaptive differential privacy. 10:1-10:29 - Praveen Narayanan, Chung-chieh Shan:

Symbolic conditioning of arrays in probabilistic programs. 11:1-11:25
- David Darais, Nicholas Labich, Phuc C. Nguyen, David Van Horn

:
Abstracting definitional interpreters (functional pearl). 12:1-12:25 - Yannick Forster

, Ohad Kammar, Sam Lindley
, Matija Pretnar
:
On the expressive power of user-defined effects: effect handlers, monadic reflection, delimited control. 13:1-13:29 - Wilmer Ricciotti, Jan Stolarek

, Roly Perera
, James Cheney
:
Imperative functional programs that explain their work. 14:1-14:28 - Jan Midtgaard

, Mathias Nygaard Justesen, Patrick Kasting, Flemming Nielson
, Hanne Riis Nielson
:
Effect-driven QuickChecking of compilers. 15:1-15:23
- Juan Pedro Bolívar Puente:

Persistence for the masses: RRB-vectors in a systems language. 16:1-16:28 - Jonathan Protzenko, Jean Karim Zinzindohoué, Aseem Rastogi, Tahina Ramananandro

, Peng Wang, Santiago Zanella-Béguelin, Antoine Delignat-Lavaud, Catalin Hritcu, Karthikeyan Bhargavan, Cédric Fournet, Nikhil Swamy:
Verified low-level programming embedded in F. 17:1-17:29 - Scott Owens, Michael Norrish

, Ramana Kumar, Magnus O. Myreen, Yong Kiam Tan:
Verifying efficient function calls in CakeML. 18:1-18:27 - Geoffrey Mainland:

Better living through operational semantics: an optimizing compiler for radio protocols. 19:1-19:26
- Thibaut Balabonski, Pablo Barenbaum, Eduardo Bonelli, Delia Kesner:

Foundations of strong call by need. 20:1-20:29 - Alejandro Aguirre

, Gilles Barthe
, Marco Gaboardi
, Deepak Garg, Pierre-Yves Strub:
A relational logic for higher-order programs. 21:1-21:29 - Makoto Hamana:

How to prove your calculus is decidable: practical applications of second-order algebraic theories and computation. 22:1-22:28 - Milo Davis, William Meehan, Olin Shivers:

No-brainer CPS conversion (functional pearl). 23:1-23:25
- Joonwon Choi, Muralidaran Vijayaraghavan

, Benjamin Sherman, Adam Chlipala, Arvind:
Kami: a platform for high-level parametric hardware specification and its modular verification. 24:1-24:30 - Konstantin Weitz, Steven Lyubomirsky

, Stefan Heule, Emina Torlak, Michael D. Ernst, Zachary Tatlock
:
SpaceSearch: a library for building and verifying solver-aided tools. 25:1-25:28 - Benjamin Cosman

, Ranjit Jhala:
Local refinement typing. 26:1-26:27
- Conal Elliott:

Compiling to categories. 27:1-27:27 - François Pottier:

Visitors unchained. 28:1-28:28 - Jeremy Yallop:

Staged generic programming. 29:1-29:29
- Leif Andersen, Stephen Chang

, Matthias Felleisen:
Super 8 languages for making movies (functional pearl). 30:1-30:29
- Stephanie Weirich, Antoine Voizard, Pedro Henrique Azevedo de Amorim, Richard A. Eisenberg

:
A specification for dependent types in Haskell. 31:1-31:29 - Andreas Nuyts

, Andrea Vezzosi
, Dominique Devriese
:
Parametric quantifiers for dependent type theory. 32:1-32:29 - Andreas Abel, Andrea Vezzosi

, Théo Winterhalter
:
Normalization by evaluation for sized dependent types. 33:1-33:30 - Gabriel Ebner, Sebastian Ullrich

, Jared Roesch, Jeremy Avigad
, Leonardo de Moura:
A metaprogramming framework for formal verification. 34:1-34:29
- Hernán C. Melgratti, Luca Padovani:

Chaperone contracts for higher-order sessions. 35:1-35:29 - Lucas Waye, Stephen Chong, Christos Dimoulas

:
Whip: higher-order contracts for modern services. 36:1-36:28 - Stephanie Balzer, Frank Pfenning:

Manifest sharing with session types. 37:1-37:29 - Atsushi Igarashi

, Peter Thiemann
, Vasco T. Vasconcelos, Philip Wadler:
Gradual session types. 38:1-38:28
- Amal Ahmed, Dustin Jamner

, Jeremy G. Siek
, Philip Wadler:
Theorems for free for free: parametricity, with and without types. 39:1-39:28 - Yuu Igarashi, Taro Sekiyama, Atsushi Igarashi

:
On polymorphic gradual typing. 40:1-40:29 - Giuseppe Castagna

, Victor Lanvin:
Gradual typing with union and intersection types. 41:1-41:28
- J. Garrett Morris, Richard A. Eisenberg

:
Constrained type families. 42:1-42:28 - Martin Avanzini, Ugo Dal Lago:

Automating sized-type inference for complexity analysis. 43:1-43:29 - Justin Pombrio, Shriram Krishnamurthi

, Mitchell Wand:
Inferring scope through syntactic sugar. 44:1-44:28
Volume 1, Number OOPSLA, October 2017
- Izzat El Hajj, Thomas B. Jablin, Dejan S. Milojicic, Wen-Mei W. Hwu:

SAVI objects: sharing and virtuality incorporated. 45:1-45:24 - Marianna Rapoport, Ifaz Kabir, Paul He, Ondrej Lhoták:

A simple soundness proof for dependent object types. 46:1-46:27 - Yanpeng Yang, Bruno C. d. S. Oliveira:

Unifying typing and subtyping. 47:1-47:26 - Avik Chaudhuri, Panagiotis Vekris, Sam Goldman, Marshall Roch, Gabriel Levi:

Fast and precise type checking for JavaScript. 48:1-48:30
- Lun Liu, Todd D. Millstein, Madanlal Musuvathi:

A volatile-by-default JVM for server applications. 49:1-49:25 - Gabriel Poesia, Breno Campos Ferreira Guimarães, Fabricio Ferracioli, Fernando Magno Quintão Pereira:

Static placement of computation on heterogeneous devices. 50:1-50:28 - Sarah E. Chasins

, Rastislav Bodík:
Skip blocks: reusing execution history to accelerate web scripts. 51:1-51:28 - Edd Barrett, Carl Friedrich Bolz-Tereick, Rebecca Killick

, Sarah Mount, Laurence Tratt
:
Virtual machine warmup blows hot and cold. 52:1-52:27
- Tomoharu Ugawa, Tatsuya Abe

, Toshiyuki Maeda:
Model checking copy phases of concurrent copying garbage collection with various memory models. 53:1-53:26 - Spenser Bauman, Carl Friedrich Bolz-Tereick, Jeremy G. Siek

, Sam Tobin-Hochstadt
:
Sound gradual typing: only mostly dead. 54:1-54:24 - Gregor Richards, Ellen Arteca, Alexi Turcotte:

The VM already knew that: leveraging compile-time knowledge to optimize gradual typing. 55:1-55:27 - Fabian Muehlboeck

, Ross Tate:
Sound gradual typing is nominally alive and well. 56:1-56:30
- Xin Zhang

, Radu Grigore, Xujie Si, Mayur Naik:
Effective interactive resolution of static analysis alarms. 57:1-57:30 - Binhang Yuan

, Vijayaraghavan Murali, Christopher M. Jermaine:
Abridging source code. 58:1-58:26 - Guilherme Cavalcanti, Paulo Borba, Paola R. G. Accioly

:
Evaluating and improving semistructured merge. 59:1-59:27 - Eric L. Seidel, Huma Sibghat, Kamalika Chaudhuri, Westley Weimer, Ranjit Jhala:

Learning to blame: localizing novice type errors with data-driven diagnosis. 60:1-60:27
- Venkatesh Srinivasan, Ara Vartanian, Thomas W. Reps:

Model-assisted machine-code synthesis. 61:1-61:26 - Xinyu Wang

, Isil Dillig, Rishabh Singh:
Synthesis of data completion scripts using finite tree automata. 62:1-62:26 - Navid Yaghmazadeh, Yuepeng Wang, Isil Dillig, Thomas Dillig:

SQLizer: query synthesis from natural language. 63:1-63:26 - Mark Santolucito

, Ennan Zhai
, Rahul Dhodapkar
, Aaron Shim, Ruzica Piskac
:
Synthesizing configuration file specifications with association rule learning. 64:1-64:20 - Xiaokang Qiu

, Armando Solar-Lezama
:
Natural synthesis of provably-correct data-structure manipulations. 65:1-65:28
- Christoffer Quist Adamsen, Anders Møller, Frank Tip:

Practical initialization race detection for JavaScript web applications. 66:1-66:22 - Nachshon Cohen, Michal Friedman

, James R. Larus:
Efficient logging in non-volatile memory by exploiting coherency protocols. 67:1-67:24 - Neville Grech

, George Fourtounis, Adrian Francalanza, Yannis Smaragdakis:
Heaps don't lie: countering unsoundness with heap snapshots. 68:1-68:27 - Benjamin P. Wood, Man Cao, Michael D. Bond

, Dan Grossman:
Instrumentation bias for dynamic data race detection. 69:1-69:31
- Yizhou Zhang

, Andrew C. Myers:
Familia: unifying interfaces, type classes, and family polymorphism. 70:1-70:31 - Adrian Sampson

, Kathryn S. McKinley, Todd Mytkowicz:
Static stages for heterogeneous programming. 71:1-71:27 - Sylvan Clebsch, Juliana Franco, Sophia Drossopoulou, Albert Mingkun Yang, Tobias Wrigstad, Jan Vitek:

Orca: GC and type system co-design for actor languages. 72:1-72:28 - Ryan G. Scott, Omar S. Navarro Leija, Joseph Devietti

, Ryan R. Newton:
Monadic composition for deterministic, parallel batch processing. 73:1-73:26
- Yufei Ding, Xipeng Shen

:
GLORE: generalized loop redundancy elimination upon LER-notation. 74:1-74:28 - Dominic A. Orchard

, Mistral Contrastin, Matthew Danish
, Andrew C. Rice:
Verifying spatial properties of array computations. 75:1-75:30 - Laith Sakka, Kirshanthan Sundararajah

, Milind Kulkarni:
TreeFuser: a framework for analyzing and fusing general recursive tree traversals. 76:1-76:30 - Fredrik Kjolstad

, Shoaib Kamil, Stephen Chou, David Lugato, Saman P. Amarasinghe
:
The tensor algebra compiler. 77:1-77:29
- Manolis Papadakis, Gilbert Louis Bernstein, Rahul Sharma, Alex Aiken

, Pat Hanrahan:
Seam: provably safe local edits on graphs. 78:1-78:29 - Peng Wang, Di Wang

, Adam Chlipala:
TiML: a functional language for practical complexity analysis with invariants. 79:1-79:26 - Aws Albarghouthi, Loris D'Antoni, Samuel Drews, Aditya V. Nori:

FairSquare: probabilistic verification of program fairness. 80:1-80:30 - Davide Ancona, Francesco Dagnino, Elena Zucca:

Reasoning on divergent computations with coaxioms. 81:1-81:26
- Michael D. Adams, Matthew Might:

Restricting grammars with tree automata. 82:1-82:25 - Syeda Khairunnesa Samantha, Hoan Anh Nguyen, Tien N. Nguyen, Hridesh Rajan:

Exploiting implicit beliefs to resolve sparse usage problem in usage-based specification mining. 83:1-83:29 - Cristina V. Lopes, Petr Maj, Pedro Martins, Vaibhav Saini, Di Yang, Jakub Zitny, Hitesh Sajnani, Jan Vitek:

DéjàVu: a map of code duplicates on GitHub. 84:1-84:28 - Davood Mazinanian, Ameya Ketkar, Nikolaos Tsantalis

, Danny Dig:
Understanding the use of lambda expressions in Java. 85:1-85:31
- Magnus Madsen

, Ondrej Lhoták, Frank Tip:
A model for reasoning about JavaScript promises. 86:1-86:24 - William Mansky, Andrew W. Appel

, Aleksey Nogin:
A verified messaging system. 87:1-87:28 - Alastair Reid

:
Who guards the guards? formal validation of the Arm v8-m architecture specification. 88:1-88:24 - David Swasey

, Deepak Garg, Derek Dreyer:
Robust and compositional verification of object capability patterns. 89:1-89:26
- Erik Krogh Kristensen, Anders Møller:

Type test scripts for TypeScript testing. 90:1-90:25 - Talia Ringer, Dan Grossman, Daniel Schwartz-Narbonne, Serdar Tasiran:

A solver-aided language for test input generation. 91:1-91:24 - Xia Li, Lingming Zhang:

Transforming programs and tests in tandem for fault localization. 92:1-92:30 - Alastair F. Donaldson, Hugues Evrard, Andrei Lascu, Paul Thomson:

Automated testing of graphics shader compilers. 93:1-93:29 - Ahmet Çelik, Sreepathi Pai

, Sarfraz Khurshid, Milos Gligoric:
Bounded exhaustive test-input generation on GPUs. 94:1-94:25
- Matthew J. Parkinson, Dimitrios Vytiniotis, Kapil Vaswani, Manuel Costa, Pantazis Deligiannis

, Dylan McDermott
, Aaron Blankstein, Jonathan Balkind:
Project snowflake: non-blocking safe manual memory management in .NET. 95:1-95:25 - Kiwan Maeng, Alexei Colin, Brandon Lucia:

Alpaca: intermittent execution without checkpoints. 96:1-96:30 - Ennan Zhai, Ruzica Piskac

, Ronghui Gu, Xun Lao, Xi Wang:
An auditing language for preventing correlated failures in the cloud. 97:1-97:28 - Ted Kaminski, Lucas Kramer, Travis Carlson

, Eric Van Wyk:
Reliable and automatic composition of language extensions to C: the ableC extensible language framework. 98:1-98:29
- Johannes Späth, Karim Ali, Eric Bodden:

IDEal: efficient and precise alias-aware dataflow analysis. 99:1-99:27 - Sehun Jeong, Minseok Jeon

, Sung Deok Cha, Hakjoo Oh:
Data-driven context-sensitivity for points-to analysis. 100:1-100:28 - Kwonsoo Chae, Hakjoo Oh, Kihong Heo, Hongseok Yang:

Automatically generating features for learning program analysis heuristics for C-like languages. 101:1-101:25 - Neville Grech

, Yannis Smaragdakis:
P/Taint: unified points-to and taint analysis. 102:1-102:28
- Tiago Cogumbreiro

, Rishi Surendran, Francisco Martins, Vivek Sarkar, Vasco T. Vasconcelos, Max Grossman:
Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangers. 103:1-103:26 - Andrew Rice, Edward Aftandilian, Ciera Jaspan, Emily Johnston, Michael Pradel, Yulissa Arroyo-Paredes:

Detecting argument selection defects. 104:1-104:22 - Baijun Wu, Sheng Chen:

How type errors were fixed and what students did? 105:1-105:27 - Baijun Wu, John Peter Campora III, Sheng Chen

:
Learning user friendly type-error messages. 106:1-106:29
- Philip A. Bernstein, Sebastian Burckhardt, Sergey Bykov, Natacha Crooks

, Jose M. Faleiro, Gabriel Kliot, Alok Kumbhare, Muntasir Raihan Rahman, Vivek Shah
, Adriana Szekeres, Jorgen Thelin
:
Geo-distribution of actor-based services. 107:1-107:26 - Oded Padon

, Giuliano Losa, Mooly Sagiv, Sharon Shoham:
Paxos made EPR: decidable reasoning about distributed protocols. 108:1-108:31 - Victor B. F. Gomes, Martin Kleppmann

, Dominic P. Mulligan, Alastair R. Beresford:
Verifying strong eventual consistency in distributed systems. 109:1-109:28 - Alexander Bakst

, Klaus von Gleissenthall, Rami Gökhan Kici
, Ranjit Jhala:
Verifying distributed programs via canonical sequentialization. 110:1-110:27

manage site settings
To protect your privacy, all features that rely on external API calls from your browser are turned off by default. You need to opt-in for them to become active. All settings here will be stored as cookies with your web browser. For more information see our F.A.Q.


Google
Google Scholar
Semantic Scholar
Internet Archive Scholar
CiteSeerX
ORCID














