Created
June 9, 2019 21:24
-
-
Save AldairCoronel/4d83b2149006b4d07628efda3c2f45bb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Implementación de Máquina de Turing | |
-- Se define formalmente como TM = (Q, Σ, Γ, δ, qo, ␣, F) donde: | |
-- Q Conjunto de estados | |
-- Σ Alfabeto de entrada | |
-- Γ Alfabeto de la cinta | |
-- δ Función de transición | |
-- q0 Estado Inicial | |
-- ␣ Símbolo en blanco | |
-- F Conjunto de estados finales | |
-- Definamos los tipos∷ | |
-- Una configuración se representa mediante el siguiente sinónimo | |
-- El entero representa la posición de la cabeza de lectoescritura en la cadena | |
type Config = (State, String, Int) | |
-- Recibe una MaqT y una cadena | |
-- Imprime el procesamiento formal de la cadena con configuraciones | |
compute :: MaqT -> String -> [Config] | |
-- Recibe una MaqT y una cadena | |
-- Regresa un bool diciendo si la cadena es aceptada [true] o no [false] | |
-- por la máquina de Turing | |
accept :: MaqT -> String -> Bool | |
-- Recibe una MaqT | |
-- Codifica la MaqT para pasarla como entrada de la Máquina Universal | |
encode :: MaqT -> String | |
-- EXTRA | |
-- Recibe una String representando una máquina codificada | |
-- Regresa la MaqT que representa | |
decode :: String -> MaqT |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment