Formal Language
Table of Contents
General Infromation
Course Number: 332321/336152
Instructor: Jyun-Ao Lin
Location: 科研大樓 334(e)
Time: 09:10 – 12:00, Thursday
Office hour: 15:10 – 17:10, tue and 13:00 – 15:00, fri
Overviews
This course explores the mathematical foundations of computation. How do we quantify computational power? Are there limits on the kinds of problems that computers can solve? To answer such questions, we examine the curious connection between computation and mathematical linguistics.
Recommended Prerequisites
Some basic discrete mathematics, algorithms and theory of computation.
Communication
When you need help from the course staff, please use office hours or hang around after lecture. For issues requiring privacy, please feel free to email the course instructor.
Learning Objectives
- Describe how computation can be modeled mathematically.
- Describe how computational problems can be described as formal languages.
- Classify formal languages according to their complexity.
- Describe and transform formal languages across their different representations.
- Describe the limits of various computational models.
Topics and Class Schedule
Topics
Finite State Automata and Regular Languages
Deterministic finite automata: Transition Diagrams, Language of an automation, Nondeterministic finite automata, Subset construction, ε-transitions, Application: text-searching.
Regular expressions: Regular expression in practice, Equivalence of regular expression and finite automata, The algebra of regular expression, Testing algebraic identities.
Properties of regular language: The pumping lemma, Boolean operations, Testing emptiness of regular languages, Testing membership in an regular languages, Testing Distinguishability of states, Minimizing DFA
Pushdown Automata and Context-Free Languages
Context-free grammars: Derivations and languages, Leftmost and rightmost derivations, Sentential forms, Parse trees, Equivalence of parse trees and derivations, Ambiguous grammars, Eliminating ambiguity, Parsers, Document type definitions.
Push-down automata: Pushdown automata, Moves of a PDA, Acceptance by DPA, Instantaneous Descriptions, PDA and grammars, Deterministic PDA, Acceptance by deterministic PDA, The languages accepted by DPDA's.
Properties of CFL: Elimininating useless symbols, Eliminating ε- and unit-productions, Chomsky normal form, The pumping lemma, Operations that preserve CFL, Testing emptiness of a CFL, Testing membership in a CFL.
Turing Machine
Turing machine and decidable languages: The Turing machine, Acceptance by a Turing machine, Recursively enumerable languages, Instantaneous descriptions of a TM, Storage in the finite control, Multiple tracks, Multitape TM, Nondeterministic TM, Semi-infinite tape TM, Multistack machine, Counter machine, Simulating a TM by a real computer, Simulating a computer by a TM.
Undecidability: Recursive and recursively enumerable languages, Complements of recursive and RE languages, Decidability and undecidability, The language \(L_d\), The universal language, Rice's theorem, Post's correspondence problem, Undecidable CFL problems.
Complexity Classes
Intractable problems: The class P and NP, The P=NP questions, Polynomial-Time reductions, NP-complete problem, NP-Complete satisfiability problems, Other NP-Complete problem.
Model Checking
Transition systems: Kripke system Temporal logics: LTL, CTL, CTL* Model checking problems: Automata-theoretic approach to LTL model checking.
Class Schedule
The current schedule is tentative and subject to change.
Date | # | Lecture | Support | related materials |
---|---|---|---|---|
09/12 | 1 | Introduction | handout | [Si] chap. 0 |
09/19 | 2 | Finite State Machine | handout | [Hop] chap. 2, [Alg] chap. 3 |
09/26 | 3 | Regular Expression | handout | [Hop] chap. 3 |
10/03 | 4 | Holiday | handout | [Hop] chap. 4, [Alg] chap. 2, 3 |
10/10 | 5 | Holiday | ||
10/17 | 6 | Decisional Properties of Regular Languages | see week 4 | see week 4 |
10/24 | 7 | Intro. to Model Checking | handout | [Model] chap. 2,4,5, [Alg] chap. 10, 11, 12 |
10/31 | 8 | Holiday | ||
11/07 | 9 | Kripke model, LTL, CTL | handout | [Model] chap. 2,4,5, [Alg] chap. 10, 11, 12 |
11/14 | 10 | mid-term (三教 407) | ||
11/21 | 11 | |||
11/28 | 12 | |||
12/05 | 13 | |||
12/12 | 14 | |||
12/19 | 15 | |||
12/26 | 16 | |||
01/02 | 17 | Project Presentation | ||
01/09 | 18 | Project Presentation |
Useful References
- [Si] M. Sipser, Introduction to the Theory of Computation
- [Hop] John Hopcroft and Jeffrey Ullman, Introduction to Automata Theory, Languages, and Computation.
- [Alg] J. Esparza and M. Blondin, Automata Theory: An Algorithmic Approach.
- [Model] C. Baier and J.-P. Katoen, Principle of Model Checking, MIT Press.
Evalution
Asseignments (50 %)
Written Homework:
The goal of the written homework is to help you refine the fundamental skills, and better understand the theoretical underpinnings, that you will need in order to do well on the exams. Grading for these assignments is based on the correctness of your answer, and the presentation of your reasoning. You should strive for clarity and conciseness, while making sure to show each step of your reasoning. Categorical answers with no explanation will not even receive partial credit, but lucid explanations of your attempt to find the answer will.
Written homework will be handed in in PDF format via Teams, and should preferably be typeset in LaTeX.
Academic Integrity
Students are expected to complete each assignment on their own, and should be able to explain all of the work that they hand in. Copying code or proof material from other students, from online sources, or from prior instances of this course is not allowed. However, you are encouraged to discuss assignments with each other at a sufficiently high level to avoid the risk of duplicating implementation or proof. Examples of this would be discussing algorithms and properties referred to in the assignment, helping other students with questions, discussing a general proof technique, or referring to an online source with useful information. Similarly, you may consult online sources, tutorials, and generative AI programs. If you find specifically helpful material it is critical that you (a) do not copy the code or proof, but study it as a guide and then do your own work, and (b) cite the source with a suitable URL in your solution. If you have questions about whether something might be permissible, contact the course staff before you proceed.
Late Assignments
You will have a total of 5 late days to use throughout the semester, but you may use at most 2 for any given assignment. Due to grade submission deadlines, you are not allowed to use late days on some specific assignment, which will be announced when the are released.