"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.
Алфавит задаёт символы, из которых можно составлять последовательности, а правила языка определяют, какие из них допустимы и что они означают. Слово — одна такая последовательность, и порядок символов в нём важен: например, 01 и 10 — разные слова. Эти понятия нужны, чтобы описывать сообщения, коды и команды программ. Если в алфавите k символов и их можно повторять, то слов длины n получится kⁿ.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Алфавит — конечное множество символов, используемых для записи сообщений. Символами могут быть буквы, цифры, знаки препинания или специальные обозначения. Например, {0, 1} — алфавит из двух символов. Он задаёт, какие элементы разрешено использовать при составлении последовательностей.
Слово — конечная последовательность символов алфавита. Словом может быть, например, 101 или аба, если соответствующие знаки входят в алфавит. Порядок символов важен: 01 и 10 — разные слова. Это понятие позволяет описывать отдельные сообщения и коды как упорядоченные записи.
Длина слова — количество символов в последовательности. Чтобы её определить, считают каждый символ один раз, в том числе повторяющийся; длину слова w обозначают |w|. Например, |10110| = 5. Длина помогает сравнивать слова и задавать ограничения на их составление.
Язык — множество слов, построенных по правилам данного алфавита. Естественные языки, например русский, служат для общения людей, а формальные языки имеют точно заданные правила построения. Поэтому одинаковый алфавит может использоваться для разных языков: правила определяют, какие последовательности допустимы и как их понимать.
Сначала выбирают символы алфавита, а затем соединяют их в последовательности. Если алфавит состоит из 0 и 1, можно получить слова 0, 1, 00, 01 и другие. Перестановка символов обычно меняет слово, потому что слово — не просто набор знаков, а упорядоченная запись. Так, 01 и 10 различаются и по порядку, и как последовательности.
Одного алфавита для определения языка недостаточно: он сообщает, какие символы доступны, но не устанавливает, какие записи разрешены. Правила могут ограничивать длину слова, порядок знаков или их количество. Например, в языке слов, содержащих ровно одну единицу, последовательность 101 подходит, а 111 — нет. Благодаря правилам язык выделяет нужные слова из всех возможных последовательностей.
В естественном языке слова и конструкции связаны с общением людей: смысл зависит от словаря, грамматики и ситуации. Например, слово «лук» может обозначать растение или оружие, и контекст помогает выбрать значение. В формальном языке правила задают точнее, чтобы записи можно было однозначно проверять. Так, запись выражения или команды должна соответствовать установленному синтаксису, то есть правилам построения.
Количество слов фиксированной длины зависит от числа символов в алфавите и числа позиций в слове. Если алфавит содержит k символов, то для каждой из n позиций есть k вариантов; при разрешённых повторениях общее число равно kⁿ. Например, из {а, б, в} для четырёх позиций получаем 3 · 3 · 3 · 3 = 3⁴ = 81 слово. Повторения не уменьшают выбор: на каждой позиции снова доступны все три символа.
Последовательность символов сама по себе не всегда сообщает, что именно она означает. Запись 101 может быть словом двоичного языка, кодом или частью другой записи; её смысл задают правила и ситуация использования. Поэтому совпадение символов ещё не означает совпадения значения. При чтении нужно учитывать, к какому языку относится запись и в каком контексте она дана.
| Признак | Естественный язык | Формальный язык |
|---|---|---|
| Алфавит | Буквы, знаки препинания и другие принятые знаки | Символы, заранее выбранные для конкретной системы |
| Правила построения допустимых слов и выражений | Сложились в ходе развития языка; допускают варианты и исключения | Заданы точно, чтобы записи можно было проверять |
| Как определяется значение | Словарём, грамматикой и контекстом общения | Правилами интерпретации системы |
| Пример | Русский язык | Язык программирования |
Сравнивайте строки таблицы по одному признаку: например, отдельно выясните, как устроены правила или определяется значение. Границы между примерами могут зависеть от задачи, но главное различие — в степени точности правил. Формальный язык позволяет однозначно проверить, допустима ли запись.
Задача 1. Дан алфавит {0, 1}. Определите длину слова 10110 и запишите ещё два слова длины 3. Сначала проверим, что запись использует только символы алфавита. Затем посчитаем знаки и составим новые слова из тех же двух символов.
Ответ: длина 10110 равна 5; примеры слов длины 3 — 000 и 101. Можно было выбрать и другие последовательности, например 011. Главное — использовать только символы заданного алфавита и не менять требуемую длину.
Задача 2. Сколько различных слов длины 4 можно составить из алфавита {а, б, в}, если символы могут повторяться? Под словом здесь понимается любая последовательность из разрешённых знаков. Разберём выбор отдельно для каждой позиции, поскольку повторения разрешены.
Ответ: 81 слово. Например, аааа и вбав входят в этот набор, поскольку в каждой позиции стоит один из трёх символов. Если бы повторения были запрещены, расчёт пришлось бы изменить.
Задача 3. Для алфавита {0, 1} перечислите все слова длины не более 2 и укажите, какие принадлежат языку слов, содержащих ровно одну единицу. Условие «не более 2» включает длины 0, 1 и 2; последовательность длины 0 называют пустым словом и обозначают ε. Сначала перечислим все варианты, затем проверим количество единиц.
Ответ: все слова — ε, 0, 1, 00, 01, 10, 11; языку принадлежат 1, 01 и 10. Пустое слово не содержит ни одной единицы, поэтому оно не подходит. Проверка по условию языка нужна после того, как составлен полный список последовательностей.
Алфавит иногда принимают за последовательность символов, потому что его записывают перечислением. Но алфавит — множество, поэтому порядок элементов в записи множества несущественен; в слове порядок, наоборот, важен. Проверка: поменяйте местами элементы в записи алфавита — само множество не изменится. А перестановка знаков в слове обычно даст другое слово.
Слово и язык путают, поскольку оба состоят из символов алфавита. Однако слово — одна последовательность, а язык — множество последовательностей, которые удовлетворяют правилам. Чтобы проверить себя, спросите: речь идёт об одной записи или о совокупности допустимых записей? Например, 101 — слово, а множество слов с ровно одной единицей — язык.
Можно ошибочно считать, что любая последовательность из символов алфавита принадлежит языку. Это неверно: язык ограничивает последовательности своими правилами, хотя все их символы могут быть разрешены алфавитом. Ошибка возникает, когда проверяют только отдельные знаки, а не запись целиком. Сверьте последовательность с условием языка: например, в языке слов с ровно одной единицей запись 111 не подходит.
При подсчёте слов длины n иногда забывают, что символы можно повторять, или умножают k на n. Для каждой позиции есть k вариантов, поэтому число вариантов перемножают n раз и получают kⁿ, а не k · n. Проверка на простом случае помогает заметить ошибку: при двух символах и длине 2 получаются 2 · 2 = 4 слова. Формула kⁿ действует при условии, что повторения разрешены.
Для работы с темой нужно понимать, что такое множество, его элемент и конечная последовательность: алфавит является множеством, а слово — последовательностью его элементов. Эти понятия понадобятся при изучении кодирования информации и систем счисления, где сообщения записывают символами выбранного алфавита. В программировании правила языка определяют синтаксис — допустимое построение команд и выражений. Проверка синтаксиса помогает находить неправильные записи ещё до выполнения программы.
Чем алфавит отличается от языка?
Алфавит — это множество символов, из которых строят последовательности. Язык — множество слов, составленных из этих символов и удовлетворяющих правилам.
Может ли последовательность символов алфавита не быть словом данного языка?
Да. Например, последовательность может нарушать правила построения слов языка или не подходить под условие, которое этот язык задаёт. Поэтому принадлежность алфавиту ещё не означает принадлежность языку.
Как определить длину слова?
Нужно посчитать все символы в последовательности, включая повторяющиеся. Например, длина слова 10110 равна 5.
Почему слова одинаковой длины могут быть разными?
У них может различаться хотя бы один символ или порядок символов. Например, 01 и 10 имеют длину 2, но это разные слова.
Как посчитать количество слов заданной длины?
Если в алфавите k символов, длина слова равна n и повторения разрешены, то число слов равно kⁿ. Для каждой позиции есть k вариантов, поэтому количество вариантов перемножается.
§ 5. Язык и алфавит