Feito por Eduardo Espadeiro e Guilherme Salvador, com ajuda de João Rui Matos.
- Clonem este repositório
- Corram
make
na pasta onde está o Makefile
./emulador exemplos/inverte.txt 110100
O executável recebe pelo menos dois argumentos:
- O ficheiro de texto que contém o código da máquina de turing
- A fita inicial (caso seja mais do que uma fita é mais do que um argumento)
Linguagem para descrever máquinas de turing semelhante à deste emulador.
<estado atual> <caracteres lidos> <caracteres escritos> <direção> <novo estado>
Comentários podem ser escritos em linhas a começar por ;
e há instruções para modificar o comportamento do emulador em si.
; Rejeitar em vez de abortar
#reject_on_abort
; Personalizar mensagens de aceitação e de rejeitação
#messages ACEITE!!!! :(
; Importar código de outro ficheiro
; Utilizar caminhos relativos ao executável ou absolutos
#import exemplos/imports/carry.txt
- /exemplos/abcs.txt - Aceita palavras com o um número de a's, seguido do mesmo número de b's e seguido do mesmo número de c's.
- /exemplos/somador.txt - Aceita dois números em binário e devolve a soma dos dois.
- /exemplos/inverte.txt - Aceita palavra composta por uns e zeros, troca os uns por zeros e vice-versa.
- /exemplos/inverte_dois_sentidos.txt - O mesmo que
/exemplos/inverte.txt
, mas utilizando uma máquina infinita para a direita e para a esquerda. - /exemplos/inverte_multifita.txt - O mesmo que
/exemplos/inverte.txt
, mas utilizando uma máquina multifita. - /exemplos/tres_uns_consecutivos.txt - Aceita palavras que contenham 3 uns consecutivos.
- /exemplos/unario_binario.txt - Aceita palavras que contenham 3 uns consecutivos, rejeita as outras.