Compilers

Cards (100)

  • Compilation
    Translates a program to another language
  • Source Language
    High-level programming language
  • Target Language

    Machine or assembly language
  • Interpreter
    Translates and executes source program
  • Preprocessing
    Occurs before program compilation
  • Assembler
    Type of translator
  • #include
    Directive to include specified file
  • #define
    Defines symbolic constants and macros
  • Macro
    Text substitution without data type checking
  • #undef
    Undefines a symbolic constant or macro
  • Conditional Compilation

    Control preprocessor directives and compilation
  • Compiler
    Translates C program to assembler code
  • Parser
    Part of the compiler that analyzes syntax
  • Code Optimizer

    Improves code efficiency
  • Linker
    Combines object code to make executable file
  • Loader
    Places object programs in memory for execution
  • Compiler Construction

    Translates high-level languages to machine language
  • Machine Language
    Language computers understand
  • Compiler Properties

    Compiler must generate correct and efficient code
  • Compiler Goals

    Code correctness, efficiency, and speed
  • Optimizing Compiler
    Produces more efficient output code
  • Compiler Study Importance

    Teaches theoretical techniques and software engineering skills
  • Formal Grammars

    Used in compiler construction
  • Lattice Theory

    Theoretical technique in compilers
  • Compiler Construction Challenges

    Involves theory, algorithms, systems, and architecture
  • Compiler Construction Solutions

    Techniques applicable in various applications
  • Compiler Construction Status

    Not a fully solved problem
  • Syntax
    Specifies the structure of a programming language
  • Semantics
    Defines the meaning of constructs in a programming language
  • Context-Free Grammar (CFG)

    Set of recursive rewriting rules to generate string patterns
  • Static Semantics

    Rules checked at compile time, like function argument types
  • Runtime Semantics
    Rules checked only during program execution
  • Lexical Analysis

    Converts source code characters into lexical units
  • Syntax Analysis

    Transforms lexical units into parse trees showing program structure
  • Semantics Analysis

    Generates intermediate code from parse trees
  • Code Generation

    Produces machine code from intermediate code
  • Regular Expression

    Pattern notation for specifying finite string sets
  • Lexical Analyzer

    Identifies tokens in a program using regular expressions
  • Lexeme
    Sequence of characters matching a pattern in source code
  • Token
    Logically cohesive sequence of characters representing a lexeme