Skip to content

BudAlNik/turing-machine-visualizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Консольный визуализатор машины Тьюринга

Работает на Python 3.

Для работы необходима библиотека colorama. Установить -- pip3 install colorama. А также, библиотека curses. В Unix системах должна быть установлена по-умолчанию. Чтобы установить в Windows -- pip3 install windows-curses.

visualizer.py machine input [delay] [-p]

  • machine -- файл с описанием машины Тьюринга.
  • input -- файл с вводом.
  • delay -- опционально, задержка между тиками в секундах, по-умолчанию -- одна секунда.
  • -p -- опционально, если ключ указан, исполнение изначально будет поставлено на паузу.

Пример запуска:

  • python3 visualizer.py example /dev/null (/dev/null может быть заменен на путь до любого пустого файла)
  • python3 visualizer.py example_wide_symbols /dev/null
  • python3 visualizer.py example_multi_rows /dev/null
  • python3 visualizer.py zero.out 01 0.5
  • python3 visualizer.py sorting.out 01 -p

Во время работы, символами ^ показывает, где находятся головки на лентах, пишет позиции головок, и пишет текущую вершину в автомате.

Для прерывания исполнения, нужно нажать q. Для паузы/продолжения, нужно нажать пробел. Поддерживает исполнение по шагам. Для этого, нужно поставить на паузу, а затем нажимать стрелку вправо для перехода к следующему шагу. Также, если исполнение не поставлено на паузу, и нажата стрелка вправо, между шагами не будет паузы.

Поддерживает форматы машины Тьюринга из лабы.


gen.py -- вспомогательный скрипт, который по файлу с описанием машины Тьюринга генерирует код на Python 3, который ее выводит. gen.py machine [name]

machine -- файл с описанием машины Тьюринга. name -- опционально, название задачи, если он не указан, за название задачи будет принято название файла с описанием.

Генерирует в той же папке, где находится файл с описанием, программу на Python 3, которая назвается $name.py, которая при запуске выводит в файл $name.out то, что находилось в файле $machine.

Пример запуска: python3 gen.py example helloworld python3 gen.py zero/zero

About

Turing machine visualizer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages