Skip to content

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

Course project on the theory of algorithms and formal languages (Oct 2022, 3d semester of university)

Topics

Resources

License

Stars

Watchers

Forks

Languages