Computer Science Engineering > Compiler Design

Compiler Design

Learn the Concepts of Compiler Design and test your knowledge

cover

CHOOSE YOUR TOPIC

Introduction

In this topic, we learn about What is a Compiler, The Phases of a Compiler,  What is a Cross-Compiler, Interpreters, Regular Expression Notation/Finite Automata Definitions

Lexical Analysis

In this topic, we learn about Introduction, Regular Expressions, Nondeterministic Finite Automata, Converting a Regular Expression to an NFA, Deterministic Finite Automata etc

Syntax Analysis

In this topic, we learn about Context-Free Grammar, Derivation, Operator Precedence, Other Sources of Ambiguity, Syntax Analysis, Predictive Parsing, Nullable and FIRST etc

Scopes and Symbol Tables

In this topic, we learn about Introduction, Symbol Tables, Implementation, Entering Information into The Symbol Table, Information About The Runtime Storage Location

Interpretation

In this topic, we learn about The Structure of an Interpreter, A Small Example Language, An Interpreter for the Example Language, Advantages and Disadvantages of Interpretation

Type Checking

In this topic, we learn about The Design Space of Types, Attributes, Environments for Type Checking, Type Checking Expressions, Type Checking of Function Declarations, Type Checking a Program, Advanced Type Checking

Intermediate-Code Generation

In this topic, we learn about Choosing an Intermediate Language, The Intermediate Language, Syntax-Directed Translation, Generating Code From Expressions, Translating Statements, Logical Operators etc

Machine-Code Generation

In this topic, we learn about Introduction, Conditional Jumps, Constants, Exploiting Complex Instructions, Peephole Optimizations, Using DAG for Code Generation, The Machine Model

Register Allocation

In this topic, we learn about Introduction, Liveness, Liveness Analysis, Interference, Register Allocation by Graph Coloring, Spilling, Heuristics

Function Calls

In this topic, we learn about Activation Records, Prologues, Epilogues and Call-Sequences, Caller-Saves Versus Callee-Saves, Using Registers to Pass Parameters, Interaction with the Register Allocator etc

Analysis and Optimization

In this topic, we learn about Data-Flow Analysis, Common Subexpression Elimination, Jump-to-Jump Elimination, Index-Check Elimination, Limitations of Data-Flow Analyses, Loop Optimizations etc

Memory Management

In this topic, we learn about Static Allocation, Stack Allocation, Heap Allocation, Manual Memory Management, Automatic Memory Management, Reference Counting, Tracing Garbage Collectors 

Bootstrapping a Compiler

In this topic, we learn about Introduction, Notation, Compiling compilers, Full bootstrap, Incremental bootstrapping, Using an interpreter

Test Your Knowledge

0%

You must be logged-in before attempting the quiz.

0%

You must be logged-in before attempting the quiz.

  • Create an Account and Earn 1000 Coins
  • Pass a Quiz and Earn 20 Coins
  • Earn 10 Coins for Daily Visit 
  • Earn 5 Coins for Favorite any activity post
  • Earn 10 Coins if you get a Favorite on your activity post
  • Earn 50 Coins for invite someone to join a group
  • Earn 100 Coins for finishing a course

DON'T MISS OUT

Career and Employment updates, Global Networking with Engineers and Skill Development Roadmap