Safely Composable Type-Specific Languages

dc.contributor.authorOmar, Cyrusen
dc.contributor.authorKurilova, Daryaen
dc.contributor.authorNistor, Ligiaen
dc.contributor.authorChung, Benjaminen
dc.contributor.authorPotanin, Alexen
dc.contributor.authorAldrich, Jonathanen
dc.coverage.spatialHeidelbergen
dc.date.accessioned2026-03-04T10:41:22Z
dc.date.available2026-03-04T10:41:22Z
dc.date.issued2014en
dc.description.abstractProgramming languages often include specialized syntax for common datatypes (e.g. lists) and some also build in support for specific specialized datatypes (e.g. regular expressions), but user-defined types must use general-purpose syntax. Frustration with this causes developers to use strings, rather than structured data, with alarming frequency, leading to correctness, performance, security, and usability issues. Allowing library providers to modularly extend a language with new syntax could help address these issues. Unfortunately, prior mechanisms either limit expressiveness or are not safely composable: individually unambiguous extensions can still cause ambiguities when used together. We introduce type-specific languages (TSLs): logic associated with a type that determines how the bodies of generic literals, able to contain arbitrary syntax, are parsed and elaborated, hygienically. The TSL for a type is invoked only when a literal appears where a term of that type is expected, guaranteeing non-interference. We give evidence supporting the applicability of this approach and formally specify it with a bidirectionally typed elaboration semantics for the Wyvern programming language.en
dc.description.statusPeer-revieweden
dc.format.extent26en
dc.identifier.isbn978-3-662-44201-2en
dc.identifier.isbn978-3-662-44202-9en
dc.identifier.issn0302-9743en
dc.identifier.otherdblp:conf/ecoop/OmarKNCPA14en
dc.identifier.otherORCID:/0000-0002-4242-2725/work/207109965en
dc.identifier.scopus84905384690en
dc.identifier.urihttps://hdl.handle.net/1885/733807091
dc.language.isoenen
dc.publisherSpringeren
dc.relation.ispartofECOOP 2014 - Object-Oriented Programming: 28th European Conference, Proceedingsen
dc.relation.ispartofseries28th European Conference on Object-Oriented Programming, ECOOP 2014en
dc.relation.ispartofseriesLecture Notes in Computer Scienceen
dc.subjectbidirectional typecheckingen
dc.subjectextensible languagesen
dc.subjecthygieneen
dc.subjectparsingen
dc.titleSafely Composable Type-Specific Languagesen
dc.typeConference paperen
dspace.entity.typePublicationen
local.bibliographicCitation.lastpage130en
local.bibliographicCitation.startpage105en
local.contributor.affiliationOmar, Cyrus; Carnegie Mellon Universityen
local.contributor.affiliationKurilova, Darya; Carnegie Mellon Universityen
local.contributor.affiliationNistor, Ligia; Carnegie Mellon Universityen
local.contributor.affiliationChung, Benjamin; Carnegie Mellon Universityen
local.contributor.affiliationPotanin, Alex; Victoria University of Wellingtonen
local.contributor.affiliationAldrich, Jonathan; Carnegie Mellon Universityen
local.identifier.doi10.1007/978-3-662-44202-9_5en
local.identifier.essn1611-3349en
local.identifier.pure48ea10af-b0f0-4a70-a14d-8896a4b671c1en
local.identifier.urlhttps://www.scopus.com/pages/publications/84905384690en
local.type.statusPublisheden

Downloads