Edición de «Práctica 3 (Paradigmas)»

De Cuba-Wiki
Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces publica los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 6: Línea 6:
     dado X = {w, w1, w2, . . . , x, x1, x2, . . . , y, y1, y2, . . . , f, f1, f2, . . . }
     dado X = {w, w1, w2, . . . , x, x1, x2, . . . , y, y1, y2, . . . , f, f1, f2, . . . }
Términos sin anotaciones
Términos sin anotaciones
     M0 ::= x | λx.M0 | M0 M0 | True | False | if M0 then M0 else M0 | 0 | succ(M0) | pred(M0) | isZero(M0)
     M0
    ::= x | λx.M0
    | M0 M0
    | True | False | if M0
    then M0
    else M0
    | 0 | succ(M0
    ) | pred(M0
    ) | isZero(M0
    )
Tipos
Tipos
     σ ::= Bool | Nat | σ → σ | s
     σ ::= Bool | Nat | σ → σ | s
Línea 14: Línea 23:


== Ejercicio 1 ==
== Ejercicio 1 ==
Determinar qué expresiones son sintácticamente válidas y, para las que sean, indicar a qué gramática pertenecen.
Determinar qué expresiones son sintácticamente válidas y, para las que sean, indicar a qué gramática pertenecen.
i. λx: Bool.succ(x)  -- Válida, grámatica con anotaciones.
i. λx: Bool.succ(x)  -- Válida, grámatica con anotaciones.
ii. λx.isZero(x)  -- Válida, grámatica sin anotaciones.
ii. λx.isZero(x)  -- Válida, grámatica sin anotaciones.
iii. s → σ  -- No Válida. σ es una metavariable.
iii. s → σ  -- No Válida. σ es una metavariable.
iv. Erase(f y) Válida, grámatica sin anotaciones.
iv. Erase(f y) Válida, grámatica sin anotaciones.
v. s -- Válida, grámatica de tipos.
v. s -- Válida, grámatica de tipos.
vi. s → (Bool → t) -- Válida, grámatica de tipos.
vi. s → (Bool → t) -- Válida, grámatica de tipos.
 
vii. λx: s1 → s2.if 0 then True else 0 succ(True) -- No Válida
vii. λx: s1 → s2.if 0 then True else 0 succ(True) -- No Válida.
 
viii. Erase(λf : Bool → s.λy : Bool.f y) -- Válida, grámatica con anotaciones.
viii. Erase(λf : Bool → s.λy : Bool.f y) -- Válida, grámatica con anotaciones.
== Ejercicio 2 ==
Determinar el resultado de aplicar la sustitución S a las siguientes expresiones
i. S = {t ← Nat} S({x : t → Bool})
  S({x : Nat → Bool})
ii. S = {t1 ← t2 → t3, t ← Bool} S({x : t → Bool}) . S(λx: t1 → Bool.x): S(Nat → t2)
  S({x : Bool → Bool}) . S(λx: t2 → t3 → Bool.x): S(Nat → t2)
Ten en cuenta que todas las contribuciones a Cuba-Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Cuba-Wiki:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)