Математика забезпечує лінгвістику і семіотику ефективними засобами визначення й оброблення мов.
2. Алфавіти і мови. Спробуємо дати формальне означення мови. Природно, за означенням, розпочати зі знака. Як уже підкреслювалося, мова - знакова система. Сукупність мовних знаків, що називаються далі символами, є алфавітом.
Алфавіт може бути нескінченним, але ми далі в цьому розділі будемо розглядати тільки скінченні алфавіти.
Приклади:
- латинський алфавіт;
- російський алфавіт;
- український алфавіт;
- двійковий алфавіт {0,1}.
Послідовно виписуючи символи, розташовуючи їх один за одним на папері, ми одержуємо послідовності символів. Приклади послідовностей символів в двійковому алфавіті:
1111111.
Існує низка термінів для цих послідовностей - слово, вираз, рядок, ланцюжок, речення. Ми будемо використовувати термін "слово". Слово, що не містить жодного символу, назвемо порожнім і будемо позначати e. Далі будемо розглядати алфавіт Е і його символи е1, е2,е3.… Наприклад, словами будуть:
е1е2е1
е2е2е2е3
Якщо ми позначимо порожнє слово через ε, то й інші слова, записані як послідовності символів алфавіту Е, можемо позначати символами іншого алфавіту. Далі за такий алфавіт приймемо грецький алфавіт.
Наприклад, слово е1е2е1 ми могли б позначити γ, слово е2е2е2е3 - δ і так далі.
Означення слова в алфавіті Е:
1) ε - слово в алфавіті Е;
2) якщо α - слово в алфавіті Е, ei - символ алфавіту Е, те αei - слово в алфавіті E;
3) β - слово в алфавіті Е тоді і тільки тоді, коли воно побудовано за правилами 1) і 2).
Означення відноситься до типу індуктивних означень і дозволяє будувати слова в алфавіті Е.
Нехай ε - слово. Воно не містить символів, е1 - символ алфавіту Е. Тоді е1 - також слово. Отже, e2 - слово, е3 - слово і т д.; е1е2 - слово, тому що отримано приписуванням символу e1 до слова e2; e1e2e2 - слово, тому що отримано приписуванням символу e2 до слова е1e2 і т.д. Таким чином, слова одержуються приписуванням символу до вже існуючих (побудованих) слів.
Довжиною слова назвемо число символів у ньому. Будемо позначати довжину слова α через |α|. Наприклад, слово e1e2e1 має довжину 3. За означенням |ε| = 0.
Якщо слова α і β мають однакову довжину, причому на кожнім кроці їхньої побудови, починаючи зі слова ε, виконувалося приписування однакового символу, то назвемо їх рівними.
Очевидно, що рівність слів - відношення рефлексивне, симетричне, транзитивне, тобто відношення еквівалентності.
Операцію приписування можна узагальнити.
Визначення. Нехай α і β - слова в алфавіті Е. Назвемо слово αβ, отримане посимвольним приписуванням слова β до слова α, конкатенацією слів α і β.
Приклад. Нехай e1e2e2 – слово α; e2e2 – слово β. Тоді e1e2e2e2e2 – слово αβ.
Легко установити, що εα = αε = α, а також те, що αβ = βα у загальному випадку невірно, що підтверджується попереднім прикладом:
e1e2e2e2e2 ≠ e2e2e1e2e2.
Визначення. Нехай α - слово еi1ei2…ein, довжини n. Тоді слово еin,еin-1…еi1 назвемо обертанням слова α і позначимо α -1.
Приклад. Нехай e 1e2e2 - це слово α, тоді e2e2e1 - це слово α-1.
Легко установити, що α ≠ α-1 у загальному випадку.
Розглянемо декілька термінів, що будуть використовуватися пізніше.
Нехай α, β, γ - слова в алфавіті Е. Тоді в слові αβ назвемо: α - префіксом, а β – суфіксом, а в слові αβγ, причому α чи γ можуть бути порожніми, β назвемо підсловом.
Наприклад, у слові e1e2e2:
e1, e1e2, e1e2e2 - префікси;
e2, e2e2, e1e2e2 - суфікси;
e2, e1e2 - підслова.
Слово ε є префіксом, суфіксом, і підсловом будь-якого слова.
Назвемо префікс (суфікс) α власним префіксом (суфіксом) слова β, якщо α ≠ β і α - префікс (суфікс) β.
Наприклад, для слова e1e2e3 слово е1 - власний префікс.
Визначення. Назвемо мовою в алфавіті Е будь-яку множину слів в алфавіті Е.
Мови програмування Паскаль, Сі, Бейсік і інші задовольняють цьому означенню, якщо вважати словом програму. Природна мова також задовольняє означенню, якщо вважати словом речення.
Приклад: Нехай Е= {0,1}. Тоді наступні множини слів:
L1 = {ε,0,1,01,10};
L2 = {0,00,000,...};
L3 = {1,11,111,...};
L4 = {0,1}
за означенням є мовами. Крім того, за означенням L = {ε} - також мова. Більш того, Æ - також мова, причому {ε} і Æ - різні мови. Нехай Е* - множина, що містить усі слова в алфавіті Е, включаючи символи самого алфавіту Е. Тоді будь-яка мова в алфавіті Е є підмножиною Е*.
Приклад. Нехай заданий алфавіт Е = {0,1}. Тоді
Е* ={ε,0,1,00,1,01,10,000,001,010,100,011,101,110,111,...}.