Title: Theory / Unimportant / CS / Algo / Compiler
Tags: hasSeenConjDef
On every note of this deck, unless a note says otherwise:
Chapter: 1

Name: Programming languages
Definition: notations for describing computations to people and to machines
Page: 1

Name: Compiler
Definition: translate programming language from a source language to a target language
Page: 1
Definition2: report any errors in the source program
Conjdef: Software system that

Name: C's source language
Definition: A programming language which can be read by C
Page: 1
Variables: \(C\) a compiler
Context: A compiler

Name: C's target language
Definition: A programming language which can be written by C
Page: 1
Variables: \(C\) a compiler
Context: A compiler

Name: An interpreter
Definition: A program, taking as input a source program, some input, and executing the source program on those inputs
Page: 2
Variables: \(C\) a compiler

Question: What is better in interpreter than in compiler
Answer: error diagnostics
Page: 2
Chapter: 1

Question: What is better in compiler than in interpreter
Answer: speed
Page: 2
Chapter: 1

Name: Bytecode
Definition: compiled
Page: 2
Kind: Ex
Definition2: which can be read by an interpreter
Conjdef: Code
Intuition: Machine-independant compiled

Name: Just-in-time compiler
Definition: Compilers which compile only the part of the code they need, when they need it
Page: 2
Kind: Ex

Name: Preprocessor
Definition: Program which collects the source program
Page: 3
Kind: Ex

Name: Assembler
Definition: Compiler from assembly language to relocatable machine code
Page: 3
Kind: Ex

Name: Linker
Definition: Program which resolve external memory addresses
Page: 3
Kind: Ex

Name: Loader
Definition: Program which put together all of the executable object files into memory for execution
Page: 3
Kind: Ex

Name: Analysis
Definition: breaks up the source program into constituent pieces and imposes a grammatical structure on them.
Page: 4
Section: 2
Context: Compiler
Definition2: emit warning related to syntax, or semantic
Conjdef: Part of compilation which
Definition3: create the symbol table

Name: symbol table
Definition: A structure, created by the analysis part, storing informations about the source program
Page: 4
Section: 2
Context: Compiler
Name2: front end

Name: Synthesis
Definition: Creating target program from the intermediate represenattion and the information in the symbol table.
Page: 4
Section: 2
Context: Compiler
Name2: back end

Name: Lexical analysis
Definition: Reading the stream of characters making up the source program and groups the characters into token
Page: 6
Section: 2.1
Context: Compiler
Name2: Scanning

Name: A lexem
Definition: A meaningful sequence of character
Page: 6
Section: 2.1
Context: Compiler

Name: A token
Definition: A lexem, accompagnied with some attributes
Page: 6
Section: 2.1
Context: Compiler

Name: syntax analysis
Definition: Takes the tokens to create a tree-like intermediate representation that depicts the grammatical structure of the token stream.
Page: 6
Section: 2.1
Context: Compiler
Name2: parsing

Name: syntax tree
Definition: each interior node represents an operation
Page: 7
Section: 2.1
Context: Compiler
Definition2: the children of the node represent the arguments of the operation
Conjdef: A tree in which

Name: coercion
Definition: implicit conversion of a value from a type to another one
Page: 8
Section: 2.3
Context: Compiler

Name: code optimization
Definition: Attempting to improve the intermediate code so that better target code will result.
Page: 10
Section: 2.5
Context: Compiler

Name: code generation
Definition: The stage at which code is actually outputted by the compiler
Page: 10
Section: 2.6
Context: Compiler

Name: parser generator
Definition: A program which automatically produce syntax analyzers from a grammatical description of a programming language.
Page: 12
Section: 2.9
Context: Compiler

Name: Scanner generator
Definition: A program which produce lexical analyzers from a regular-expression description of the tokens of a language.
Page: 12
Section: 2.9
Context: Compiler

Name: Syntax-directed translation engine
Definition: A program which produce collections of routines for walking a parse tree and generating intermediate code.
Page: 12
Section: 2.9
Context: Compiler

Name: Code-generator generator
Definition: A program which produce a code generator from a collection of rules for translating each operation of the intermediate language into the machine language for a target machine.
Page: 12
Section: 2.9
Context: Compiler

Name: Dataow analysis engines
Definition: Program which facilitate the gathering of information about how values are transmitted from one part of a program to each other part. Dataow analysis is a key part of code optimization.
Page: 12
Section: 2.9
Context: Compiler

Name: Compiler-construction toolkits
Definition: Program which provide an integrated set of routines for constructing various phases of a compile
Page: 12
Section: 2.9
Context: Compiler