Repositorio público de la materia Avanzada para Analista/Licenciatura/Profesorado en Computación (UNRC).
Este README ofrece información básica para las herramientas que vamos a utilizar, para más información contamos con una Wiki.
Se va a utilizar GHC para Haskell, y Haddock para combinar escritura de documentación con código Haskell. Haddock viene en general junto con la instalación de GHC. A su vez vamos a usar git como sistema de versionado, GitHub para guardar los repositorios remotos, y OpenSSH opcionalmente si desean generar y/o utilizar claves ssh para manejar el control de acceso entre git y GitHub.
En la segunda mitad de la materia (aproximadamente), vamos a utilizar un lenguaje llamado Dafny que no solo permite escribir programas imperatívos sino también permite escribir especificaciones para los mismos, ofreciendo un SMT-Solver para verificar de manera automática que el programa es correcto con respecto a las especificaciones.
Se va a tratar, siempre que sea posible, de usar Haddock con un archivo .lhs para representar una práctica particular e importar archivos .hs que resuelvan los ejercicios particulares. La estructura de archivos que vamos a utilizar va a ser la siguiente, está basada en la sugerida en wiki de Haskell.
- carpeta principal del proyecto
- src/
- Main.lhs (programa principal, documenta la práctica a la vez que ofrece las funcionalidades requeridas de los distintos ejercicios)
- App/ (módulos)
- [doc/] (opcional, la documentación va acá)
- src/
Para instalar GHC se tienen las siguientes opciones:
Si solo quieren instalar GHC (junto al intérprete GHCi) pueden ir a la siguiente página, buscar la última versión estable y buscar los binarios correspondientes a su OS.
Aunque en la materia alcanza con solo GHC, si quieren instalar GHC junto a otras herramientas que pueden ser útiles como cabal, pueden ir a la siguiente página.
Para instalar Dafny hay dos opciones: instalar Visual Studio Code, e instalar la extensión dafny; o pueden instalar la versión por terminal siguiendo estas instrucciones. Nosotros recomendamos la primera opción, es mucho más simple. Para más información pueden consultar la wiki.