Graficzne środowisko do tworzenia, uruchamiania i debugowania programów napisanych w języku Brainfuck.
-
Tworzenie, otwieranie i zapisywanie plików
.bf -
Interpretacja programów Brainfuck
-
Interaktywny debugger:
stepcontinueundo
-
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
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
- Python 3.14+
- Zainstalowany
uv
Dokumentacja instalacji:
git clone https://github.com/dubajstan/BrainfuckIDE.git
cd BrainfuckIDEuv syncuv run python src/brainfuckide/main.pyuv run pytestBrainfuckIDE
├── 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
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.
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.
- Spina Core i GUI ze sobą,
- Przetwarza odpowiednio wyniki dla GUI



