Twig: A Configurable Domain-Specific Language

dc.contributor.advisorMalony, Allenen_US
dc.contributor.authorHulette, Geoffreyen_US
dc.creatorHulette, Geoffreyen_US
dc.date.accessioned2012-10-26T04:08:22Z
dc.date.available2012-10-26T04:08:22Z
dc.date.issued2012
dc.description.abstractProgrammers design, write, and understand programs with a high-level structure in mind. Existing programming languages are not very good at capturing this structure because they must include low-level implementation details. To address this problem we introduce Twig, a programming language that allows for domain-specific logic to be encoded alongside low-level functionality. Twig's language is based on a simple, formal calculus that is amenable to both human and machine reasoning. Users may introduce rules that rewrite expressions, allowing for user-defined optimizations. Twig can also incorporate procedures written in a variety of low-level languages. Our implementation supports C and Python, but our abstract model can accommodate other languages as well. We present Twig's design and formal semantics and discuss our implementation. We demonstrate Twig's use in two different domains, multi-language programming and GPU programming, and compare Twig against a well-known typemapping system, SWIG.en_US
dc.identifier.urihttps://hdl.handle.net/1794/12467
dc.language.isoen_USen_US
dc.publisherUniversity of Oregonen_US
dc.rightsAll Rights Reserved.en_US
dc.subjectProgramming languagesen_US
dc.subjectTerm rewritingen_US
dc.subjectTypemapsen_US
dc.titleTwig: A Configurable Domain-Specific Languageen_US
dc.typeElectronic Thesis or Dissertationen_US

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Hulette_oregon_0171A_10465.pdf
Size:
523.79 KB
Format:
Adobe Portable Document Format