Last updated: May 3, 2022

Compiler Design

Compilers provide you with the theoretical and practical knowledge that is needed to implement a programming language. Once you learn to do compiler, you pretty much know the innards of many programming languages. Moreover, judging a programming language by its essential features will become easy for you. We are going to cover all the phases of a compiler such as lexical analysis, syntax analysis, intermediate code generation, code optimization, and symbol table in detail.
Left Recursion in Compiler Design EASY
Left recursion creates ambiguity in our grammar. In this article, we will learn what left recursion is and how we can remove left recursion from our grammar.
Parse Tree in Compiler Design EASY
In this article, we will learn what parse trees are, the rules for drawing them, and see examples to show how they work.
Compiler Design Notes MEDIUM
Explore essential concepts in compiler design: lexing, parsing, optimization, and common mistakes. Learn key components of compiler architecture and workflow.
Top Down and Bottom Up Parsing EASY
In this article, we will see the differences between these two parsing techniques.
Activation Record in Compiler Design MEDIUM
In this article, we will discuss the activation record in Compiler Design. We will also explore its example, components, features, etc.

Introduction to Compilers

Compiler is a translator that converts the high-level language into the machine language. In Compiler Design we’re going to learn all phases of a compiler such as lexical and syntax analysis, error detection, symbol table, code generation, garbage collection, and memory management.
Compiler
In this blog, we will be studying Compiler and its fundamental architectural Design.
Compiler Construction Tools EASY
Compiler construction tools are 1. Parser Generator 2. Scanner Generator 3. Syntax Directed Translation Engines 4. Automatic Code Generators
What is the Function of Dex Compiler EASY
In this article, we will study about the Dex Compiler. We will see what is the function of dex compiler and some major dex compilers which are used.
Characteristics of Compiler
In this article, we will discuss source program analysis and characteristics of compiler in deep detail.
Author Rashmi
0 upvotes
Access to Non-local data on the Stack in Compiler Design MEDIUM
In this blog, we will discuss what is non-local data and nested procedures and get to know about access to Non-local data on the Stack in Compiler Design.
What is a Compiler? MEDIUM
This article will discuss about compiler. We will learn what a compiler is, its types, how it works, why it is essential for software development, etc.
Author Tisha
0 upvotes
Attributes in Compiler Design MEDIUM
This blog will discuss attributes in compiler design and its two types, syntax-directed translation(SDT) and attributes flow in compiler design.
Translator in Compiler Design EASY
In this article, you'll learn about the different translator in compiler designs and their advantages and disadvantages.
Phases of a Compiler MEDIUM
Phases of a compiler are essential for programming language translation. Explore different phases of the compiler in this article.
Best 5 Online PHP Compiler
PHP is one of the most popular scripting languages used by developers worldwide. In this article, we'll see the best 5 online PHP Compiler.
Best 5 Online R Compiler EASY
In this blog, we will discuss the best 5 online R compilers with their features that should be considered with some FAQs.
Best 5 Online PSQL Compiler EASY
This article discusses the best 5 online compilers for PSQL.
Best 5 Online Ruby Compiler
In this article, we will explore the top five online Ruby compilers to facilitate your coding journey.
Best 5 Online Pascal Compiler
This article discusses the best 5 online compilers for Pascal. Also, it covers the features of underlying Compilers followed by some frequently asked questions.
Author Alisha
0 upvotes
Cross Compiler EASY
Cross Compiler is a type of compiler that is capable of creating an executable file for a platform different from the one on which it is running.
Syntax Directed Translation (STD) in Compiler Design
Syntax Directed Translation in compiler is a method of associating semantic rules with grammar productions to perform translation. Read on to learn more about STD!
Best 5 Online Kotlin Compiler
In this article, we'll explore five of the best online Kotlin compilers catering to beginner and experienced coders.
Loop Invariant Computation In Compiler Design HARD
In this blog, we will learn about Loop Invariant Computation In Compiler Design. We will understand loop invariants, optimization techniques, and implementation.
Copy Propagation in Compiler Design EASY
Copy propagation is an optimization technique in compiler design. This technique enhances code efficiency by reducing redundant assignments.
Bootstrapping in Compiler Design EASY
In this article, we will learn about bootstrapping in Compiler Design. We will also discuss its uses, advantages, and disadvantages.
Author jay_03
0 upvotes
Types of Compiler EASY
In this article, we will learn about compilers. We will also learn about different types of compilers.
Author jay_03
0 upvotes
Cousins of Compiler
A compiler is used to convert high-level language into low-level language. Cousins of the Compiler consist of Preprocessor, Assembler, Loader, and Link-editor.
Single Pass and Multi Pass Compiler
In this blog, we will learn about two types of compilers single pass and multi pass. We will also see the difference between them for better understanding.
Compiler vs Cross Compiler
In this article, we will discuss some of the major differences between compiler and cross compiler, their working, advantages, and disadvantages.
Difference between compiler and preprocessor
In this blog, we will learn about compiler and preprocessor and their working. We will also see the difference between the compiler and preprocessor.
Handle Pruning in Compiler Design
In this article, we will understand about handle pruning in compiler design, its features, examples, advantages, and disadvantages.
Boolean Expression in Compiler Design EASY
This article covers the concept of Boolean Expression in Compiler Design with the different translation schemes, and some frequently asked questions.
Lexeme in Compiler Design
Lexeme is a sequence of characters in the source code that are grouped together as a single unit. Lexemes help the compiler can analyze and process the code more efficiently.
Input Buffering in Compiler Design MEDIUM
In this article, we will learn about in detail the input buffering in compiler design and will discuss some terms that are needed to understand the input buffering in compiler design.
Dangling Reference in Compiler Design EASY
In this article, we are going through various ways dangling references/pointers can occur in our code. We will also look at ways to get rid of them.
Handle in Compiler Design
We will discuss handle in compiler design. We will also understand the vital points, examples, advantages, and disadvantages of a handle in compiler design.
Activation Tree in Compiler Design MEDIUM
In this article, we will discuss about activation tree in compiler design and activation records, and we will also discuss an example to understand the concept properly.
First and Follow in Compiler Design EASY
In this article, we will discuss a brief introduction to First and follow in compiler design, rules to find the first and follow in compiler design, and some related examples to find first and follow.
Inherited Attribute in Compiler Design
In this article, we will learn about an attribute named inherited attribute in compiler design and see some of the keywords related to the attribute.
Parsing in Compiler Design MEDIUM
Parsing is the process of deriving string from a given grammar. This is the process of converting data from one format to another using a parser.
Derivation in Compiler Design
This article will cover derivation in Compiler Design and its types, like left-most and right-most, with examples and frequently asked questions.
Author Shiva
0 upvotes
LALR Parser in Compiler Design MEDIUM
In this article, we will study about lalr compiler. We will focus on its uses, features, types advantages and disadvantages.
Code Optimization in Compiler Design MEDIUM
Code optimization is a program transformation approach that aims to enhance code by reducing resource consumption while maintaining high performance.
Loop Unrolling in Compiler Design EASY
This article will cover Loop Unrolling in Compiler Design, benefits and tradeoffs, and some techniques for loop unrolling in compiler design.
Author Shiva
0 upvotes
Constant Folding in Compiler Design EASY
In this article, we will cover constant folding in compiler design, along with some examples to understand its working. We will also learn about its benefits.
Difference Between Compiler and Assembler EASY
A compiler identifies errors if the code doesn't adhere to language rules. An assembler translates assembly code into machine code and generates data for the loader.
Application of Compiler Technology
The article contains the various advantages of compilers, applications of compiler technology, and some frequently asked questions.

Lexical Analysis

Lexical Analysis is the very first phase in compiler designing. It helps you to convert a sequence of characters into a sequence of tokens. The lexical analyzer breaks this syntax into a series of tokens. It removes any extra space or comment written in the source code.
Introduction to Lexical Analysis HARD
The first phase of the compilation is the lexical analysis in compiler design. It uses the code and breaks it into tokens by removing the comments and extra white spaces used in the code.
Regular Expressions in Compiler Design EASY
In compiler design, regular expressions play a crucial role in defining the syntax and structure of programming languages, allowing compilers to efficiently recognize and categorize different tokens in source code.
Lex in Compiler Design EASY
Lex in compiler design is a program used to generate scanners or lexical analyzers, also called tokenizers.
Deterministic Finite Automata (DFA) EASY
A Deterministic Finite Automaton (DFA) is a type of finite state machine used in automata theory to recognize patterns or regular languages.
Lexer and Lexer Generators
This article discusses Lexer and Lexer Generators and their use. We will also understand the applications of Lexer and Lexer Generators in compiler design.
Closure Properties of a Regular language EASY
A regular language may be expressed using regular expressions, non- deterministic or deterministic finite automata, or state machines.

Syntax Analysis

Syntax Analysis is a second phase of the compiler design process. We'll learn the basic concepts used in the construction of a parser. The syntax analysis phase gets its input from the lexical analyzer which is a string of tokens. It verifies whether the provided string of tokens is grammatically correct or not. Later the syntax analyzer forwards this parse tree to the next front end for processing. We also refer to the syntax analyzer as the parser.
Syntax Trees MEDIUM
In a syntax tree, each leaf node stands in for an operand and each inside node for an operator. Read on to learn more about syntax tree with examples.
Syntax Analysis
In this article, we will study syntax analysis in compiler design. We will see why it is necessary and how a compiler performs syntax analysis. We will learn several aspects related to syntax analysis, such as derivations, parse trees, etc.
Top Down Parsing MEDIUM
This blog covers the concept of top-down parsing and its classification in complete detail.
LL Parser in Compiler Design MEDIUM
This blog will discuss LL parser in compiler design along with LL(1) parsing, its prime requirements, and the algorithm to construct the parsing table.
Specification of Tokens in Compiler Design
In this article, we will learn about the specifications of tokens in compiler design and why specifications of tokens in compiler design are essential.
Recursive Descent Parser MEDIUM
Recursive descent parser is a top-down parser that is implemented as a set of mutually recursive procedures. Read on to learn more!
Left Factoring in Compiler Design EASY
Left factoring is used to remove uncertainty from the grammar that can arise while parsing. In this article, we will learn about left factoring and how it is done.
What is Predictive Parsing? MEDIUM
Predictive parsing is a technique used in compiler construction and syntax analysis. In this article we will discuss the theory of Predictive Parsing along with the example with full explanation. click to read more!
Bottom-up Parsing EASY
Bottom-up parsing begins at the terminal symbols (leaf nodes) of a parse tree and ascends towards the root node.
Operator Precedence Parsing MEDIUM
This article will discuss operator precedence parsing in detail, which is one of the type of shift reduce parsing.
LR Parsing EASY
LR Parser is a type of bottom-up parsing. It is used to parse context-free grammar, primarily used by compilers.
Leading and Trailing in Compiler Design
Leading and Trailing are important parts of Compiler Design. In this article, we will learn about leading and trailing, their uses, and their algorithms.
Polish Notation in Compiler Design EASY
In this article, you’ll learn about polish notation in compiler design, its conversion, and its advantages and disadvantages.
SLR Parser in Compiler Design
This article covers the concepts of SLR parsers in compiler design, along with some frequently asked questions related to them.

Intermediate-Code Generation

During the translation of a source program into the object code for a target machine, a compiler may generate a middle-level language code, which is known as Intermediate code or Intermediate text. The complexity of this code lies between the source language code and the object code.
The Intermediate language
This article discusses intermediate language and its use. We will understand the importance of Intermediate language in compiler design.
Three address code in Compiler EASY
Three-address code is simple to construct and convert to machine code. It employs just three places and one operator to describe an expression.
Types and Declarations
This article discusses types and declarations in compiler design. We will understand the importance of learning types and declarations.
Translation Of Expressions EASY
This article informs the reader about the translation of expression in compiler design.
Author Shiva
0 upvotes
Control Flow
In this article, we are going to discuss control flow and translation of control flow statements, and how this translation is tied with the translation of boolean expressions.
Backpatching in Compiler Design EASY
In this article, we will get to learn about backpatching in compiler design which lies in Intermediate Code Generation. We are also going to do some competitive-level questions.
Switch Statements
This blog discusses the switch statements in compiler design. It is a basic concept of programming that should be learned.
Case Statement in Compiler Design EASY
This blog will teach us a case statement in compiler design. We'll discuss its syntax and translation. We will also see its syntax in different languages.
Intermediate Code Generation in Compiler Design MEDIUM
Intermediate Code Generation (ICG) is a crucial phase in compiler design, sitting between syntax analysis and code optimization or machine code generation.

Memory Management in Compiler Design

The memory manager keeps track of all the free space in heap storage at all times. We are going to learn different concepts like storage organization, static allocation, stack allocation, heap allocation as well as garbage collection. Let’s get started with memory management.
Storage Organization
In this article, we will learn about storage organization. The storage layout for data objects is strongly influenced by the addressing constraints of the target machine.
Storage Allocation Strategies in Compiler Design MEDIUM
In Compiler Design, There are several strategies for storage allocation that are static, stack-based, heap-based, and hybrid collection.
Static Allocation
In this article, we will learn how static allocation of memory takes place during the compilation of a program
Stack Allocation EASY
In this article, we will learn stack allocation along with its advantages and disadvantages.
Heap Allocation
In this article, we will learn Heap allocation strategies which includes how allocation and deallocation of data is done.
Next Use Information in Compiler Design
This article covers the concepts of basic blocks, flow graphs, and next-use information, along with some frequently asked questions related to them.