Design Your Own Programming Language And Its Compiler Part 1
Published 2/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 20.23 GB | Duration: 30h 42m
Published 2/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 20.23 GB | Duration: 30h 42m
using javascript and react js to develop a compiler and its debugging IDE for your own programming language with TDD
What you'll learn
Developing an Interpreter using js and react js Programming
Understand Lexing, Parsing , Evaluation steps of the Parser
Create a REPL and Debugging IDE for playing with the interpreter
Develop interpreter for a custom programming language
Master Advanced compiler topic such as Closures, Class inheritance
Requirements
basic programming experiences for javascript, react js,
Description
Welcome to the exciting world of interpreter and compiler technology! Are you ready to take your coding skills to the next level? Look no further, because our new course on Udemy has everything you need to dive deep into the fascinating realm of programming language development.In this course, we'll guide you through the creation of your very own interpreter or compiler for a self-defined programming language called DragonScript. But why should you embark on this journey? Let's break it down:Enhance Your Coding Skills: Learning interpreter or compiler technology isn't just cool—it's essential for any programmer looking to level up their skills. Understanding how languages are interpreted or compiled opens doors to deeper insights into programming concepts and boosts your problem-solving abilities.JS and React JS Power: Why JS and React JS? Because they're not just for building web applications! These powerful tools are perfect for developing interpreters or compilers due to their versatility, ease of use, and extensive community support.Interactive and Engaging: Get ready for an interactive and exciting learning experience! Our course is designed to keep you engaged from start to finish with hands-on projects, quizzes, and real-world examples.Step-by-Step and TDD Approach: We take a methodical approach to learning, guiding you through each concept step by step. With a focus on Test-Driven Development (TDD), you'll build your skills in a structured and easy-to-follow manner.Emphasis on Coding: Get ready to roll up your sleeves and dive into coding! This course isn't just about theory—we believe in learning by doing. You'll spend plenty of time writing code, building projects, and honing your skills through practical exercises.Demystifying Compiler Algorithms: Compiler algorithms can seem daunting, but fear not! We'll break down these complex concepts into digestible chunks with plenty of concrete coding examples. By the end of the course, you'll wonder why you ever found them intimidating.Explore key concepts like lexical analysis and grammar parsing, laying the foundation for your journey into language development.Take your skills to the next level with advanced topics such as closures, first-class functions, error handling, and class inheritance. Become a coding maestro in no time!Whether you're a seasoned developer looking to expand your knowledge or a newcomer eager to learn, our course has something for everyone. Join us on this exciting journey and unlock the secrets of interpreter and compiler technology. Enroll now and start building your own programming language today!
Overview
Section 1: course introduction
Lecture 1 make your hand wetted
Lecture 2 about my self
Lecture 3 how to get most out of this course
Section 2: What is Lexing
Lecture 4 Make your hand wetted
Lecture 5 introduction to lexing
Lecture 6 init project for lexing
Lecture 7 Init Scanner and setup test cases
Lecture 8 Begin lexing process and past test cases
Lecture 9 Finish scanning for all single character operator
Lecture 10 Scanning for operator with two characters
Lecture 11 Lexing Comment Operator
Lecture 12 Ignore space and count newlines
Lecture 13 Handling string token
Lecture 14 Handling number token
Lecture 15 Lexing Identifier
Lecture 16 Lexing key words
Lecture 17 Handling multiple tokens in one line
Lecture 18 Create a terminal emulator
Section 3: What is parsing
Lecture 19 Introduction to what is parsing in compiler algorithm
Lecture 20 Implementing a arithmetic parser
Lecture 21 Debugging the arithmetic parser
Lecture 22 Solution for arithmetic parser
Lecture 23 Introduction to abstract syntax tree
Lecture 24 Coding abstract syntax tree 1
Lecture 25 Coding abstract syntax tree 2
Lecture 26 Recursive descent parser
Lecture 27 Init the parser class
Lecture 28 Add token handling methods for parser
Lecture 29 Begin implementation of parsing algorithm
Lecture 30 Transfer more grammar rules into recursive function calls
Lecture 31 Complete all function calls for expression grammar
Lecture 32 parsing expression with operator + and -
Lecture 33 Enable parsing keyword, brackets and two new operator that are *, /
Lecture 34 Add support for operator multiply, division, and brackets
Lecture 35 Add support for comparison and equality operator
Section 4: Evaluation
Lecture 36 Drawing the parsing tree
Lecture 37 hands on visitor pattern, part one
Lecture 38 hands on visitor pattern, part two
Lecture 39 begin evaluation by using visitor pattern and adding testing cases
Lecture 40 Evaluate expression with parentheses
Lecture 41 Evaluate expression with unary operator
Lecture 42 Set the truthiness and falseness rule
Lecture 43 Evaluation for expression with binary operator + and -
Lecture 44 Evaluation for expression with operator * and /
Lecture 45 Evaluate on comparison operator
Lecture 46 Evaluate on equality operator
Lecture 47 Enable number and string for add and multiply method
Lecture 48 Report error for operation with incompatible type
Lecture 49 Fix bug of parsing tree structure adjustment
Section 5: Evaluation of Statements
Lecture 50 Introduce to statements
Lecture 51 Parsing and evaluating print statement
Lecture 52 Runtime and Evaluation of multiple lines of code
Lecture 53 Introduce to variable declaration grammar rules
Lecture 54 Code for parsing variable declaration
Lecture 55 Variable binding and reference
Lecture 56 Grammar rules for variable assignment
Lecture 57 Code for parsing variable assignment
Lecture 58 Assign to l-value only
Lecture 59 Evaluate assignment statement
Lecture 60 Parsing block statement
Lecture 61 Evaluating variable declarations in local scope
Lecture 62 More test cases for variable scoping
Section 6: Control statements
Lecture 63 Introduce to control statements
Lecture 64 Parsing if else statement
Lecture 65 Introduce to logic operators
Lecture 66 Evaluating if else statement
Lecture 67 Parsing logic operators
Lecture 68 Evaluate logic operators
Lecture 69 Parsing while loop
Lecture 70 Evaluate the while loop
Lecture 71 Parsing the for loop
Lecture 72 Introduce to break and continue statements
Lecture 73 Evaluating the for loop
Lecture 74 Parsing continue and break statement
Lecture 75 Evaluate break and continue statement
Section 7: Parsing and Evaluating function call
Lecture 76 Introduce the principle of function call parsing
Lecture 77 Code implementation for function call parsing
Lecture 78 Debugging the process of function call parsing
Lecture 79 Introduce the parsing of function declaration
Lecture 80 Code implementation for parsing function declaration
Lecture 81 Debugging the code for parsing function declaration
Lecture 82 Code implementation for evaluating function call
Lecture 83 Step by step debugging of code for evaluating function call
Lecture 84 Handle errors related to function call
Lecture 85 Parsing return statement
Lecture 86 Evaluation of return statement
Lecture 87 Make sure return statement inside function body
Lecture 88 code implementation for unnamed function call
Lecture 89 debugging parsing and evaluating unnamed function
Section 8: Binding an variable resoultuion
Lecture 90 Introduce to the problem scoping and binding
Lecture 91 Code implementation for variable resolution
Lecture 92 Variable binding by resolver
Lecture 93 Debugging the code of variable resolution
Section 9: Class
Lecture 94 Parsing class definition
Lecture 95 Init class instance
Lecture 96 Grammar rule for setting and getting instance property
Lecture 97 Code implementation for getting and setting instance property
Lecture 98 Introuduce to evaluation of class property setting and getting
Lecture 99 Clone The class parsing tree
Lecture 100 Code for setting and getting properties of class instance
Lecture 101 8.parsing method call combine with field accessing
Lecture 102 Assigning value to fields of class instance
Lecture 103 Code implementation for this keyword and method calling1
Lecture 104 Code implementation for this keyword and method calling2
Lecture 105 Introduce to class constructor
Lecture 106 Code implementation for class constructor
Lecture 107 Error handling for class
students and developer interesting in compiler design