Skip to content

Single- and multi-tape Turing machine emulator. A course project on the Theory of Algorithms and Formal Languages (Oct 2022, 3d semester of university).

License

Notifications You must be signed in to change notification settings

Scorpi-ON/Taifia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Taifia

License: MIT Python versions Poetry Ruff

Курсовой проект по теории алгоритмов и формальных языков, продуктом которого является эмулятор одно- и многоленточной машины Тьюринга

Скриншоты



Основные требования

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

Особенности реализации

  • собственный формат алгоритма МТ и его парсер
  • множество предустановленных алгоритмов в папке src/algorithm (частично с комментариями)
  • возможность включить режим разработки, при котором алгоритмы перезагружаются при каждом запуске (позволяет удобно отлаживать алгоритм при его создании)
  • продвинутые инструменты для управления пакетами и анализа качества кода
  • покрытие юнит-тестами

Стек

  • Python ^3.12 — язык программирования
  • Poetry — пакетный менеджер
  • Ruff — инструмент для форматирования и анализа кода
  • PyQt6 — библиотека для создания графического интерфейса
  • pyqtgraph — библиотека для построения графиков в PyQt
  • pytest — фреймворк для тестирования

Установка и запуск

  1. Клонируйте репозиторий и перейдите в его папку.
  2. Установите Poetry.
  3. Из папки проекта выполните установку зависимостей:
poetry install --without dev
  1. Теперь запускать проект можно командой:
poetry run python -m src.main

Модификация

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

poetry install

Обновить py-файл интерфейса после модификации ui-файла в Qt Designer можно командой:

poetry run python -m PyQt6.uic.pyuic -o src/ui/form.py -x src/ui/form.ui

About

Single- and multi-tape Turing machine emulator. A course project on the Theory of Algorithms and Formal Languages (Oct 2022, 3d semester of university).

Topics

Resources

License

Stars

Watchers

Forks

Languages