Compilers (coursera): Difference between revisions

From Adam Colton
Jump to navigation Jump to search
Line 38: Line 38:
=== Lexical Analysis ===
=== Lexical Analysis ===
==== 01 ====
==== 01 ====
Lexer breaks the code into tokens; string + class.
Lexer breaks the code into tokens; string (or lexeme) + class.


Painfully slow example of manual tokenization.
Painfully slow example of manual tokenization.

Revision as of 15:23, 15 September 2015

From https://class.coursera.org/compilers/lecture/preview

Video Lectures

Intro

01

Compiler and interpreter.

The interpreter takes the program and some data produces output. This would be scripting.

A compiler takes the program and produces and executable. This executable can be run on the data.

  • lexical analysis
  • parsing
  • semantic analysis
  • optimization
  • code generation

02

Lexing breaks input into tokens. Parsing produces a tree. Semantic analysis checks that the program is correct. Optimization makes it run faster and use less memory, or any number of resource balancing. Code generation produces code, generally machine code.

03

Why are there so many programming languages? Application domains.

Programmer training is the dominant cost for a programming language.

Cool

01

Classroom object orient language.

Writes, compiles and runs a cool program.

02

Factorial example

03

List flattening example.

Lexical Analysis

01

Lexer breaks the code into tokens; string (or lexeme) + class.

Painfully slow example of manual tokenization.

02

03

04

05

06