
In this lecture, we introduce students to the ANTLR Masterclass Course.
In this lesson, we point out the main topics that we will study throughout the course.
In this lesson, we begin the Compiler Fundamentals section and introduce the concept of compiler.
In this lesson, we look at a brief example of using the GCC compiler.
In this lesson, we study the definition of interpreter.
In this lesson, we study the syntax of a programming language.
In this lesson, we explain how to install the ANTLR4 tool and the Python3 interpreter.
In this lesson, we build our first program in ANTLR.
In this lesson, we see the different ways to introduce the input to our interpreter.
In this lesson, we introduce visitors.
In this lesson, we build a Visitor to evaluate expressions in our grammar for the sum of natural numbers.
In this lesson, we build an interpreter to evaluate the addition and subtraction of natural numbers.
In this lesson, we introduce the labels in ANTLR.
In this lesson, we build an interpreter with labels in its grammar. Also, we see its implementation in the visitor.
In this lesson, we define the product operation for an interpreter in ANTLR.
In this lesson, we define the division operation for an interpreter in ANTLR.
We define the grammar for our initial interpreter with variables.
We define the visitor for our initial interpreter with variables.
We define the python script for our initial interpreter with variables.
In this lesson, we define the grammar of the interpreter 1 on the section of Interpreters with Conditional Statements.
In this lesson, we define the visitor of the interpreter 1 on the section of Interpreters with Conditional Statements.
In this lesson, we define the grammar of the interpreter 2 on the section of Interpreters with Conditional Statements.
In this lesson, we implement the visitor of the interpreter 2 on the section of Interpreters with Conditional Statements.
In this lesson, we define the grammar of the interpreter 1 on the section of Interpreters with While.
In this lesson, we define the visitor of the interpreter 1 on the section of Interpreters with While.
In this lesson, we briefly introduce the final project document. In the following lessons, we will read and discuss it.
In this lesson, we see a brief example of a program in Bazilio.
In this lesson, we take a deep dive into the statement of the final project of the course.
Specifically, we present the Bazilio Language.
In this lesson, we take a deep dive into the specification of the Bazilio programming language.
In this lesson, we start building the grammar of the Bazilio programming language.
Define Brasilia grammar: procedures start with uppercase names, variables start lowercase, and a nine-instruction set including input, output, assignment, and procedure invocation; implement optional else and while constructs.
Finish defining the Basilio grammar, including list operations, add/get, and expression rules with operator precedence. Prepare interpreter implementation by covering strings, numbers, nodes, comments, and whitespace.
In this lesson, we start the implemention of the visitor for the Interpreter.
In this lesson, we start implementing the rules of the grammar in the visitor class.
In this lesson, we develop three rules: visitReprod, paramsId and paramsExpr.
At the reprod rule it is important to make the transformation of the notes to Lilypond format.
In this lesson, we develop three rules: visitProc, visitProcDef and visitString.
In this lesson, we start developing the visit for the expr rule. Since it is a rule that consists of many cases we use Labels.
In this lesson, we implement the rule for adding an element to the end of a list and the rule for cutting an element on a given index in a list.
In this lesson, we implement the visitNote method and we also start the implementation
of the visitSum.
In this lesson, we finish implementing the visitSum and we also implemented the visitLt on the Bazilio Visitor.
In this lesson, we finish the implementation of the visitor.
In this lesson, we learn how we can generate the music score with LilyPond and the audio files with timidity++ and ffmpeg.
In this lesson, we terminate the project.
You’ve just stumbled upon the most complete, in-depth ANTLR programming course online.
Learn how to design a compiler and interpreter from scratch, get hired, and have fun along the way with the most modern and up-to-date computer science course on Udemy. This course focuses on efficiency: never again waste time on confusing, outdated, and incomplete programming tutorials. We're pretty sure this is the most comprehensive and modern course you'll find anywhere on the subject.
This comprehensive, problem and exam-based course will introduce you to all the modern skills of an Interpreter specialist, and along the way we'll solve various interpreter design and analysis problems to give you experience. You will have access to all the work material and templates in the downloadable resources of the course. so you can put them in your portfolio right away! We believe this course solves the biggest challenge for entering the field of computer science: having all the necessary resources in one place and learning the latest trends and job skills that employers want.
The curriculum will be very hands-on as we guide you from start to finish to become a professional computer scientist. The course includes the entire Interpreters and Compilers syllabus from a college degree. So to any self-taught programmer who skipped college, this course is ideal.
The course is divided into sections where we delve into each of the Interpreters and Compilers topics. In addition, we also study the main applications in the real world today.
Some of the concepts we will study are:
Study of the design of a compiler and interpreter.
Compilation and Interpretation phases.
Lexical, syntactic and semantic analysis of a programming language.
Design of context-free grammars.
Differences between compilers and interpreters.
Tools for the creation of lexical and syntactic analyzers.
Master the ANTLR tool to build language interpreters, compilers and translators.
Design of a Programming Language from scratch.
Concept of visitors and listeners in compiler design.
Study and design of the abstract syntax tree (AST).
Generation of the symbol table in the construction of compilers.
By the end of this course, you will be an engineer specialized in compiler and interpreter design. You may be hired in large companies. We will use everything we learn in the course to create professional projects. In the end, you'll have a stack of projects you've built that you can show off to others.
Whether you're new to computer science, looking to improve your skills, or come from a different industry, this course is for you. This course is not about making you just design without understanding the principles, so when you're done with the course you won't know what to do but watch another tutorial. Nope! This course will push and challenge you to go from being an absolute beginner with no Compiler experience, to someone who can create your own workflows.
Compilers and Interpreters have applications in marketing and business finance, healthcare, cybersecurity, retail, transportation and logistics, agriculture, Internet of Things, gaming and entertainment, patient diagnostics, fraud detection, manufacturing anomaly detection, government, academia/research, recommendation systems, and much more. The skills learned in this course will give you many options for your career.
You'll get lifetime access to all lectures!
So, what are you waiting for? Learn Compilers and Interpreters in a way that advances your career and increases your knowledge, all in a fun and hands-on way!