Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Fundamentals - Automata and Complexity Theory - Lecture Slides, Slides of Theory of Automata

Some concept of Automata and Complexity Theory are Administrivia, Closure Properties, Context-Free Grammars, Decision Properties, Deterministic Finite Automata, Intractable Problems, More Undecidable Problems. Main points of this lecture are: Fundamentals, Sounds, Burned Away, Theorems and Proofs, Sounds Abstract, Enduring Ideas, Connected, Rigorous, Useful, Accessible

Typology: Slides

2012/2013

Uploaded on 04/29/2013

juni
juni 🇮🇳

4

(17)

122 documents

1 / 20

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Introduction
and
Chapter One: Fundamentals
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14

Partial preview of the text

Download Fundamentals - Automata and Complexity Theory - Lecture Slides and more Slides Theory of Automata in PDF only on Docsity!

Introduction

and

Chapter One: Fundamentals

No one who loves language can take much pleasure in the prospect of studying a subject called formal language. It sounds suspiciously abstract and reductionistic. It sounds as if all the transcendent beauty of language will be burned away, fired under a dry heat of definitions and theorems and proofs, until nothing is left but an ash of syntax. It sounds abstract—and it is, undeniably. Yet from this abstraction arise some of the most beautiful and enduring ideas in all of computer science.

Algebraists use the words group, ring, and field in technical ways, while entomologists have precise definitions for common words like bug and fly. Although it can be slightly confusing to overload ordinary words like this, it's usually better than the alternative, which is to invent new words. So most specialized fields of study make the same choice, adding crisp, rigorous definitions for words whose common meaning is fuzzy and intuitive.

The study of formal language is no exception. We use crisp, rigorous definitions for basic terms such as alphabet, string, and language.

Outline

  • 1.1 Alphabets
  • 1.2 Strings
  • 1.3 Languages

Alphabets Uninterpreted

  • Informally, we often describe languages interpretively - “the set of even binary numbers”
  • But our goal is to describe them rigorously, and that means avoiding interpretations - “the set of strings of 0s and 1s that end in 0”
  • We don’t define what a symbol is, and we don’t ascribe meaning to symbols

Outline

  • 1.1 Alphabets
  • 1.2 Strings
  • 1.3 Languages

Empty String

  • The empty string is written as ε
  • Like "" in some programming languages
  • |ε| = 0
  • Don't confuse empty set and empty string:
    • {} ≠ ε
    • {} ≠ {ε}

Symbols And Variables

  • Sometimes we will use variables that stand for strings: x = abbb
  • In programming languages, syntax helps distinguish symbols from variables - String x = "abbb";
  • In formal language, we rely on context and naming conventions to tell them apart
  • We'll use the first letters, like a , b , and c , as symbols
  • The last few, like x , y, and z , will be string variables

Numbers

  • We use N to denote the set of natural numbers: N = {0, 1, …}

Exponents

  • We use N to denote the set of natural numbers: N = {0, 1, …}
  • Exponent n concatenates a string with itself n times
    • If x = ab , then
      • x^0 = ε
      • x^1 = x = ab
      • x^2 = xx = abab , etc.
    • We use parentheses for grouping exponentiations (assuming that Σ does not contain the parentheses) - ( ab )^7 = ababababababab

Languages

  • A language is a set of strings over some fixed alphabet
  • Not restricted to finite sets: in fact, finite sets are not usually interesting languages
  • All our alphabets are finite, and all our strings are finite, but most of the languages we're interested in are infinite

Kleene Star

  • The Kleene closure of an alphabet Σ, written as Σ, is the language of all strings over Σ - { a } is the set of all strings of zero or more a s: {ε, a , aa , aaa , …} - { a , b }* is the set of all strings of zero or more symbols, each of which is either a or b = {ε, a , b , aa , bb , ab , ba , aaa , …} - x ∈ Σ* means x is a string over Σ
  • Unless Σ = {}, Σ* is infinite

Free Variables in Set Formers

  • Unless otherwise constrained, exponents in a set former are assumed to range over all N
  • Examples

{( ab ) n } = {ε, ab, abab, ababab, abababab, ... } { a nbn } = {ε, ab, aabb, aaabbb, aaaabbbb, ... }

The Quest

  • Set formers are relatively informal
  • They can be vague, ambiguous, or self- contradictory
  • A big part of our quest in the study of formal language is to develop better tools for defining languages