Органы управления программным эмулятором машины Тьюринга от Никитина А. Е.




Программный эмулятор машины Тьюринга от Никитина А. Е. представляет собой приложение, написанное на Delphi, с оконным дизайном, управляемым кнопками.

В линейке основного меню основным пунктом является меню File. Оно имеет следующие команды:

Load – позволяет загрузить программу из файла с расширением.tmp, содержимое ленты из файла с расширением.tmt в программу эмулятора.

Save – позволяет сохранить текущую активную программу (последовательность пятерок команд машины Тьюринга) или содержимое ленты.

Options – открывает окно диалога, в котором можно задать список заключителных состояний; состояния из этого списка отделяются “;” стартовое состояние – двухсимвольная комбинация, начинающаяся с заглавной латинской буквы, за которой идет латинская буква или цифра.

Меню Interpretator имеет всего две команды:

Enable – активировать режим интерпретации для выполнения текущей программы (в этом режиме нельзя редактировать команды программы или изменять содержимое ленты);

Disable – перевод эмулятора в пассивный режим, в котором возможно изменение команд программы или содержимого ленты.

В рабочей области эмулятора слева направо расположены следующие панели:

Program – панель имеет следующие элементы:

1. Слева – нередактируемый список команд машины Тьюринга – текущая программа;

2. Вверху справа – поле ввода/редактирования одной команды – пятерки из следующих элементов:

Qтек (Sтек, Sнов) Qнов | D,

где Qтек - имя текущего состояния (двухсимвольная комбинация, начинающаяся с заглавной латинской буквы, за которой идет латинская буква или цифра), Qнов - имя состояния, в которое машина Тьюринга перейдет в следующий такт работы,

Sтек – текущий символ, считываемый с ленты, произвольный одиночный символ,

Sнов - символ, который головка машины Тьюринга записывает вместо текущего символа, т.е. это новый символ вместо текущего, произвольный одиночный символ,

D – движение головки по ленте: L- сдвиг влево, R - сдвиг вправо (т.е. единственными символами после | могут быть только L или R);

3. Ниже поля ввода находится кнопка Add, тогда, если в поле ввода записана корректная команда, тогда она добавляется в список команд (программа эмулятора автоматически упорядочивает команды списка). Если команда в поле редактирования записана неправильно, то ее можно стереть клавишей ESC. Список команд считается неправильным, если есть несколько команд, с одинаковыми парами Qтек Sтек. Программа считается неполной, если не для всех комбинаций Qтек Sтек определены команды;

4. Если какая-то команда в списке команд оказалась некорректной, то ее следует выделить и по кнопке Edit команда переносится в поле редактирования. После изменения текста команды ее можно снова добавиь в список кнопкой Add;

5. Можно стереть команду из списка кнопкой Delete, после ее выделения в списке;

6. Кнопка Reset стирает список всех команд в поле текста программы, а также все содержимое ленты.

Interpretator – панель управления интерпретатором имеет следующие кнопки:

1. Enable Interpretator – включить режим интерпретации команд, заданных в списке команд;

2. Run – запустить программу на выполнение;

3. Step − запустить программу на выполнение в пошаговом режиме;

4. Stop – остановить выполнение программы;

Панель имеет два нередактируемых поля:

State – показывает текущее состояние;

Symbol – показывает текущий считываемый символ.

В нижней части рабочей области эмулятора располагается панель лент. Верхняя лента отслеживает позицию головки машины Тьюринга. Однако головка не может сдвинуться влево или вправо за пределы окна ленты. В начале работы головка всегда занимает крайнее левое положение, читая символ @. Таким образом лента в этом эмуляторе не может расти за пределы отведенного ей размера. Средняя лента показывает измененное в результате выполнения команд содержимое и,в частности, результат выполнения.

Нижняя лента показывает исходное (начальное) слово. Следует отметить, что в эмуляторе предполагается в качестве самого левого символа на ленте (который читается головкой) символ @. Этот символ допускается и в других клетках ленты или в последующие такты работы. Кроме того, в команде Options меню File можно указать список состояний, при которых машина Тьюринга останавливается (стоповые состояния, если их несколько, отделяются друг от друга символом “;”). Эмулятор также останавливается (с выдачей окна диалога диагностики), если для текущей конфигурации (Состояние, Символ) в программе нет команды, указующей действия для такой пары.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: