Aleksandra Sikora
Making Sense of Programming Languages
#1about 4 minutes
The value of understanding language internals
Learning how programming languages work is valuable for all developers, enabling the creation of custom linting rules, IDE extensions, and domain-specific languages (DSLs).
#2about 3 minutes
Understanding language grammars and structure
Programming languages are defined by grammars, which are sets of rules that distinguish between regular grammars (predictable, sequential) and context-free grammars (recursive, complex).
#3about 3 minutes
Distinguishing between interpreters and compilers
Languages are not inherently interpreted or compiled; their implementations are, with some systems like V8 using both a compiler and an interpreter.
#4about 3 minutes
Exploring the code processing pipeline
Code is processed through a pipeline that includes scanning (lexing), parsing into an abstract syntax tree (AST), analysis, and finally evaluation by an interpreter or compiler.
#5about 6 minutes
Building a lexer and parser with typescript-parsec
A live demonstration shows how to use typescript-parsec to build a lexer that creates a stream of tokens and a parser that organizes them into an abstract syntax tree (AST).
#6about 3 minutes
Implementing a simple tree-walk interpreter
The interpreter is built as a recursive function that walks the abstract syntax tree (AST), evaluating each node to produce a final result while managing variable scope.
#7about 8 minutes
Extending the language with a custom print syntax
A new print feature using a question mark suffix is added by updating the lexer to recognize the token, the parser to create a new AST node, and the interpreter to handle the new logic.
#8about 1 minute
Conclusion and resources for language development
The talk concludes by sharing the open-source project and providing resources for anyone interested in exploring programming language creation further.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
02:09 MIN
Approaching the live pair programming challenge
Coffee with Developers - Jonathan Tang
39:10 MIN
Final thoughts on learning from alien programming languages
Java with a Clojure mindset
21:25 MIN
How Langium processes code into an abstract syntax tree
Langium: Design Your Own Language in Node.js and VS Code
09:45 MIN
An overview of the Langium framework
Langium: Design Your Own Language in Node.js and VS Code
27:03 MIN
Manipulating code reliably with Abstract Syntax Trees
Let's build a VS Code extension for automated refactorings
41:25 MIN
Q&A on type systems and legacy code
Typed Security: Preventing Vulnerabilities By Design
06:28 MIN
The evolution from simple scripts to compilation
The Eternal Sunshine of the Zero Build Pipeline
06:53 MIN
Analyzing, refactoring, and converting code with AI
ChatGPT: Create a Presentation!
Featured Partners
Related Videos
Langium: Design your own language in Node.js and VS Code
Irina Artemeva
Langium: Design Your Own Language in Node.js and VS Code
Miro Spönemann
Livecoding with AI
Rainer Stropek
Building a Compiler with C#
Florian Rappl
How to become an AI toolsmith
Clemens Helm
Create DSL (Domain Specific Language) on top of Swift
Milan Todorović
Python: Behind the Scenes
Diana Gastrin
Where we're going we don't need JavaScript - Programming with Type Annotations
Peter Kröner
From learning to earning
Jobs that call for the skills explored in this talk.
![Senior Software Engineer [TypeScript] (Prisma Postgres)](https://wearedevelopers.imgix.net/company/283ba9dbbab3649de02b9b49e6284fd9/cover/oKWz2s90Z218LE8pFthP.png?w=400&ar=3.55&fit=crop&crop=entropy&auto=compress,format)
Senior Software Engineer [TypeScript] (Prisma Postgres)
Prisma
Remote
Senior
Node.js
TypeScript
PostgreSQL



Senior AI Software Developer & Mentor
Dynatrace
Linz, Austria
Senior
Java
TypeScript
AI Frameworks
Agile Methodologies


Senior Fullstack Engineer (all genders)
envelio
Köln, Germany
Remote
Senior
Python
JavaScript
Structured Query Language (SQL)

Senior Fullstack Engineer – Angular/.Net (f/m/d)
Apaleo
München, Germany
Remote
€65-85K
Senior
.NET
Angular
JavaScript
+1

Senior Machine Learning Engineer (f/m/d)
MARKT-PILOT GmbH
Stuttgart, Germany
Remote
€75-90K
Senior
Python
Docker
Machine Learning

Full Stack Engineer
Climax.eco
Rotterdam, Netherlands
€70-100K
Senior
TypeScript
PostgreSQL
Cloud (AWS/Google/Azure)