Witnessing side effects

Tachio Terauchi, Alex Aiken

Research output: Contribution to journalArticle

3 Citations (Scopus)

Abstract

We present a new approach to the old problem of adding global mutable state to purely functional languages. Our idea is to extend the language with "witnesses," which is based on an arguably more pragmatic motivation than past approaches. We give a semantic condition for correctness and prove it is sufficient. We also give a somewhat surprising static checking algorithm that makes use of a network flow property equivalent to the semantic condition via reduction to a satisfaction problem for a system of linear inequalities.

Original languageEnglish
Article number15
JournalACM Transactions on Programming Languages and Systems
Volume30
Issue number3
DOIs
Publication statusPublished - 2008 May 1
Externally publishedYes

Fingerprint

Semantics

Keywords

  • Mutable state
  • Side effects

ASJC Scopus subject areas

  • Software

Cite this

Witnessing side effects. / Terauchi, Tachio; Aiken, Alex.

In: ACM Transactions on Programming Languages and Systems, Vol. 30, No. 3, 15, 01.05.2008.

Research output: Contribution to journalArticle

@article{934441dd3c2540ff9c7a9272fbb707a4,
title = "Witnessing side effects",
abstract = "We present a new approach to the old problem of adding global mutable state to purely functional languages. Our idea is to extend the language with {"}witnesses,{"} which is based on an arguably more pragmatic motivation than past approaches. We give a semantic condition for correctness and prove it is sufficient. We also give a somewhat surprising static checking algorithm that makes use of a network flow property equivalent to the semantic condition via reduction to a satisfaction problem for a system of linear inequalities.",
keywords = "Mutable state, Side effects",
author = "Tachio Terauchi and Alex Aiken",
year = "2008",
month = "5",
day = "1",
doi = "10.1145/1353445.1353449",
language = "English",
volume = "30",
journal = "ACM Transactions on Programming Languages and Systems",
issn = "0164-0925",
publisher = "Association for Computing Machinery (ACM)",
number = "3",

}

TY - JOUR

T1 - Witnessing side effects

AU - Terauchi, Tachio

AU - Aiken, Alex

PY - 2008/5/1

Y1 - 2008/5/1

N2 - We present a new approach to the old problem of adding global mutable state to purely functional languages. Our idea is to extend the language with "witnesses," which is based on an arguably more pragmatic motivation than past approaches. We give a semantic condition for correctness and prove it is sufficient. We also give a somewhat surprising static checking algorithm that makes use of a network flow property equivalent to the semantic condition via reduction to a satisfaction problem for a system of linear inequalities.

AB - We present a new approach to the old problem of adding global mutable state to purely functional languages. Our idea is to extend the language with "witnesses," which is based on an arguably more pragmatic motivation than past approaches. We give a semantic condition for correctness and prove it is sufficient. We also give a somewhat surprising static checking algorithm that makes use of a network flow property equivalent to the semantic condition via reduction to a satisfaction problem for a system of linear inequalities.

KW - Mutable state

KW - Side effects

UR - http://www.scopus.com/inward/record.url?scp=44249094188&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=44249094188&partnerID=8YFLogxK

U2 - 10.1145/1353445.1353449

DO - 10.1145/1353445.1353449

M3 - Article

VL - 30

JO - ACM Transactions on Programming Languages and Systems

JF - ACM Transactions on Programming Languages and Systems

SN - 0164-0925

IS - 3

M1 - 15

ER -