G52MAL Lecture Note Index (UNMC)

Spring 2011

This page will contain links to lecture notes for the lectures. Additionally, all electronic material used during the lectures, in particular slides and any major pieces of code will be available via this page. The slides are all in PDF, and there are three versions available for each lecture. The basic version is intended for on-screen viewing only, whereas the 4 up and 9 up versions are mainly intended for printing, putting 4 and 9 slides respectively on each page.

Lecture 1: Administrative Details and Introduction

16 February 2011


Lecture 3: Nondeterministic Finite Automata (NFA)

22 February 2011


Lecture 7: Equivalence of Regular Expression and Finite Automata

1 March 2011


Lecture 17: Recursive-Descent Parsing: Introduction

16 March 2011


Lecture 18: Recursive-Descent Parsing: Elimination of Left Recursion

16 March 2011


Lecture 19: Recursive-Descent Parsing: Predictive Parsing

22 March 2011


Lecture 20: Turing Machines and Decidability

22 March 2011

The Turing Machine simulator used in the lecture is availble here. It's a Java applet so a Java runtime environment needs to be installed to use it. The source code for the applet is also available via the website, so it is posisble to run the simulator locally.

The following Turing Machine program for recognising words a^nb^nc^n where n >= 1 was developed by Thorsten Altenkirch It is simpler than the one in the lecture notes. The notation is slightly different from that used in the lecture: the first two fields gives the current state and the current tape symbol, the next three gives the new state, the tape symbol to replace the current type symbol by, and whether to move the read/write head left (<) or right (>). An underscore (_) is used as the blank symbol. As this particular simulator does not have any designated accepting states, we take the machine stopping in a configuration with a "Y" as the only non-blank symbol on the tape to mean success, and the machine stopping in any other configuration to mean reject.

1,a,2,#,>
2,a,2,a,>
2,#,2,#,>
2,b,3,#,>
3,b,3,b,>
3,#,3,#,>
3,c,4,#,<
4,#,4,#,<
4,b,4,b,<
4,a,5,a,<
4,_,6,_,>
5,a,5,a,<
5,#,1,#,>
6,#,6,_,>
6,_,7,_,>
7,_,8,Y,>
Be aware that there might be a slight problem with the end of line character when pasting the code into the applet.


Last updated 23 March 2011.