First Lecture -- What is this course about?

Monday September 25

Terminology

See Kozen for formal definitions:

Questions

The decision problem for a language L is an algorithm to decide whether a given string x is in L.

There are two fundamental questions about languages:

Another way of posing these questions is to ask how to generate L, and how to accept strings in L.

Usually, generation is done by a grammar, a formal specification of a process that generates strings in L (and only strings in L.)
Acceptance is by means of an algorithm. In this course the algorithm will usually be a mathematical object, an automaton, a restricted computer.

History

Formal languages has several ancestors: We discussed briefly the Chomskian influence.

Uses

  1. Clean formalized part of CS
  2. Formal Specifications
  3. Programming language, interface specification
  4. Compilable specifications (lex, perl, yacc, etc.)

Definitions

Techniques

Induction, ingenuity, combinatorics.

An example of the kind of proofs we will do. (In class I called them boring.)
Please read the proof and send email to me if you find it difficult. It does not mean you are in trouble, but it lets me know the skill level of the class. -----------------------------------------------------------------