#### Offered

Clayton Second semester 2008 (Day)

Sunway Second semester 2008 (Day)

#### Synopsis

This unit looks at the question of exactly what a computer can compute, and gives an introduction to formal languages. Topics include computable functions, finite state automata, regular expressions, grammars, translators, and Turing computability.

#### Objectives

At the completion of this unit, students will have an understanding of:

- How to describe languages using Regular Expressions, Finite Automata, Nondeterministic Finite Automata, Mealy Machines, Moore Machines, Context Free Grammars, Pushdown Automata, and Turing Machines.;
- The relationship between Regular Languages, Context Free Languages, Recursive Languages, and Recursive-Enumerable (or Computable) Languages;
- How to use Turing Machines to represent computable functions;
- How a Universal Turing machine can simulate any Turing Machine on any input;
- Knowledge of compiler generation tools and the ability to use these to create simple compilation/translation programs.

At the completion of this unit, students will have attitudes that will allow them to:

- Appreciate the limitations of Regular Languages, Context Free Languages, Recursive Languages, and Computable Languages;
- Comprehend the limitations of computers in terms of the problems they can solve.

At the completion of this unit, students will be able to:

- Construct Finite Automata, Nondeterministic Automata, and Turing Machines to describe languages;
- Use Finite Automata to construct lexical analysers;
- Use lexical analyser generator to construct lexical analysers;
- Convert Regular Expressions into a Finite Automata;
- Convert Finite Automata into Regular Expressions;
- Use a compiler complier to construct parsers;
- Find a Regular Grammar for a Regular Language;
- Find a parse tree, leftmost derivation and rightmost derivation for a word in a Context Free Language;
- Know how to show a Context Free Grammar is ambiguous;
- Convert Mealy Machines and Moore Machines into sequential logic circuits.

#### Assessment

Compulsory assessed laboratory classes: 30%; Examination: 70%.

#### Contact hours

8 x contact hrs/fortnight

#### Prerequisites

FIT1008 or FIT1015 (CSE1303) and 12 points (or 6 points completed and 6 points enrolled) from MAT1830, MAT1841, MTH1020, MTH1030, MTH1112, MTH2010.

#### Prohibitions

CSE2303, CSC2030