1 / 3

Course Overview

Course Overview. What does the term “ compute” mean? What does the term “computer” mean? Is there anything that a computer cannot do? Such highly theoretical questions lead one to ask: Why does one need to study formal languages and automata theory?

mahogany
Télécharger la présentation

Course Overview

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Course Overview • What does the term “compute” mean? • What does the term “computer” mean? • Is there anything that a computer cannot do? • Such highly theoretical questions lead one to ask: • Why does one need to study formal languages and automata theory? • What are the practical benefits/application of formal languages and automata theory?

  2. General Topics • Abstract machine models of computation (e.g., DFA, NFA, LBA, TM). • Classes of grammars (e.g., regular grammars, context-free grammars, context sensitive grammars, unrestricted grammars). • Classes of formal languages (e.g., regular, context-free, context-sensitive, recursive, recursively enumerable). • By the way, formal languages are related to programming languages and natural languages. • Relative computational power of the abstract machine models (not just speed, but ultimate computability). • Relationships between the languages, grammars and machines.

  3. Practical Application • A variety of properties concerning the models, grammars, and languages will be proven. • The existence or non-existence of algorithms for processing languages and language processors will be proven. • These algorithms form the basis of tools for processing languages, e.g., parsers, compilers, assemblers, etc. • Other algorithms will form the basis of tools that automatically construct language processors, e.g., yacc, lex, etc. • Note that our perspective will be similar to, yet different from a compiler class. • Additionally, some things will be proven to be non-computable, e.g., the enhanced compiler.

More Related