Diferencia entre revisiones de «Práctica 2 (Paradigmas)»

De Cuba-Wiki
(Practica 2 ej 1)
 
(Ej 1 resuelto)
Línea 2: Línea 2:
Determinar qué expresiones son sintácticamente válidas (es decir, pueden ser generadas con las gramáticas
Determinar qué expresiones son sintácticamente válidas (es decir, pueden ser generadas con las gramáticas
presentadas) y determinar a qué categoría pertenecen (expresiones de términos o expresiones de tipos):
presentadas) y determinar a qué categoría pertenecen (expresiones de términos o expresiones de tipos):
a) x
 
b) x x
a) x ---------VALIDO, expresiones de términos
c) M
 
d) M M
b) x x ---------VALIDO, expresiones de términos
e) true false
 
f) true succ(false true)
c) M --------- No es un término
g) λx.isZero(x)
 
h) λx: σ. succ(x)
d) M M --------- No es un término
i) λx: Bool. succ(x)
 
j) λx: if true then Bool else Nat. x
e) true false ---------VALIDO, expresiones de términos
k) σ
 
l) Bool
f) true succ(false true) ---------VALIDO, expresiones de términos
m) Bool → Bool
 
n) Bool → Bool → Nat
g) λx.isZero(x) --------- Falta tipo
ñ) (Bool → Bool) → Nat
 
o) succ true
h) λx: σ. succ(x) --------- Falta tipo, sigma no es un tipo valido
p) λx: Bool. if 0 then true else 0 succ(true)
 
i) λx: Bool. succ(x) ---------VALIDO, expresiones de términos
 
j) λx: if true then Bool else Nat. x --------- Falta tipo
 
k) σ --------- Sigma no es un tipo valido
 
l) Bool ---------VALIDO, expresiones de tipos
 
m) Bool → Bool ---------VALIDO, expresiones de tipos
 
n) Bool → Bool → Nat ---------VALIDO, expresiones de tipos
 
ñ) (Bool → Bool) → Nat ---------VALIDO, expresiones de tipos
 
o) succ true --------- Si succ fuera una variables seria una aplicación, pero el enunciado dice que las variables se representan con una letra por lo cual a succ como termino le faltan los paréntesis.
 
p) λx: Bool. if 0 then true else 0 succ(true) ---------VALIDO, expresiones de términos

Revisión del 16:09 6 oct 2021

Ejercicio 1

Determinar qué expresiones son sintácticamente válidas (es decir, pueden ser generadas con las gramáticas presentadas) y determinar a qué categoría pertenecen (expresiones de términos o expresiones de tipos):

a) x ---------VALIDO, expresiones de términos

b) x x ---------VALIDO, expresiones de términos

c) M --------- No es un término

d) M M --------- No es un término

e) true false ---------VALIDO, expresiones de términos

f) true succ(false true) ---------VALIDO, expresiones de términos

g) λx.isZero(x) --------- Falta tipo

h) λx: σ. succ(x) --------- Falta tipo, sigma no es un tipo valido

i) λx: Bool. succ(x) ---------VALIDO, expresiones de términos

j) λx: if true then Bool else Nat. x --------- Falta tipo

k) σ --------- Sigma no es un tipo valido

l) Bool ---------VALIDO, expresiones de tipos

m) Bool → Bool ---------VALIDO, expresiones de tipos

n) Bool → Bool → Nat ---------VALIDO, expresiones de tipos

ñ) (Bool → Bool) → Nat ---------VALIDO, expresiones de tipos

o) succ true --------- Si succ fuera una variables seria una aplicación, pero el enunciado dice que las variables se representan con una letra por lo cual a succ como termino le faltan los paréntesis.

p) λx: Bool. if 0 then true else 0 succ(true) ---------VALIDO, expresiones de términos