Logo
Pattern

Discover published sets by community

Explore tens of thousands of sets crafted by our community.

Compiler Basics

30

Flashcards

0/30

Still learning
StarStarStarStar

Peephole Optimization

StarStarStarStar

A code optimization technique that examines and improves small parts of machine code or intermediate code.

StarStarStarStar

Constant Folding

StarStarStarStar

The process of recognizing and evaluating constant expressions at compile time rather than computing them at runtime.

StarStarStarStar

Data Flow Analysis

StarStarStarStar

A technique used for gathering information about the possible set of values calculated at various points in a computer program.

StarStarStarStar

Quadruples

StarStarStarStar

An intermediate code representation that expresses operations in a structured four-part format.

StarStarStarStar

Just-In-Time Compilation (JIT)

StarStarStarStar

A compilation approach where code is compiled during execution (runtime) rather than beforehand.

StarStarStarStar

Garbage Collection

StarStarStarStar

The automatic process of memory deallocation for objects that are no longer accessible by a program.

StarStarStarStar

Tail Call Optimization

StarStarStarStar

A technique that allows for some kinds of function calls to be replaced by a single jump instruction, reducing the overhead of recursion.

StarStarStarStar

Constant Propagation

StarStarStarStar

The process of substituting the values of known constants in expressions at compile time.

StarStarStarStar

Static Single Assignment (SSA)

StarStarStarStar

A property of an intermediate representation (IR), which requires each variable to be assigned exactly once and defined before use.

StarStarStarStar

Tokens

StarStarStarStar

The smallest individual units in a program, created in the lexical analysis phase, such as keywords, identifiers, and operators.

StarStarStarStar

Parse Tree

StarStarStarStar

A hierarchical structure that represents the syntax of the source code as derived from a grammar.

StarStarStarStar

Symbol Table

StarStarStarStar

Data structure used by a compiler to keep track of information about language constructs like variables, functions, classes, etc.

StarStarStarStar

Control Flow Graph (CFG)

StarStarStarStar

A representation, used in program analysis, that depicts all paths that might be traversed through a program during its execution.

StarStarStarStar

Intermediate Code Generation

StarStarStarStar

After semantic analysis, the compiler generates a low-level or intermediate representation of the source code.

StarStarStarStar

Code Optimization

StarStarStarStar

The process of improving intermediate code so it runs faster and consumes fewer resources.

StarStarStarStar

Code Generation

StarStarStarStar

The process of converting intermediate code into target machine code.

StarStarStarStar

Three-Address Code

StarStarStarStar

An intermediate code form used by compilers where each instruction contains at most three operands.

StarStarStarStar

Semantic Analysis

StarStarStarStar

The compiler phase that checks for semantic errors, ensures type compatibility, and collects type information.

StarStarStarStar

Backpatching

StarStarStarStar

A method used in compilers to manage jumps to forward locations or unresolved addresses in the code.

StarStarStarStar

Loop Optimization

StarStarStarStar

The process of increasing the execution speed and efficiency of loops in a program.

StarStarStarStar

Inlining

StarStarStarStar

An optimization technique that involves replacing a function call with the body of the called function.

StarStarStarStar

Syntax Analysis

StarStarStarStar

The phase where tokens are organized into a parse tree which represents the grammatical structure of program code.

StarStarStarStar

Escape Analysis

StarStarStarStar

A method of determining if a pointer or a reference to a resource can be accessed beyond the scope it was created in.

StarStarStarStar

Basic Block

StarStarStarStar

A straight-line code sequence with no branches in except to the entry and no branches out except at the exit.

StarStarStarStar

Dead Code Elimination

StarStarStarStar

An optimization that removes code which does not affect the program results (such as instructions following an unconditional jump).

StarStarStarStar

Register Allocation

StarStarStarStar

The process of assigning a large number of target program variables onto a small number of CPU registers.

StarStarStarStar

Type Casting

StarStarStarStar

Converting a variable from one data type to another, for example, an integer to a float.

StarStarStarStar

Abstract Syntax Tree (AST)

StarStarStarStar

A tree representation of the abstract syntactic structure of source code written in a programming language.

StarStarStarStar

Lexical Analysis

StarStarStarStar

The first phase of a compiler where the source code is converted into tokens.

StarStarStarStar

Interprocedural Optimization

StarStarStarStar

Optimizations that analyze multiple functions or methods together, which can span multiple files or modules.

Know
0
Still learning
Click to flip
Know
0
Logo

© Hypatia.Tech. 2024 All rights reserved.