The Complete Course Of Compiler Design 2023
Published 12/2023
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 1.66 GB | Duration: 11h 16m
Published 12/2023
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 1.66 GB | Duration: 11h 16m
Learn how to develop Compilers in a Professional way from Scratch. Build your own C++ Compiler, from A to Z!
What you'll learn
At the end of the course you will fully master Compiler Design, to be able to develop your own C++ compilers from scratch
You will be able to understand the fundamental theory of Compilers, ending with advanced practical examples & step by step exercises
You will become familiar with the user interface, toolbars and basic commands, and you will master all the phases of the configuration process
You will learn in a professional way the Lexical Analysis, the Syntax Analysis and the Semantic Analysis
You will learn how to generate a code a code from sratch, understanding its interpretation
You will understand how to with Runtime Environments, Optimization and Domain Specific Language DSL
You will learn other essential topics in compilers: Target Program Code, Memory Management, Allocation & Assignment, Dynamic vs Static Compilation, Hotspot…
You will understand how to build a Simple Lexer, a Simple Parser and Simple ICG from scratch, in a practical way
You will master the advanced Tips and Tricks to Master Compiler Design, and you will discover the best resources to stay updated
You will be able to practice the content learned in a practical way by following all the steps in the complete exercises, quizes and the complete projects
You will start with the basics and progressively carry out more complex steps until you reach an advanced level and absolute mastery at the end of the course
Requirements
Having basic notions of Compiler Design and C++ language can help, but if not, do not worry cause the course starts from scratch
Installing Visual Studio Code and needed environment (if you don't know how, don't worry, it's very easy, free, and I'll explain it to you in the course!)
A decent computer and of course, desire to learn!
Description
Become a Compiler developer professional and learn one of employer's most requested skills nowadays!This comprehensive course is designed so that developers, engineers, programmers, students… can learn Compiler Design from scratch to develop compilers in a practical and professional way. Never mind if you have no experience in the topic, you will be equally capable of understanding everything and you will finish the course with total mastery of the subject.After several years working in software and engineering, we have realized that nowadays mastering Compiler Design is very necessary for undesrtand teh structure and set of principles that guide the translation, analysis, and optimization process of a compiler. Knowing how to build your own compiler from scratch can give you many job opportunities and many economic benefits, especially in the world of the development.The big problem has always been the complexity to perfectly understand compilers requires, since its absolute mastery is not easy. In this course we try to facilitate this entire learning and improvement process, so that you will be able to carry out and understand your own compilers in a short time, thanks to the step-by-step and detailed examples of every concept.With more than 11 exclusive hours of video and almost 100 lectures, this comprehensive course leaves no stone unturned! It includes both practical exercises and theoretical basis to fully master the compiler design. The course will teach you how to develop any C++ compiler in a practical way, from scratch, and step by step.We will start with the overview and setup of Visual Studio Code and needed environment and then, we'll cover a wide variety of topics, including:Introduction to Compiler Design and course dynamicsSet up, configurations and needed installations for the work environmentGeneral familiarization with the user interface and elementsThe Fundamentals of CompilersLexical Analysis Syntax AnalysisSemantic AnalysisCode generation from sratchRuntime EnvironmentsOptimization TechniquesDomain Specific Language DSLOther topics: Target Program Code, Memory Management, Allocation & Assignment, Dynamic vs Static Compilation, Just-In-Time and Hotspot Compilation…Building a Simple LexerBuilding a Simple ParserBuilding a Simple ICGAdvanced Tips and Tricks to Master Compiler Design and the best resources to stay updatedMastery and application of absolutely ALL the functionalities of Compiler DesignQuizes, Practical exercises, complete projects and much more!In other words, what we want is to contribute our grain of sand and teach you all those things that we would have liked to know in our beginnings and that nobody explained to us. In this way, you can learn to create and manage a wide variety of compilers quickly and make versatile and complete use of Compiler Design. And if that were not enough, you will get lifetime access to any class and we will be at your disposal to answer all the questions you want in the shortest possible time.Learning Compiler Design has never been easier. What are you waiting to join?
Overview
Section 1: Introduction
Lecture 1 Welcome and Course Overview
Lecture 2 Early Day Computers
Lecture 3 The Importance of Compiler Design
Lecture 4 Setting Up Development Environment
Section 2: Compiler Basics
Lecture 5 What is a Compiler?
Lecture 6 Compiler vs Interpreter
Lecture 7 The Compilation Process
Lecture 8 Question 1
Lecture 9 Question 1 Answer
Section 3: Lexical Analysis
Lecture 10 Lexical Analyzer, Tokens, Lexemes
Lecture 11 Regular Expressions
Lecture 12 Question 2
Lecture 13 Question 2 Answer
Lecture 14 Finite Automata
Lecture 15 Examples
Lecture 16 Transition Tables
Lecture 17 NFA to DFA
Lecture 18 Question 3
Lecture 19 Question 3 Answer
Lecture 20 Question 4
Lecture 21 Question 4 Answer
Lecture 22 Question 5
Lecture 23 Question 5 Answer
Section 4: Syntax Analysis
Lecture 24 Syntax Analysis, Context Free Grammar (CFG)
Lecture 25 How to Parse, Parse Tree, Left Recursion, Left factoring
Lecture 26 Question 6
Lecture 27 Question 6 Answer
Lecture 28 Question 7
Lecture 29 Question 7 Answer
Lecture 30 Types of Parsing, Recursive Decent Parsing
Lecture 31 C++ Recursive Decent Parsing Code
Lecture 32 First Set and Follow Set
Lecture 33 Question 8
Lecture 34 Question 8 Answer
Lecture 35 Predictive Parsers, LL(k) Parsers
Lecture 36 Question 9
Lecture 37 Question 9 Answer
Lecture 38 Bottom-Up Parsing, LR Parsing
Lecture 39 LR Parsing Table and Example
Lecture 40 Question 10
Lecture 41 Question 10 Answer
Section 5: Semantic Analysis
Lecture 42 Semantic Analysis
Lecture 43 Syntax Directed Translation
Lecture 44 Question 11
Lecture 45 Question 11 Answer
Section 6: Intermediate Code Generation
Lecture 46 Intermediate Code Generation
Lecture 47 Directed Acyclic Graphs
Lecture 48 Abstract Syntax Tree
Lecture 49 Notations
Lecture 50 Question 12
Lecture 51 Question 12 Answer
Lecture 52 Three-Address Code
Lecture 53 Quadruples & Triples
Lecture 54 Question 13
Lecture 55 Question 13 Answer
Section 7: Runtime Environments
Lecture 56 Runtime Environments
Lecture 57 Stack
Lecture 58 Stack Implementation using C++
Lecture 59 Heap
Lecture 60 Activation Records
Lecture 61 Managing Scope
Lecture 62 Question 14
Lecture 63 Question 14 Answer
Section 8: Optimization Techniques
Lecture 64 Optimization Techniques
Lecture 65 Constant Folding
Lecture 66 Dead Code Elimination
Lecture 67 Common Sub expression Elimination
Lecture 68 Question 15
Lecture 69 Question 15 Answer
Section 9: Advanced Compiler Topics
Lecture 70 Code Generation
Lecture 71 Input to the Code Generator
Lecture 72 Target Program Code
Lecture 73 Memory Management
Lecture 74 Instruction Selection & Examples on generating Assembly code
Lecture 75 Question 16
Lecture 76 Question 16 Answer
Lecture 77 Register Allocation & Assignment
Lecture 78 Evaluation Order & Example
Lecture 79 Question 17
Lecture 80 Question 17 Answer
Lecture 81 Just-In-Time Compilation
Lecture 82 Dynamic Compilation vs Static Compilation
Lecture 83 HotSpot Compilation
Section 10: Domain Specific Language DSL
Lecture 84 Domain-Specific Languages (DSLs)
Lecture 85 Mathematical Expression using DSL
Lecture 86 DSL for the Expression
Lecture 87 Testing the DSL
Lecture 88 Problem Statement
Lecture 89 DSL Function
Lecture 90 Testing the DSL
Lecture 91 Question 18
Lecture 92 Question 18 Answer
Section 11: Compiler Construction Projects
Lecture 93 Building a Simple Lexer
Lecture 94 Building a Simple Parser
Lecture 95 Building a Simple ICG
Lecture 96 Question 19
Lecture 97 Question 19 Answer
Lecture 98 Recap of Key concepts and References
Beginners who have never design a compiler before,Developers, engineers, programmers, students… who want to learn how to develop a C++ compiler in a professional way,Intermediate or advanced Compile Design student who want to improve their skills even more!