09.08 Формальное определение алгоритма: машина Тьюринга

Алгоритм
полнота, выполнимость, однозначность, конечность.
Программа
формальная конечная запись алгоритма для формализованного исполнителя

Требует также формализации данных (⇒ моделирования aka «договоримся, что числа вот в этих ячейках памяти — это количество ящиков).

:)) Чем отличается программа от промпта?

Алгоритмически полный формализм:: дисциплина записи любых программ, включает в себя:

ИРЛ начинается самое интересное — прагматика (когда исполнять надо на конкретной ЭВМ). В Си мы довольно часто будем встречаться именно с прагматикой.

Вот здесь побольше про синтаксис, семантику и прагматику.

Ниоткуда взявшиеся, но пока что никем не опровергнутые свойства алгоритмической полноты:

:)) Может ли кто привести пример ЯП, в котором нет операторов цикла? А что там вместо них?

Машина Тьюринга

:)) Повторение: как устроен исполнитель МТ

:)) Повторение: как устроена программа для МТ

:)) Представление данных: понятия «символ», «алфавит» и «слово»; пустой символ

:)) Программа

Практикум

Эмулятор

Особенности эмулятора:

Сюда кидать решения

TODO Задача посложнее на конец семинара в режиме «кто успеет» из https://cmcmsu.info/1course/mt.markov.tasks.htm (а надо ли?)

Д/З

  1. A = {a, b, c}. Удвоить каждую букву P.
  2. A = {a, b, c}. Заменить последнее вхождение буквы a в P на bb. Если a∉P, то оставить P без изменений.
  3. A = {a, b, c, |}. Приписать к концу P столько палочек, сколько раз буква b входит в P. Пример: abcbb → abcbb|||.

LecturesCMC/AL/Prac/02_TuringMachine (последним исправлял пользователь FrBrGeorge 2026-09-09 20:11:21)