EDBT 2026 Demo / reviewers in the wild / expert
Lennart C. L. Kats
dblp:50/3340
· DBLP profile ↗
16ranked-venue papers
8as first author
0since 2021 · last 2013
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 15 · 8 first-authorTheory of computation · 1
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
6 papers |
Compilers and program optimization · 51% Programming languages and type systems · 39% Software testing · 8% |
Topics — the 12 heaviest of 16, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Compilers and program optimization › parsing
error recovery |
0.2 | 2 | 2012 | Natural and Flexible Error Recovery for Generated Modular Language Environments · ACM Trans. Program. Lang. Syst. 2012 Providing rapid feedback in generated modular language environments: adding error recovery to scannerless generalized-LR parsing · OOPSLA 2009 |
Compilers and program optimization
parsing |
0.2 | 2 | 2012 | Natural and Flexible Error Recovery for Generated Modular Language Environments · ACM Trans. Program. Lang. Syst. 2012 Providing rapid feedback in generated modular language environments: adding error recovery to scannerless generalized-LR parsing · OOPSLA 2009 |
Compilers and program optimization › parsing
generalized LR parsing |
0.1 | 1 | 2012 | Natural and Flexible Error Recovery for Generated Modular Language Environments · ACM Trans. Program. Lang. Syst. 2012 |
Programming languages and type systems
language specification |
0.1 | 1 | 2011 | Integrated language definition testing: enabling test-driven language development · OOPSLA 2011 |
Software testing
test-driven development |
0.1 | 1 | 2011 | Integrated language definition testing: enabling test-driven language development · OOPSLA 2011 |
Programming languages and type systems
language semantics |
0.1 | 1 | 2010 | The spoofax language workbench: rules for declarative specification of languages and IDEs · OOPSLA 2010 |
Compilers and program optimization › parsing
parser generation |
0.1 | 1 | 2010 | Pure and declarative syntax definition: paradise lost and regained · OOPSLA 2010 |
Programming languages and type systems › syntax
syntax definition |
0.1 | 1 | 2010 | Pure and declarative syntax definition: paradise lost and regained · OOPSLA 2010 |
Programming languages and type systems › language design
language extension |
0.1 | 1 | 2008 | Mixing source and bytecode: a case for compilation by normalization · OOPSLA 2008 |
Programming languages and type systems › grammar formalisms
context-free grammar |
0.0 | 1 | 2012 | Natural and Flexible Error Recovery for Generated Modular Language Environments · ACM Trans. Program. Lang. Syst. 2012 |
Programming languages and type systems
language design |
0.0 | 1 | 2008 | Mixing source and bytecode: a case for compilation by normalization · OOPSLA 2008 |
Programming languages and type systems › object-oriented programming
traits |
0.0 | 1 | 2008 | Mixing source and bytecode: a case for compilation by normalization · OOPSLA 2008 |
Methods — techniques the papers use, named apart from their topics
parser generation · 0.2scannerless parsing · 0.1recovery rule derivation · 0.1test case generation · 0.1declarative test specification · 0.1meta-programming · 0.1island grammars · 0.1backtracking · 0.1normalization · 0.1core language translation · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2013 | A pure embedding of attribute grammars
Anthony M. Sloane, Lennart C. L. Kats, Eelco Visser |
Sci. Comput. Program. | 2 |
| 2012 | Declarative Name Binding and Scope Rules
Gabriël D. P. Konat, Lennart C. L. Kats, Guido Wachsmuth, Eelco Visser |
SLE | 2 |
| 2012 | Natural and Flexible Error Recovery for Generated Modular Language EnvironmentsabstractIntegrated Development Environments (IDEs) increase programmer productivity, providing rapid, interactive feedback based on the syntax and semantics of a language. Unlike conventional parsing algorithms, scannerless generalized-LR parsing supports the full set of context-free grammars, which is closed under composition, and hence can parse languages composed from separate grammar modules. To apply this algorithm in an interactive environment, this article introduces a novel error recovery mechanism. Our approach is language independent, and relies on automatic derivation of recovery rules from grammars. By taking layout information into consideration it can efficiently suggest natural recovery suggestions. Maartje de Jonge, Lennart C. L. Kats, Eelco Visser, Emma Söderberg |
ACM Trans. Program. Lang. Syst. | 2 |
| 2011 | Growing a language environment with editor librariesabstractLarge software projects consist of code written in a multitude of different (possibly domain-specific) languages, which are often deeply interspersed even in single files. While many proposals exist on how to integrate languages semantically and syntactically, the question of how to support this scenario in integrated development environments (IDEs) remains open: How can standard IDE services, such as syntax highlighting, outlining, or reference resolving, be provided in an extensible and compositional way, such that an open mix of languages is supported in a single file? Sebastian Erdweg, Lennart C. L. Kats, Tillmann Rendel, Christian Kästner, Klaus Ostermann, Eelco Visser |
GPCE | 2 |
| 2011 | Declaratively defining domain-specific language debuggersabstractTool support is vital to the effectiveness of domain-specific languages. With language workbenches, domain-specific languages and their tool support can be generated from a combined, high-level specification. This paper shows how such a specification can be extended to describe a debugger for a language. To realize this, we introduce a meta-language for coordinating the debugger that abstracts over the complexity of writing a debugger by hand. We describe the implementation of a language-parametric infrastructure for debuggers that can be instantiated based on this specification. The approach is implemented in the Spoofax language workbench and validated through realistic case studies with the Stratego transformation language and the WebDSL web programming language. Ricky T. Lindeman, Lennart C. L. Kats, Eelco Visser |
GPCE | 2 |
| 2011 | Integrated language definition testing: enabling test-driven language developmentabstractThe reliability of compilers, interpreters, and development environments for programming languages is essential for effective software development and maintenance. They are often tested only as an afterthought. Languages with a smaller scope, such as domain-specific languages, often remain untested. General-purpose testing techniques and test case generation methods fall short in providing a low-threshold solution for test-driven language development. In this paper we introduce the notion of a language-parametric testing language (LPTL) that provides a reusable, generic basis for declaratively specifying language definition tests. We integrate the syntax, semantics, and editor services of a language under test into the LPTL for writing test inputs. This paper describes the design of an LPTL and the tool support provided for it, shows use cases using examples, and describes our implementation in the form of the Spoofax testing language. Lennart C. L. Kats, Rob Vermaas, Eelco Visser |
OOPSLA | 1 |
| 2011 | Static consistency checking of web applications with WebDSL
Zef Hemel, Danny M. Groenewegen, Lennart C. L. Kats, Eelco Visser |
J. Symb. Comput. | 3 |
| 2010 | The spoofax language workbench: rules for declarative specification of languages and IDEsabstractSpoofax is a language workbench for efficient, agile development of textual domain-specific languages with state-of-the-art IDE support. Spoofax integrates language processing techniques for parser generation, meta-programming, and IDE development into a single environment. It uses concise, declarative specifications for languages and IDE services. In this paper we describe the architecture of Spoofax and introduce idioms for high-level specifications of language semantics using rewrite rules, showing how analyses can be reused for transformations, code generation, and editor services such as error marking, reference resolving, and content completion. The implementation of these services is supported by language-parametric editor service classes that can be dynamically loaded by the Eclipse IDE, allowing new languages to be developed and used side-by-side in the same Eclipse environment. Lennart C. L. Kats, Eelco Visser |
OOPSLA | 1 |
| 2010 | Pure and declarative syntax definition: paradise lost and regainedabstractSyntax definitions are pervasive in modern software systems, and serve as the basis for language processing tools like parsers and compilers. Mainstream parser generators pose restrictions on syntax definitions that follow from their implementation algorithm. They hamper evolution, maintainability, and compositionality of syntax definitions. The pureness and declarativity of syntax definitions is lost. We analyze how these problems arise for different aspects of syntax definitions, discuss their consequences for language engineers, and show how the pure and declarative nature of syntax definitions can be regained. Lennart C. L. Kats, Eelco Visser, Guido Wachsmuth |
OOPSLA | 1 |
| 2010 | Encapsulating Software Platform Logic by Aspect-Oriented Programming: A Case Study in Using Aspects for Language PortabilityabstractSoftware platforms such as the Java Virtual Machine or the CLR. NET virtual machine have their own ecosystem of a core programming language or instruction set, libraries, and developer community. Programming languages can target multiple software platforms to increase interoperability or to boost performance. Introducing a new compiler backend for a language is the first step towards targeting a new platform, translating the language to the platform's language or instruction set. Programs written in modern languages generally make extensive use of APIs, based on the runtime system of the software platform, introducing additional portability concerns. They may use APIs that are implemented by platform-specific libraries. Libraries may perform platform-specific operations, make direct native calls, or make assumptions about performance characteristics of operations or about the file system. This paper proposes to use aspect weaving to invasively adapt programs and libraries to address such portability concerns, and identifies four classes of aspects for this purpose. We evaluate this approach through a case study where we retarget the Stratego program transformation language towards the Java Virtual Machine. Lennart C. L. Kats, Eelco Visser |
SCAM | 1 |
| 2010 | Interactive Disambiguation of Meta Programs with Concrete Object Syntax
Lennart C. L. Kats, Karl Trygve Kalleberg, Eelco Visser |
SLE | 1 |
| 2010 | Code generation by model transformation: a case study in transformation modularityabstractThe realization of model-driven software development requires effective techniques for implementing code generators for domain-specific languages. This paper identifies techniques for improving separation of concerns in the implementation of generators. The core technique is code generation by model transformation, that is, the generation of a structured representation (model) of the target program instead of plain text. This approach enables the transformation of code after generation, which in turn enables the extension of the target language with features that allow better modularity in code generation rules. The technique can also be applied to ‘internal code generation’ for the translation of high-level extensions of a DSL to lower-level constructs within the same DSL using model-to-model transformations. This paper refines our earlier description of code generation by model transformation with an improved architecture for the composition of model-to-model normalization rules, solving the problem of combining type analysis and transformation. Instead of coarse-grained stages that alternate between normalization and type analysis, we have developed a new style of type analysis that can be integrated with normalizing transformations in a fine-grained manner. The normalization strategy has a simple extension interface and integrates non-local, context-sensitive transformation rules. We have applied the techniques in a realistic case study of domain-specific language engineering, i.e. the code generator for WebDSL, using Stratego, a high-level transformation language that integrates model-to-model, model-to-code, and code-to-code transformations. Zef Hemel, Lennart C. L. Kats, Danny M. Groenewegen, Eelco Visser |
Softw. Syst. Model. | 2 |
| 2009 | Decorated Attribute Grammars: Attribute Evaluation Meets Strategic Programming
Lennart C. L. Kats, Anthony M. Sloane, Eelco Visser |
CC | 1 |
| 2009 | Providing rapid feedback in generated modular language environments: adding error recovery to scannerless generalized-LR parsingabstractIntegrated development environments (IDEs) increase programmer productivity, providing rapid, interactive feedback based on the syntax and semantics of a language. A heavy burden lies on developers of new languages to provide adequate IDE support. Code generation techniques provide a viable, efficient approach to semi-automatically produce IDE plugins. Key components for the realization of plugins are the language's grammar and parser. For embedded languages and language extensions, constituent IDE plugin modules and their grammars can be combined. Unlike conventional parsing algorithms, scannerless generalized-LR parsing supports the full set of context-free grammars, which is closed under composition, and hence can parse language embeddings and extensions composed from separate grammar modules. To apply this algorithm in an interactive environment, this paper introduces a novel error recovery mechanism, which allows it to be used with files with syntax errors -- common in interactive editing. Error recovery is vital for providing rapid feedback in case of syntax errors, as most IDE services depend on the parser from syntax highlighting to semantic analysis and cross-referencing. We base our approach on the principles of island grammars, and derive permissive grammars with error recovery productions from normal SDF grammars. To cope with the added complexity of these grammars, we adapt the parser to support backtracking. We evaluate the recovery quality and performance of our approach using a set of composed languages, based on Java and Stratego. Lennart C. L. Kats, Maartje de Jonge, Emma Nilsson-Nyman, Eelco Visser |
OOPSLA | 1 |
| 2009 | Natural and Flexible Error Recovery for Generated Parsers
Maartje de Jonge, Emma Nilsson-Nyman, Lennart C. L. Kats, Eelco Visser |
SLE | 3 |
| 2008 | Mixing source and bytecode: a case for compilation by normalizationabstractLanguage extensions increase programmer productivity by providing concise, often domain-specific syntax, and support for static verification of correctness, security, and style constraints. Language extensions can often be realized through translation to the base language, supported by preprocessors and extensible compilers. However, various kinds of extensions require further adaptation of a base compiler's internal stages and components, for example to support separate compilation or to make use of low-level primitives of the platform (e.g., jump instructions or unbalanced synchronization). To allow for a more loosely coupled approach, we propose an open compiler model based on normalization steps from a high-level language to a subset of it, the core language. We developed such a compiler for a mixed Java and (core) bytecode language, and evaluate its effectiveness for composition mechanisms such as traits, as well as statement-level and expression-level language extensions. Lennart C. L. Kats, Martin Bravenboer, Eelco Visser |
OOPSLA | 1 |