Year: 2015
Type: article
Abstract: Type-and-effect systems are a powerful tool for program construction and verification. We describe intensional effect polymorphism, a new foundation for effect systems that integrates static and dynamic effect checking. Our system allows the effect of polymorphic code to be intensionally inspected through a lightweight notion of dynamic typing. When coupled with parametric polymorphism, the powerful system utilizes runtime information to enable precise effect reasoning, while at the same time retains strong type safety guarantees. We build our ideas on top of an imperative core calculus with regions. The technical innovations of our design include a relational notion of effect checking, the use of bounded existential types to capture the subtle interactions between static typing and dynamic typing, and a differential alignment strategy to achieve efficiency in dynamic typing. We demonstrate the applications of intensional effect polymorphism in concurrent programming, security, graphical user interface access, and memoization.
Authors: Long, Yuheng, Liu, Yu David, Rajan, Hridesh
Institutions: Iowa State University, Binghamton University
Language: English
Subfield: Software
Field: Computer Science
Domain: Physical Sciences
Open Access status: green
Funder: National Science Foundation
Awards: Collaborative Research: CRI: CRD: A JML Community Infrastructure -- Revitalizing Tools and Documentation to Aid Formal Methods Research, CAREER: On Mutualism of Modularity and Concurrency Goals, CAREER: Programming Models for Green Software, CT-ISG: Specification and Verification Challenges for Security Protocols in Sensor Networks, SHF: Small: Phase-Based Tuning for Better Utilization of Performance-Asymmetric Multicores, SHF: Small: Capsule-oriented Programming, G6671297155, SHF: Small: Collaborative Research: Balancing Expressiveness and Modular Reasoning for Aspect-oriented Programming, EAGER: Boa: A Community Research Infrastructure for Mining Software Repositories
OpenAlex ID: W2294962239
