Introduction to Formal Languages-E2
|科目ナンバリング||U-LAS30 20044 LE10||開講年度・開講期||2021 ・ 後期|
Formal language theory is a fundamental area of theoretical computer science that studies (among other things) different ways of representing possibly infinite collections of words having some shared structure.
It is closely related to computability, computational complexity, and mathematical logic, and has practical applications in linguistics, artificial intelligence, and the design of programming languages.
The purpose of this course is to provide an introduction to formal language theory to non-computer science students.
The main topics include finite-state automata, regular languages, pushdown automata, context-free languages, Turing machines, and decidability.
After completing this course, the student should be able to:
-Explain the relationships between different classes of formal languages, automata, and grammars.
-Design an automaton or a grammar that accepts or generates a specified formal language, and conversely,determine the formal language that is accepted or generated by a specified automaton or grammar.
-Prove or disprove mathematical properties of formal languages, grammars, and automata.
-Use the diagonalization method or reductions to establish that certain languages are undecidable.
-Understand how the concept of "information" can be defined using computability theory.
The course will consist of the following topics:
2.Finite-state automata, regular languages, nondeterminism (1)
3.Finite-state automata, regular languages, nondeterminism (2)
4.Finite-state automata, regular languages, nondeterminism (3)
5.Pushdown automata, context-free languages, grammars (1)
6.Pushdown automata, context-free languages, grammars (2)
7.Pushdown automata, context-free languages, grammars (3)
8.Turing machines (1)
9.Turing machines (2)
10.Decidability, reductions (1)
11.Decidability, reductions (2)
12.Decidability, reductions (3)
13.Advanced topics in computability theory: descriptive complexity
|成績評価の方法・観点||A written examination at the end of the course.|
An ability to think abstractly and to solve problems of a mathematical nature will be required for this course.
No programming skills are needed.
|授業外学習（予習・復習）等||Students will be expected to spend about 5 hours per week to prepare for and review the lessons.|
|教科書||Introduction to the Theory of Computation, Third Edition, M. Sipser, (Cengage Learning), ISBN:978-1133187790, 2012|