Strings and languages

**Lecture #2: Review of Relevant Mathematics** |

**Strings and languages** | **Symbols as abstract "signs"** we take as primitive a notion of **symbol**: the usual intuitions about letters, numerals, ASCII or Unicode characters will do, but formally we need only to be able to *identify* and *distinguish* symbols |

**Lecture #2: Review of Relevant Mathematics** |

**Strings and languages** | Symbols as abstract "signs" |

| **Strings as sequences of symbols** a **string** is just a (finite) sequence of symbols, i.e., for symbols in a set S, just a member of S* |

**Lecture #2: Review of Relevant Mathematics** |

**Strings and languages** | Symbols as abstract "signs" |

| Strings as sequences of symbols |

| **Special notation for strings** since we will work with strings often, we abuse notation a bit and write strings without delimiting parentheses or intervening spaces or commas; we will try to use a special font when writing literal strings
**Ex:** the string `abc` and the string `xyzw` |

**Lecture #2: Review of Relevant Mathematics** |

**Strings and languages** | Symbols as abstract "signs" |

| Strings as sequences of symbols |

| Special notation for strings |

| **Operations on strings** the most important operations on strings we will need are those of length (defined as for other sequences) and **concatenation**, i.e., the joining of two (or more) strings, in order, to form a longer string
**Q:** what is the length of the concatenation of two strings? |

**Lecture #2: Review of Relevant Mathematics** |

**Strings and languages** | Symbols as abstract "signs" |

| Strings as sequences of symbols |

| Special notation for strings |

| Operations on strings |

| **Languages as subsets of strings** given a fixed set of symbols A (called the **alphabet**), a **language** is a just subset of A*
**Q:** how many langauges are there over a finite alphabet? over a countably infinite alphabet? |

**Lecture #2: Review of Relevant Mathematics** |

**Strings and languages** | Symbols as abstract "signs" |

| Strings as sequences of symbols |

| Special notation for strings |

| Operations on strings |

| Languages as subsets of strings |

| **Languages as properties of strings** another way to view a language is as defined by a property of strings; this allows us to use, e.g., ZF set notation to describe a language |

**Lecture #2: Review of Relevant Mathematics** |

**Strings and languages** | Symbols as abstract "signs" |

| Strings as sequences of symbols |

| Special notation for strings |

| Operations on strings |

| Languages as subsets of strings |

| Languages as properties of strings |

| **Object language vs. meta-language**
**Note!** it is easy to confuse "use" with "mention" whenever we *use* language to *speak about* language |