Cards (5)

  • What is a compiler?
    Used when high-level programming languages are converted into machine code, ready to be executed by the CPU. There are 4 stages of complication
  • Lexical analysis

    • Comments and unneeded spaces are removed
    • Keywords, constants and identifiers are replaced by 'tokens'
    • A symbol table is created which holds the addresses of variables, labels and subroutines
  • Syntax analysis

    • Tokens are checked to see if they match the spelling and grammar expected, using standard language definitions. This is done by parsing each token to determine if it uses the correct syntax for the programming language
    • If syntax errors are found, error messages are produced
  • Semantic analysis

    • Variables are checked to ensure they have been properly declared and used
    • Variables are checked to ensure they are of the correct data type, e.g. real values are not being assigned to integers
    • Operations are checked to ensure they are legal for the type of variable being used, e.g. you would not try to store the result of a division operation as an integer
  • Code generation
    • Machine code is generated
    • Code optimisation may be employed to make it more efficient/faster/less resource intense.