Abstract. Programming languages often include specialized syntax for com-mon datatypes (e.g. lists) and some also build in support for specific special-ized 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: individ-ually unambiguous extensions can still cause ambiguities when used together. We introduce type-specific languages (...
Starting with a pragmatical (but formal) definition of type in object-oriented languages, this paper...
Domain-specific languages improve ease-of-use, expressiveness and verifiability, but defining and us...
A key problem in metaprogramming and specifically in generative programming is to guarantee that gen...
Abstract. Programming languages often include specialized syntax for com-mon datatypes (e.g. lists) ...
Language extensions introduce high-level programming constructs that protect programmers from low-le...
Tagless interpreters for well-typed terms in some object language are a standard example of the powe...
Domain-specific languages (DSLs) are everywhere, with applications in areas such as parser gen-erati...
© 2017 Copyright held by the owner/author(s). Meta-programs are programs that generate other program...
Many modern programming languages support basic generic programming, sufficient to implement type-sa...
Traditionally, statically typed programming languages incorporate a built-in static type system. Thi...
Meta-programs are programs that generate other programs, but in weakly type-safe systems, type-check...
A definitional interpreter defines the semantics of an object language in terms of the (well-known) ...
The simplest and purest practical object-oriented language designs today are seen in dynamically-typ...
Datatype-generic programming makes it possible to define a construction once and apply it to a large...
Dependently typed programming languages allow the type system to express arbitrary propositions of i...
Starting with a pragmatical (but formal) definition of type in object-oriented languages, this paper...
Domain-specific languages improve ease-of-use, expressiveness and verifiability, but defining and us...
A key problem in metaprogramming and specifically in generative programming is to guarantee that gen...
Abstract. Programming languages often include specialized syntax for com-mon datatypes (e.g. lists) ...
Language extensions introduce high-level programming constructs that protect programmers from low-le...
Tagless interpreters for well-typed terms in some object language are a standard example of the powe...
Domain-specific languages (DSLs) are everywhere, with applications in areas such as parser gen-erati...
© 2017 Copyright held by the owner/author(s). Meta-programs are programs that generate other program...
Many modern programming languages support basic generic programming, sufficient to implement type-sa...
Traditionally, statically typed programming languages incorporate a built-in static type system. Thi...
Meta-programs are programs that generate other programs, but in weakly type-safe systems, type-check...
A definitional interpreter defines the semantics of an object language in terms of the (well-known) ...
The simplest and purest practical object-oriented language designs today are seen in dynamically-typ...
Datatype-generic programming makes it possible to define a construction once and apply it to a large...
Dependently typed programming languages allow the type system to express arbitrary propositions of i...
Starting with a pragmatical (but formal) definition of type in object-oriented languages, this paper...
Domain-specific languages improve ease-of-use, expressiveness and verifiability, but defining and us...
A key problem in metaprogramming and specifically in generative programming is to guarantee that gen...