Parsing Algorithms
Parsing Algorithms, available at $59.99, has an average rating of 4.9, with 22 lectures, based on 117 reviews, and has 729 subscribers.
You will learn about Context-free grammars Abstract Syntax Trees Parser generators Build a full parser from scratch using parser generator Top-down LL parsers Bottom-up LR parsers Backtracking parsers Left-recursion and Left-factoring Predictive recursive descent parsers LL(1), LR(0), SLR(1), CLR(1), LALR(1) parsers Shift-reduce algorithm Syntax tool: language-agnostic parser generator This course is ideal for individuals who are Any curious engineers or Compiler engineers It is particularly useful for Any curious engineers or Compiler engineers.
Enroll now: Parsing Algorithms
Summary
Title: Parsing Algorithms
Price: $59.99
Average Rating: 4.9
Number of Lectures: 22
Number of Published Lectures: 22
Number of Curriculum Items: 22
Number of Published Curriculum Objects: 22
Original Price: $59.99
Quality Status: approved
Status: Live
What You Will Learn
- Context-free grammars
- Abstract Syntax Trees
- Parser generators
- Build a full parser from scratch using parser generator
- Top-down LL parsers
- Bottom-up LR parsers
- Backtracking parsers
- Left-recursion and Left-factoring
- Predictive recursive descent parsers
- LL(1), LR(0), SLR(1), CLR(1), LALR(1) parsers
- Shift-reduce algorithm
- Syntax tool: language-agnostic parser generator
Who Should Attend
- Any curious engineers
- Compiler engineers
Target Audiences
- Any curious engineers
- Compiler engineers
Course overview
Parsing or syntactic analysis is one of the first stages in designing and implementing a compiler. A well-designed syntax of your programming language is a big motivation why users would prefer and choose exactly your language.
———————————————————-
The problem with “parsers theory” in classic compiler schools and books is that this theory is often considered as “too advanced”, going right into complicated formal descriptions from the Theory of Computation and formal grammars. As a result students may lose an interest in building a compiler already at parsing stage.
The opposite problem often seen in describing a parser is a superficial approach describing only manual (usually recursive descent) parsing, leaving the students with issues understanding the actual techniques behind the automated parsers.
———————————————————-
I believe this deep dive into the parsing theory should be combined together with a hands-on approach, which goes in parallel and allows seeing all the learned theoretical material on practice.
In the Essentials of Parsing (aka Parsing Algorithms) class we dive into different aspects of the parsing theory, describing in detail the LL and LR parsers. However at the same time to make the learning process and understanding easy and fun, we build in parallel an automatic parser for a full programming language, similar to JavaScript or Python, from scratch.
After this class not only you will be able to use a parser generator to build parsers for programming languages, but will also understand how the parser generators work under the hood themselves.
Implementing a parser for a programing language would also make your practical usage of other programming languages more professional.
Who this class is for?
This class is for any curious engineer, who would like to gain skills of building complex systems (and building a parser for a programing language is a pretty advanced engineering task!), and obtain a transferable knowledge for building such systems.
If you are interested specifically in compilers, interpreters, and source code transformation tools, then this class is also for you.
The only pre-requisite for this class is basic data structures and algorithms: trees, lists, traversal.
What is used for implementation?
Since we build a language very similar in semantics to JavaScript or Python (the two most popular programming languages today) we use specifically JavaScript — its elegant multi-paradigm structure which combines functional programming, class-based, and prototype-based OOP fits ideal for that.
Many engineers are familiar with JavaScript so it should be easier to start coding right away. To generate the automated parser we use Syntax tool which is a language-agnostic parser generator, and supports plugins for Python, Ruby, C#, PHP, Java, Rust, etc. That is, the implementation of this parser can easily be transferred to any other language of your choice and taste.
Note: we want our students to actually follow, understand and implement every detail of the parser themselves, instead of just copy-pasting from final solution. The full source code for the language is available in video lectures, showing and guiding how to structure specific modules.
What’s specific in this class?
The main features of these lectures are:
-
Concise and straight to the point. Each lecture is self-sufficient, concise, and describes information directly related to the topic, not distracting on unrelated materials or talks.
-
Animated presentation combined with live-editing notes. This makes understanding of the topics easier, and shows how (and when at time) the object structures are connected. Static slides simply don’t work for a complex content.
-
Live coding session end-to-end with assignments. The full source code, starting from scratch, and up to the very end is presented in video lectures of the class
What is in the course?
The course is divided into four parts, in total of 22 lectures, and many sub-topics in each lecture. Below is the table of contents and curriculum.
Part 1: Context-free grammars and languages
In this part we describe different parsing pipelines, talk about formal grammars, derivations, what is ambiguous and unambitious grammar, and start building our programming language.
Part 2: Top-down LL parsing
In this part we talk in detail about Top-down parsing, describing manual recursive and backtracking parser, and also dive into the LL(1) parsing algorithm.
Part 3: Bottom-up LR parsing
In this part we describe Bottom-up parsers and LR parsing algorithm. In parallel we continue building our programming language, analyzing shift-reduce conflicts and fixing them.
Part 4: Practice and final parser
The final part of the course is completely practical, we’re finishing our Letter programming language, building variables, functions, loops, control structures, object-oriented programming, and the final parser.
Course Curriculum
Chapter 1: Context-free grammars and languages
Lecture 1: Formal grammars, context-free
Lecture 2: Grammar derivations
Lecture 3: Ambiguous grammars
Lecture 4: Syntax tool | Letter
Lecture 5: Abstract Syntax Trees
Chapter 2: Top-down LL parsing
Lecture 1: Backtracking parser
Lecture 2: Left-recursion and Left-factoring
Lecture 3: Predictive Recursive descent parser
Lecture 4: LL(1) parsing: First & Follow sets
Lecture 5: Construction of LL(1) parsing table
Lecture 6: LL(1) parsing algorithm
Chapter 3: Bottom-up LR parsing
Lecture 1: Back to practice: Statements | Blocks
Lecture 2: Function Declarations
Lecture 3: LR parsing: Canonical Collection of LR-items
Lecture 4: LR parsing table: LR(0) and SLR(1)
Lecture 5: CLR(1) and LALR(1) parsing tables
Lecture 6: LR(1) parsing algorithm
Chapter 4: Practice and final parser
Lecture 1: Control structures: If-statement
Lecture 2: Variables | Assignment
Lecture 3: Function calls | Unary expression
Lecture 4: Member expression | Iteration
Lecture 5: OOP | Final parser
Instructors
-
Dmitry Soshnikov
Software engineer and Instructor
Rating Distribution
- 1 stars: 1 votes
- 2 stars: 1 votes
- 3 stars: 5 votes
- 4 stars: 28 votes
- 5 stars: 82 votes
Frequently Asked Questions
How long do I have access to the course materials?
You can view and review the lecture materials indefinitely, like an on-demand channel.
Can I take my courses with me wherever I go?
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don’t have an internet connection, some instructors also let their students download course lectures. That’s up to the instructor though, so make sure you get on their good side!
You may also like
- Top 10 Video Editing Courses to Learn in November 2024
- Top 10 Music Production Courses to Learn in November 2024
- Top 10 Animation Courses to Learn in November 2024
- Top 10 Digital Illustration Courses to Learn in November 2024
- Top 10 Renewable Energy Courses to Learn in November 2024
- Top 10 Sustainable Living Courses to Learn in November 2024
- Top 10 Ethical AI Courses to Learn in November 2024
- Top 10 Cybersecurity Fundamentals Courses to Learn in November 2024
- Top 10 Smart Home Technology Courses to Learn in November 2024
- Top 10 Holistic Health Courses to Learn in November 2024
- Top 10 Nutrition And Diet Planning Courses to Learn in November 2024
- Top 10 Yoga Instruction Courses to Learn in November 2024
- Top 10 Stress Management Courses to Learn in November 2024
- Top 10 Mindfulness Meditation Courses to Learn in November 2024
- Top 10 Life Coaching Courses to Learn in November 2024
- Top 10 Career Development Courses to Learn in November 2024
- Top 10 Relationship Building Courses to Learn in November 2024
- Top 10 Parenting Skills Courses to Learn in November 2024
- Top 10 Home Improvement Courses to Learn in November 2024
- Top 10 Gardening Courses to Learn in November 2024