Processing math: 100%

0.Introduction§

What we are doing today:

Administration stuff

Course Mechanics: Canvas

Course Mechanics: OpenDSA

What you should already know

Process

The work in this course will come in three forms:

What this course is about

Outcomes (1)

By the end of this class, you will be able to answer questions like the following.

Outcomes (2)

Outcomes (3)

Outcomes (4)

Language Hierarchy

By the end you will know how everything in this picture applies to how compilers work, and to how hard a typical language-related problem is to solve.

Note the interplay between classes of languages, classes of grammars, and classes of machines.

Created with Raphaël 2.1.2
Grammars, etc.
Machines
Unrestricted
grammar
All Languages
Turing
machine
Recursively Enumerable Language
Context
free
grammar
Pushdown
automata
Context-free Language
Regular
Language
Regular
grammar
(RegEx)
Finite
automata

Models of Computation, Languages, Machines

Power of Machines

MachineCan doCant doFinite Automatarecognize integersrecognize arithmetic expr(no memory)PushDown Automatarecognize arithmetic exprcompute expression(stack)Turing Machinecompute expressiondecide if halts(unlimited)

Application: Compilers

There are essentially two parts to compilers:

The main difference between this course and a compilers course is that we focus only on the first part.

To do by next class