Boris Brodski · Languages · since 2002

Programming languages & DSLs

A full language built from parser to IDE, two decades of Xtext, and domain-specific languages that became the primary specification artefact of a national tax platform. Screencasts on all of it at xtextcasts.org.

Get in touch

IDScript

Between 2002 and 2007 I designed and implemented a new version of a company’s scripting language for customer-specific processes: rule sets, workflows, document generation, PDF form evaluation. Everything a language needs — syntax, a high-performance parser, bytecode compiler, virtual machine, standard library, a bidirectional C ↔ script bridge, generic OLE automation of Word and Excel, a plugin interface, bytecode encryption, a converter from the old syntax, an Eclipse RCP IDE and a LaTeX manual. It shipped to banks and real-estate companies.

Xtext and model-driven development

Xtext came in 2006 with version 1.0, first in a model-driven RAD framework that generated persistence, server and client layers from two layered DSLs, then in a ten-page web form generated from a DSL. Since 2012 it is at the heart of the KONSENS backend component I architect: text models as the primary artefact, maintained and evolved for over a decade by a team of 15+. That story was the XtextCON 2014 talk “Pay your taxes with Xtext”. Newer work uses Langium.

Teaching it

xtextcasts.org holds the screencasts; the Eclipse DemoCamp and EclipseCon talks covered embedded DSLs for testing enterprise applications, which also became an Eclipse Magazin article.

What I do for clients

Relevant work

Skills in this direction

2000 2005 2010 2015 2020 2025 Parser Parser: 2002–now Interpreter & bytecode VM design Interpreter & bytecode VM design: 2002–2007 Java Java: 2002–now JavaCC JavaCC: 2004–2010 LaTeX / TikZ LaTeX / TikZ: 2004–now Haskell Haskell: 2004–2009 SWT / JFace / Eclipse RCP SWT / JFace / Eclipse RCP: 2005–now Yacc / Bison Yacc / Bison: 2005–2007 Xtext / Xtend Xtext / Xtend: 2006–now Model-driven development Model-driven architecture (MDA / MDSD): 2006–now ANTLR ANTLR: 2008–2010 Python Python: 2011–now Eclipse EMF Eclipse Modeling Framework (EMF): 2016–now Langium Langium: 2023–now

AI & machine learning

  • ★★★★★ Python 2011–

Languages & DSLs

  • ★★★★★ Parser 2002–
  • ★★★★★ Interpreter & bytecode VM design 2002–2007
  • ★★★★★ Xtext / Xtend 2006–
  • ★★★★☆ Langium 2023–
  • ★★★★★ Eclipse Modeling Framework (EMF) 2016–
  • ★★★★★ Model-driven architecture (MDA / MDSD) 2006–
  • ★★★★★ JavaCC 2004–2010
  • ★★★★☆ Yacc / Bison 2005–2007
  • ★★★☆☆ ANTLR 2008–2010
  • ★★★★☆ Haskell 2004–2009

Java

  • ★★★★★ Java 2002–
  • ★★★★★ SWT / JFace / Eclipse RCP 2005–

Infrastructure

  • ★★★★★ LaTeX / TikZ 2004–

Talks & writing