Tags
Language
Tags
February 2025
Su Mo Tu We Th Fr Sa
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
Attention❗ To save your time, in order to download anything on this site, you must be registered 👉 HERE. If you do not have a registration yet, it is better to do it right away. ✌

( • )( • ) ( ͡⚆ ͜ʖ ͡⚆ ) (‿ˠ‿)
SpicyMags.xyz

Design Your Own Programming Language And Its Compiler Part 1

Posted By: ELK1nG
Design Your Own Programming Language And Its Compiler Part 1

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

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