About Me
I am a Research Fellow in the Software Development Team in the Department of Informatics at King's College London working on compilers, JITs, and hardware meta-tracing (previously language composition, incremental parsing/lexing, and editors).
Blog
2024-06-25 | UB or not UB: How gcc and clang handle statically known undefined behaviour |
Publications
2020 |
Don't Panic! Better, Fewer, Syntax Errors for LR Parsers [HTML, Experiment] Lukas Diekmann, Laurence Tratt ECOOP, July 2020 |
2019 |
Default Disambiguation for Online Parsers [HTML, Experiment] Lukas Diekmann, Laurence Tratt SLE, October 2019 |
Editing composed languages Lukas Diekmann PhD thesis, June 2019 |
|
2016 |
Fine-grained language composition [HTML, Experiment] Edd Barrett, Lukas Diekmann, Laurence Tratt ECOOP, July 2016 |
2014 |
Eco: A Language Composition Editor [HTML, Software] Lukas Diekmann, Laurence Tratt SLE, September 2014 |
2013 |
Storage Strategies for Collections in Dynamically Typed Languages [HTML, Experiment] Carl Friedrich Bolz, Lukas Diekmann, Laurence Tratt OOPSLA, October 2013 |
Parsing Composed Grammars with Language Boxes Laurence Tratt, Lukas Diekmann Workshop on Scalable Language Specification, June 2013 |
|
2012 |
Memory Optimisations for Data Types in Dynamic Languages Lukas Diekmann MSc thesis, February 2012 |
Software
MGI |
An integration for the Mattermost platform written in Python, that allows receiving and forwarding of Github notifications to specific Mattermost channels. |
PyPy |
PyPy originally started as a Python interpreter written in Python but over time became a common translation framework for dynamic languages. PyPy aims to provide an easy way to write flexible implementations for different dynamic languages. The implementations can be translated into various environments while automatically adding garbage collection or a tracing JIT in the process. For my master's thesis I developed storage strategies to reduce memory overhead for data types like lists and dictionaries in PyPy. The results were merged into PyPy and have been part of shipping release since version 1.9, released in June 2012. |
sparsevec |
Rust library that efficiently encodes a two-dimensional matrix of integers using row displacement. |
grmtools |
Rust libraries for parsing text at compile-time or run-time. Included in this suite is lrpar, a LR parser that allows the parsing of original Yacc grammars, adding advanced error recovery algorithms and a Yacc grammar variant that uses Rust as action code. |
Academic services
- Web Chair, Programming Language Implementation Summer School (PLISS), 2019-2023.
- Reviewer, Workshop on Implementation, Compilation, Optimization of OO Languages, Programs and Systems (ICOOOLPS), 2021
- Reviewer, Workshop on Modern Language Runtimes, Ecosystems, and VMs (MoreVMs), 2021.
- Artefact evaluation co-chair, Software Language Engineering (SLE), 2020.
- Awards Chair, European Conference on Object-Oriented Programming (ECOOP), 2019.
- Artefact evaluation committee, Object-Oriented Programming, Systems, Languages & Applications (OOPSLA): 2019.
- Reviewer, Journal of Visual Languages and Computing (JVLC): 2019.
- Co-Chair, South of England Regional Programming Language Seminar (S-REPLS): 2018.
- Artefact evaluation committee, Software Language Engineering (SLE): 2017.
- Reviewer, Science of Computer Programming (SCP): 2017.
- Reviewer, Software: Practice and Experience (SPE): 2015.
- Reviewer, IEEE Software: 2014.