Browsing by Author "Kaminski, Ted"
Now showing 1 - 8 of 8
- Results Per Page
- Sort Options
Item ableC: Extensible Specification of C Using the Silver Attribute Grammar System(2017-08-24) Kaminski, Ted; Kramer, Lucas; Carlson, Travis; Van Wyk, Eric; evw@umn.edu; Van Wyk, Eric; University of Minnesota, Department of Computer Science and Engineering, Minnesota Extensible Language Tools GroupThis is the Silver specification of ableC: a specification of C at the ISO C11 standard. There may be newer, unarchived versions of this software at http://melt.cs.umn.edu.Item Integrating attribute grammar and functional programming language features(2011) Kaminski, Ted; Van Wyk, EricWhile attribute grammars (AGs) have several features making them advantageous for specifying language processing tools, functional programming languages offer a myriad of features also well-suited for such tasks. Much other work shows the close relationship between these two approaches, often in the form of embedding AGs into lazy functional languages. This paper continues in this tradition, but in the other direction, by integrating various functional language features into AGs. Specifically we integrate rich static types (including parametric polymorphism, typed distinctions between decorated and undecorated trees, type inference, and generalized algebraic data-types) and pattern-matching, all in a manner that maintains familiar and convenient attribute grammar notations and especially their highly extensible nature.Item A Modular Specification of Oberon0 Using the Silver Attribute Grammar System(2015-10-13) Kaminski, Ted; Van Wyk, Eric; evw@umn.edu; Van Wyk, EricThis repository contains the implementation of Oberon0 using the Silver attribute grammar system for the Tool Challenge at the 2011 International Workshop on Language Descriptions, Tools, and Applications. Silver was developed to study how independently-developed language extension specifications can be imported into a host language specification to define a new custom extended language. Thus it contains many features useful in modular language specification, such as forwarding, higher-order attributes, reference/remote attributes, and a simplified form of collection attributes. These are discussed in the context of the Oberon0 specification presented here. This is the specification accompanying the paper "A modular specification of Oberon0 using the Silver attribute grammar system" by Ted Kaminski and Eric Van Wyk.Item Network generation and analysis of complex biomass conversion systems(2011) Rangarajan, Srinivas; Kaminski, Ted; Van Wyk, Eric; Bhan, Aditya; Daoutidis, ProdromosA modular computational tool for automated generation and rule-based post-processing of reaction systems in biomass conversion is presented. Cheminformatics and graph theory algorithms are used to generate chemical transformations pertaining to heterogeneous and homogeneous chemistries in the automated rule-based network generator. A domain-specific language provides a user-friendly English-like chemistry specification interface to the network generator. A rule-based pathway analysis module enables the user to extract and query pathways from the reaction network. A demonstration of the features of this tool is presented using Fructose to 5- Hydroxymethylfurfural as a case study.Item Reliable and automatic composition of language extensions to C - Supplemental Material(2017-09-04) Kaminski, Ted; Kramer, Lucas; Carlson, Travis; Van Wyk, EricThis technical report provides a more complete description of many of the ableC language extensions described in our OOPSLA 2017 paper “Reliable and automatic composition of language extensions to C”. It describes several additional ableC language extensions that pass the modular analyses and thus can be reliably and automatically composed together by a programmer to form a working translator for a custom extended language. The OOPSLA paper describes extensions that illustrate many of the types of language extensions that can be specified as ableC extensions and is thus self contained. Yet, the extensions discussed here expand on these capabilities and describe extensions that are substantially larger in scope or illustrate additional capabilities of ableC and the underlying tools Silver and Copper.Item Reliably composable language extensions(2017-05) Kaminski, TedMany programming tasks are dramatically simpler when an appropriate domain-specific language can be used to accomplish them. These languages offer a variety of potential advantages, including programming at a higher level of abstraction, custom analyses specific to the problem domain, and the ability to generate very efficient code. But they also suffer many disadvantages as a result of their implementation techniques. Fully separate languages (such as YACC, or SQL) are quite flexible, but these are distinct monolithic entities and thus we are unable to draw on the features of several in combination to accomplish a single task. That is, we cannot compose their domain-specific features. "Embedded" DSLs (such as parsing combinators) accomplish something like a different language, but are actually implemented simply as libraries within a flexible host language. This approach allows different libraries to be imported and used together, enabling composition, but it is limited in analysis and translation capabilities by the host language they are embedded within. A promising combination of these two approaches is to allow a host language to be directly extended with new features (syntactic and semantic.) However, while there are plausible ways to attempt to compose language extensions, they can easily fail, making this approach unreliable. Previous methods of assuring reliable composition impose onerous restrictions, such as throwing out entirely the ability to introduce new analysis. This thesis introduces reliably composable language extensions as a technique for the implementation of DSLs. This technique preserves most of the advantages of both separate and "embedded" DSLs. Unlike many prior approaches to language extension, this technique ensures composition of multiple language extensions will succeed, and preserves strong properties about the behavior of the resulting composed compiler. We define an analysis on language extensions that guarantees the composition of several extensions will be well-defined, and we further define a set of testable properties that ensure the resulting compiler will behave as expected, along with a principle that assigns "blame" for bugs that may ultimately appear as a result of composition. Finally, to concretely compare our approach to our original goals for reliably composable language extension, we use these techniques to develop an extensible C compiler front-end, together with several example composable language extensions.Item Silver modularity analysis changelog(2012-10-31) Kaminski, TedThis document is intended as a log of all changes that had to be made to the Silver compiler implementation to conform to the modular well-denedness analysis's restrictions. This is a companion document to our SLE 2012 paper introducing this analysis.Item Silver: an Attribute Grammar System(2017-08-24) Kaminski, Ted; Kramer, Lucas; Michaelson, Dawn; Van Wyk, Eric; evw@umn.edu; Van Wyk, Eric; University of Minnesota, Department of Computer Science and Engineering, Minnesota Extensible Language Tools GroupSilver is an attribute grammar system which supports higher-order, reference, and collection attributes. It also supports forwarding and provides a modular well-definedness analysis to ensure composability of language extensions. There may be newer, unarchived versions of this software at http://melt.cs.umn.edu.