Turing machine simulator

Zaawansowany symulator jednotaśmowej, deterministycznej maszyny Turinga z obsługą składni ASM oraz autorskim kompilatorem AoT.

Ukończony
Liczba kontrybucji w ostatnim roku: 4
PonŚrPt
LisGruStyLutMarKwiMajCzeLipSieWrzPaź
Czas czytania:2min

Zaawansowany, jednotaśmowy, deterministyczny symulator maszyny Turinga napisany przy użyciu biblioteki React. Dostępny w trybach jasnym i ciemnym, w zależności od preferencji użytkownika. Ta maszyna jest świetnym fundamentem do zrozumienia, w jaki sposób działają proste algorytmy oraz jest często spotykana jako wprowadzenie do informatyki na kierunkach technicznych.

Maszyna (jako koncepcja) posiada nieskończoną taśmę, na której za pomocą głowicy może odczytywać, zapisywać i kasować prawie wszystkie symbole (z pewnymi zastrzeżeniami). Użytkownik może używać prostego języka à la Assembler (shift, jump itp.). Maszyna ta, przy zbyt częstym wywoływaniu funkcji rekurencyjnej, zatrzyma się, by przeciwdziałać wyciekowi pamięci. Cała składnia kompilatora jest opisana na stronie demonstracyjnej projektu.

Ponadto użytkownik może załadować istniejące programy i wyeksportować napisany przez siebie program do pliku .txt w celu późniejszego załadowania.

Poniżej znajdują się dodatkowe linki, dzięki którym można dowiedzieć się więcej o działaniu hipotetycznej maszyny Alana Turinga:

Opis technologii

Projekt został w całości napisany w bibliotece React służącej do budowania interaktywnych interfejsów użytkownika. W początkowej fazie, do budowania projektu użyłem środowiska Create React App. Z uwagi jednak, że nie jest już ono wspierane, zdecydowałem napisać własną konfigurację budowania przy użyciu Webpack 5. Użyłem Webpack zamiast Vite.js z uwagi na możliwość uruchomienie na starszych przeglądarkach niewspierających nowoczesnych modułów ES6.

Galeria

Wykorzystane technologie