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.

Mid-terms (20 %)

Final Project (30 %)

Credits

Created: 2024-11-03 Sun 13:31

Validate