Travis Carlson

dblp:207/6550 · DBLP profile ↗
← Back
3ranked-venue papers
2as first author
0since 2021 · last 2019
0000-0003-3892-2863ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 2 · 1 first-authorSystems, architecture and hardware · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Programming languages and type systems · 61% Compilers and program optimization · 39%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Parallel and multicore computing · 100%

Topics — the 6 heaviest of 7, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Programming languages and type systems › concurrent programming languages
parallel language constructs
0.412019
Building parallel programming language constructs in the AbleC extensible C compiler framework: a PPoPP tutorial · PPoPP 2019
Programming languages and type systems › grammar formalisms
attribute grammars
0.312017
Reliable and automatic composition of language extensions to C: the ableC extensible language framework · Proc. ACM Program. Lang. 2017
Compilers and program optimization
compiler front end
0.312017
Reliable and automatic composition of language extensions to C: the ableC extensible language framework · Proc. ACM Program. Lang. 2017
Programming languages and type systems › language design
language extension
0.312017
Reliable and automatic composition of language extensions to C: the ableC extensible language framework · Proc. ACM Program. Lang. 2017
Parallel and multicore computing
parallel programming models
0.112019
Building parallel programming language constructs in the AbleC extensible C compiler framework: a PPoPP tutorial · PPoPP 2019
Programming languages and type systems › programming paradigms › imperative languages
c
0.112017
Reliable and automatic composition of language extensions to C: the ableC extensible language framework · Proc. ACM Program. Lang. 2017

Methods — techniques the papers use, named apart from their topics

type checking · 0.8language extension · 0.8code generation · 0.8refactoring · 0.3modular analysis · 0.3
YearPublicationVenuePosition
2019 Building parallel programming language constructs in the AbleC extensible C compiler framework: a PPoPP tutorial
abstract
In this tutorial participants learn how to build their own parallel programming language features by developing them as language extensions in the ableC [4] extensible C compiler framework. By implementing new parallel programming abstractions as language extensions one can build on an existing host language and thus avoid re-implementing common language features such as the type checking and code generation of arithmetic expressions and control flow statements. Using ableC, one can build expressive language features that fit seamlessly into the C11 host language.
Travis Carlson, Eric Van Wyk
PPoPP1
2017 Type qualifiers as composable language extensions
abstract
This paper reformulates type qualifiers as language extensions that can be automatically and reliably composed. Type qualifiers annotate type expressions to introduce new subtyping relations and are powerful enough to detect many kinds of errors. Type qualifiers, as illustrated in our ableC extensible language framework for C, can introduce rich forms of concrete syntax, can generate dynamic checks on data when static checks are infeasible or not appropriate, and inject code that affects the program's behavior, for example for conversions of data or logging.
Travis Carlson, Eric Van Wyk
GPCE1
2017 Reliable and automatic composition of language extensions to C: the ableC extensible language framework
abstract
This paper describes an extensible language framework, ableC, that allows programmers to import new, domain-specific, independently-developed language features into their programming language, in this case C. Most importantly, this framework ensures that the language extensions will automatically compose to form a working translator that does not terminate abnormally. This is possible due to two modular analyses that extension developers can apply to their language extension to check its composability. Specifically, these ensure that the composed concrete syntax specification is non-ambiguous and the composed attribute grammar specifying the semantics is well-defined. This assurance and the expressiveness of the supported extensions is a distinguishing characteristic of the approach. The paper describes a number of techniques for specifying a host language, in this case C at the C11 standard, to make it more amenable to language extension. These include techniques that make additional extensions pass these modular analyses, refactorings of the host language to support a wider range of extensions, and the addition of semantic extension points to support, for example, operator overloading and non-local code transformations.
Ted Kaminski, Lucas Kramer, Travis Carlson, Eric Van Wyk
Proc. ACM Program. Lang.3