Skip to content

Repository files navigation

BrainfuckIDE

Graficzne środowisko do tworzenia, uruchamiania i debugowania programów napisanych w języku Brainfuck.

Funkcjonalności

  • Tworzenie, otwieranie i zapisywanie plików .bf

  • Interpretacja programów Brainfuck

  • Interaktywny debugger:

    • step
    • continue
    • undo
  • Możliwość zatrzymania wykonywania programu w dowolnym momencie

  • Buforowany input użytkownika

  • Buforowany oraz aktualizowany na bieżąco output programu

  • Breakpointy przypisywane do pierwszej instrukcji w danej linii

  • Podświetlanie składni

  • Precyzyjne komunikaty błędów wraz z lokalizacją w kodzie źródłowym

Szybki start

Jeżeli chcesz jedynie przetestować aplikację bez instalowania zależności i uruchamiania kodu źródłowego, pobierz gotową wersję programu z sekcji GitHub Releases:

➡️ https://github.com/dubajstan/BrainfuckIDE/releases/tag/v1.0.0


Wymagania

  • Python 3.14+
  • Zainstalowany uv

Dokumentacja instalacji:

https://docs.astral.sh/uv/

Instalacja

Klonowanie repozytorium

git clone https://github.com/dubajstan/BrainfuckIDE.git
cd BrainfuckIDE

Instalacja zależności

uv sync

Uruchomienie aplikacji

uv run python src/brainfuckide/main.py

Uruchomienie testów

uv run pytest

Architektura projektu

BrainfuckIDE
├── hello_world.bf                                      # Przykładowe programy
├── infinite_loop.bf
├── pyproject.toml
├── README.md
├── src
│   └── brainfuckide
│       ├── core                                        # Warstwa modelu aplikacji
│       │   ├── app_controller.py                       # Kontroler aplikacji łączący Model i GUI
│       │   ├── debugger_engine.py                      # Wątek pracujący debuggera
│       │   ├── __init__.py
│       │   ├── input.py
│       │   ├── instructions.py
│       │   ├── interpreter_context.py
│       │   ├── interpreter.py
│       │   ├── interpreter_state.py
│       │   ├── lexer.py
│       │   ├── memory.py
│       │   ├── output.py
│       │   ├── parser.py
│       ├── gui                                         # Warstwa graficzna aplikacji
│       │   ├── components
│       │   │   ├── code_editor_panel.py
│       │   │   ├── input_panel.py
│       │   │   ├── menubar.py
│       │   │   ├── output_panel.py
│       │   │   ├── right_panel.py
│       │   │   ├── tape_panel.py
│       │   │   ├── tape_visualizer.py
│       │   │   └── toolbar.py
│       │   ├── main_window.py                          # Główny ekran aplikacji
│       ├── __init__.py
│       ├── main.py
│       └── tests
│           ├── test_debugger.py
│           ├── test_input.py
│           ├── test_interpreter.py
│           ├── test_lexer.py
│           ├── test_memory.py
│           ├── test_output.py
│           └── test_parser.py
└── uv.lock

Warstwy aplikacji

Core

Warstwa odpowiedzialna za logikę biznesową aplikacji:

  • analizę składni programu,
  • interpretację instrukcji Brainfuck,
  • zarządzanie pamięcią,
  • obsługę wejścia i wyjścia,
  • działanie debuggera.

GUI

Warstwa interfejsu użytkownika oparta o komponenty odpowiedzialne za:

  • edycję kodu,
  • wizualizację taśmy pamięci,
  • obsługę debuggera,
  • prezentację danych wejściowych i wyjściowych,
  • zarządzanie plikami projektu.

app_controller

  • Spina Core i GUI ze sobą,
  • Przetwarza odpowiednio wyniki dla GUI

Zrzuty ekranu

BrainfuckIDE alt text alt text alt text

About

Simple brainfuck IDE with debugger

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages