Treffer: Programmable semantic fragments: the design and implementation of typy

Title:
Programmable semantic fragments: the design and implementation of typy
Contributors:
Defense Advanced Research Projects Agency, National Security Agency
Source:
ACM SIGPLAN Notices ; volume 52, issue 3, page 81-92 ; ISSN 0362-1340 1558-1160
Publisher Information:
Association for Computing Machinery (ACM)
Publication Year:
2016
Document Type:
Fachzeitschrift article in journal/newspaper
Language:
English
DOI:
10.1145/3093335.2993245
Accession Number:
edsbas.6CF58203
Database:
BASE

Weitere Informationen

This paper introduces typy, a statically typed programming language embedded by reflection into Python. typy features a fragmentary semantics, i.e. it delegates semantic control over each term, drawn from Python's fixed concrete and abstract syntax, to some contextually relevant user-defined semantic fragment. The delegated fragment programmatically 1) typechecks the term (following a bidirectional protocol); and 2) assigns dynamic meaning to the term by computing a translation to Python. We argue that this design is expressive with examples of fragments that express the static and dynamic semantics of 1) functional records; 2) labeled sums (with nested pattern matching a la ML); 3) a variation on JavaScript's prototypal object system; and 4) typed foreign interfaces to Python and OpenCL. These semantic structures are, or would need to be, defined primitively in conventionally structured languages. We further argue that this design is compositionally well-behaved. It avoids the expression problem and the problems of grammar composition because the syntax is fixed. Moreover, programs are semantically stable under fragment composition (i.e. defining a new fragment will not change the meaning of existing program components.)