|3 years ago|
|LICENSE||3 years ago|
|README.md||3 years ago|
|expander.rkt||3 years ago|
|main.rkt||3 years ago|
|parser.rkt||3 years ago|
|reader.rkt||3 years ago|
|tmUtils.rkt||3 years ago|
a toy programming language for creating turing machines
turingAutomaton is a programming language created to test the Racket ecosystem. it features custom syntax and is able to run single tape turing machines.
git clone https://git.lain.church/tA/turingAutomaton cd turingAutomaton raco pkg install
all files must begin with a
followed by a definition of;
@ beginningState % blankSymbol ! acceptingState
(currently the accepting state is unimplemented)
states are defined using the following syntax;
: stateName currentSymbol ~ newSymbol > newState currentSymbol ~ newSymbol < newState
> denote moving the tape left and right, respectively
comments are allowed:
; either on their own line @ first ; or at the end of a line
this machine will double a number passed to it
#lang turingAutomaton ; this is a comment! @ first % e ! F : first a ~ b > second c ~ c > fourth : second a ~ a > second c ~ c > second e ~ c < third : third a ~ a < third b ~ b > first c ~ c < third : fourth c ~ c > fourth e ~ e < fifth : fifth b ~ a < fifth c ~ a < fifth e ~ e > F
currently very unfinished.
all input is a single tape defined with
aaaaa for now.
there is no error checking until I learn how to do that.
might get slow for very large tapes as the tape uses linked lists to operate.
mutce ckire to:
fi'e la ti'ei