mirror of https://gitlab.com/baco/l-c2019.git
Add week 02 assignment
This commit is contained in:
parent
fcdea11331
commit
fd981ecb93
|
@ -0,0 +1,24 @@
|
|||
{-# LANGUAGE TypeSynonymInstances #-}
|
||||
{-# LANGUAGE FlexibleInstances #-}
|
||||
|
||||
data Expr a = Const Int
|
||||
| Mas (Expr a) (Expr a)
|
||||
| Conj (Expr a) (Expr a)
|
||||
|
||||
class DomSem dom where
|
||||
sem :: Expr dom -> dom
|
||||
|
||||
instance DomSem Int where
|
||||
sem x = undefined
|
||||
|
||||
instance DomSem Bool where
|
||||
sem x = undefined
|
||||
|
||||
type Iden = String
|
||||
type State = Iden -> Int
|
||||
|
||||
instance DomSem (State -> Int) where
|
||||
sem x = undefined
|
||||
|
||||
instance DomSem (State -> Bool) where
|
||||
sem x = undefined
|
|
@ -0,0 +1,26 @@
|
|||
# Laboratorio Lenguajes y Compiladores #
|
||||
|
||||
## Enunciado ##
|
||||
|
||||
Extender la implementación de la semántica denotacional para un lenguaje simple
|
||||
de expresiones aritméticas y booleanas del Lab1 con variables enteras.
|
||||
|
||||
**Tarea**
|
||||
Extender la sintaxis abstracta con un constructor para las variables
|
||||
representadas con el tipo String y re-definir la función semántica
|
||||
|
||||
sem :: Expr dom -> dom
|
||||
|
||||
que implementa el significado de estas expresiones.
|
||||
|
||||
1. Agregar el constructor para variables.
|
||||
2. Re-definir la función semántica considerando que ahora necesitamos un
|
||||
estado para dar la denotación de las variables.
|
||||
3. Implementar el "estado vacío".
|
||||
4. Escribir y ejecutar algunos ejemplos.
|
||||
|
||||
## Uso ##
|
||||
|
||||
```console
|
||||
$ ghci Lab2.hs
|
||||
```
|
|
@ -7,3 +7,8 @@ Week 01
|
|||
lenguaje simple de expresiones aritméticas y booleanas. La tarea consiste en
|
||||
definir la función sem que define la semántica para cada una de las
|
||||
construcciones sintácticas.
|
||||
|
||||
Week 02
|
||||
-------
|
||||
**Lab2**: La tarea consiste en extender el lenguaje implementado en el Lab1 con
|
||||
variables enteras.
|
||||
|
|
Loading…
Reference in New Issue