Campus Units

Computer Science

Document Type

Conference Proceeding

Conference

SPLASH Systems, Programming, and Applications

Publication Version

Submitted Manuscript

Link to Published Version

http://dx.doi.org/10.1145/2983990.2984037

Publication Date

10-20-2016

Journal or Book Title

Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications

Volume

51

Issue

10

First Page

820

Last Page

837

DOI

10.1145/3022671.2984037

Conference Title

The 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016)

Conference Date

November 2-4, 2016

City

Amsterdam, The Netherlands

Abstract

This paper introduces a novel type-and-effect calculus, first-class effects, where the computational effect of an expression can be programmatically reflected, passed around as values, and analyzed at run time. A broad range of designs “hard-coded” in existing effect-guided analyses — from thread scheduling, version-consistent software updating, to data zeroing — can be naturally supported through the programming abstractions. The core technical development is a type system with a number of features, including a hybrid type system that integrates static and dynamic effect analyses, a refinement type system to verify application-specific effect management properties, a double-bounded type system that computes both over-approximation of effects and their under-approximation. We introduce and establish a notion of soundness called trace consistency, defined in terms of how the effect and trace correspond. The property sheds foundational insight on “good” first-class effect programming.

Comments

This article is published as Long, Yuheng, Yu David Liu, and Hridesh Rajan. "First-class effect reflection for effect-guided programming." In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 820-837. ACM, 2016. doi: 10.1145/3022671.2984037. Posted with permission.

Rights

© ACM, 2016. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2016. https://doi.org/10.1145/2983990.2984037

Copyright Owner

ACM

Language

en

File Format

application/pdf

Published Version

Share

Article Location

 
COinS