Formal Languages and Abstract Machines
Course Description
Yılmaz Kılıçaslan
20 September 2012
Prerequisites
To know at least one of the logic programming languages (Artificial Intelligence and Logic
Programming).
Objectives
The main objective of the course is to study Computation Theory as one of the major theories of Computer Science in terms of types and levels of formal languages and abstract machines.
Also, to have a look at compiler programs and to develop natural language processing applications within the theoretical framework to be set up are determined as secondary objectives of the course.
Syllabus
The course begins with a discussion of the development of machines throughout the history.
Afterwards, Gödel’s Incompleteness Theorem and Turing’s Uncomputability Theorem are examined as theories determining the limits of axiomatic logic. Then, languages and corresponding machines are classified according to the Chomsky hierarchy from simple to complex and studied in turn with applications. The formal language techniques learnt in the course are applied to the morphological, syntactic and semantic dimensions of natural languages with particular emphasis in Turkish. Furthermore, the tools for the lexical and syntactic analysis of programming languages are examined within the formal languages paradigms studied in the course.
The topics to be covered are as follows:
Historical development of machines
Gödel’s Incompleteness Theorem
Turing’s Uncomputability Theorem
Chomsky Hierarchy
Regular Languages
Context-Free Languages
Context-Sensitive Languages
Recurisively Enumerable Languages
Regular Expressions
Finite-State Automata
Non-Deterministic Finite-State Automata
Two-Way Finite-State Automata
Push-Down Automata
Turing Machines
Schedule
The contents of lectures are scheduled as shown in the following table:
WEEK
1
2
3
4
5
6
10
11
12
7
8
9
TOPIC
Historical Development of Machines, Limits of Logic and Computation
Scaling Formal Languages and Abstarct Machines from Simple to Complex
Finite-State Automata
Morphological Analysis of Turkish
Regular Languages
Regular Expressions
Midterm Exam
Push-Down Automata
Context-Free Grammars
Context-Sensitive Grammars
Turing Machines
Final Exam
Intellectual Development
The aim of the course is to make students grasp computer science in its interaction with mathematics and formal language theory. The most important gain which the course may offer is to enable our students close to graduation to approach their profession through the perspective of computer science.
Activities
The course consists of three hours lectures each week. The theoretical content of the course will be offered with practices to be carried out in tandem.
References
Hopcroft, J.E. and Ullman J.D. (1979). Introduction to Automata Theory, Languages, and
Computation (1st ed.). Addison-Wesley.
Gazdar, G. and Mellish C. (1989). Natural Language Processing in Prolog. Addison-
Wesley.
Yarımağan, Ü. (2011). Özdevinirler (Otomatlar) Kuramı ve Biçimsel Diller (İkinci
Basım). Akademi Yayıncılık.