Aleksandra Sikora

Making Sense of Programming Languages

What if you could treat code as data? Learn how to build custom linters, IDE extensions, or even your own programming language from scratch.

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.

Software Engineer

tree-IT GmbH
Bad Neustadt an der Saale, Germany

Intermediate
Senior

Featured Partners

Related Articles

View all articles
DC
Daniel Cranney
What Developers Really Need to Create Great Code Demos
Every developer on earth has, at some point, had another developer to thank for a breakthrough, a success, an aha moment they wouldn’t have had without coming across that blog post, that open-source contribution, that reply on socials or that humble ...
What Developers Really Need to Create Great Code Demos
DC
Daniel Cranney
Exploring TypeScript: Benefits for Large-Scale JavaScript Projects
JavaScript is the backbone of web development, powering everything from small websites to large-scale enterprise applications. However, as projects grow in complexity, maintaining JavaScript code can become increasingly difficult. This is where TypeS...
Exploring TypeScript: Benefits for Large-Scale JavaScript Projects

From learning to earning

Jobs that call for the skills explored in this talk.

Rust and GoLang

Rust and GoLang

NHe4a GmbH
Karlsruhe, Germany

Remote
55-65K
Intermediate
Senior
Go
Rust