We're continuing our webinar series on building your own programming language in C++!
In the previous session, we introduced variables — they could be declared, reference one another, and were resolved through a global hash table. Now it's time to add one of the core building blocks of any language: functions.
Implementing functions is really a story about scopes and name resolution. We'll explore how identifiers are looked up across different scope levels: the global scope, function scopes with their own variables, and nested local scopes inside function bodies. What happens when the same variable name exists in multiple scopes? How does the compiler determine which one to use?
In this webinar, our speaker Yuri will walk through the implementation step by step, demonstrating how functions, scopes, and symbol lookup are built in code using C++. Along the way, you'll gain a deeper understanding of one of the fundamental mechanisms behind modern programming languages.
Join us live to dive deeper into compiler design, ask your questions, and build a programming language from scratch together.
The series is aimed at developers who want to go beyond just using languages and start understanding how they're built. Whether you've been with us from the beginning or are jumping in now, this is a great place to start.
If you missed any of the previous sessions, don't worry. All registered participants get access to the recordings. You can also catch up on YouTube or the PVS-Studio website:
First talk: Let's make a programming language. Intro
Second talk: Let's make a programming language. Grammars
Third talk: Let's make a programming language. Lexer
Fourth talk: Let's make a programming language. Parser
Fifth talk: Let's make a programming language. AST
Sixth talk: Let's make a programming language. Variables
Register to join the session. All registered participants will receive the recording of this webinar, along with recordings of all previous webinars in the series, after the webinar has concluded.
Join us on August 20, 1:00 PM UTC+1!
P.S. Don't forget to check your inbox and confirm your registration!

Top comments (0)