Lógica de programación con Dafny

Hernández Lorenzo, Matías Sebastián

Resumen:

Dafny es un lenguaje diseñado por K. Rustan M. Leino en “Microsoft Research” que soporta la especificación formal de código a través del uso de invariantes, precondiciones, postcondiciones y lemas (propiedades). Se realizó una búsqueda de aplicaciones de Dafny a nivel educativo y se encontró que el “Imperial College London” introduce a sus alumnos el concepto de verificación completa de especificaciones de programas utilizando Dafny, lo cual motivó a realizar esta investigación para evaluar la aplicabilidad del lenguaje Dafny para entornos académicos. Para poder realizar la evaluación, se estarán abordando implementaciones de diferentes algoritmos conocidos de ordenamiento y búsqueda, junto a lemas que verifican sus propiedades. Las demostraciones se realizarán utilizando inducción y “calculations” los cuales permiten realizar demostraciones muy intuitivas. Como metodología de desarrollo, se estará aplicando la metodología vista en “Fundamentos de la computación" para los algoritmos funcionales e invariantes al estilo Dijkstra para los algoritmos iterativos. Para finalizar, se analizará también a Dafny como herramienta productiva, reescribiendo los lemas del módulo educativo a su mínima expresión para evaluar el potencial del compilador de Dafny y por ende su aplicabilidad en entornos productivos. Se concluirá que Dafny tiene mucho potencial principalmente como herramienta educativa, pero además cierto nicho de mercado también podría beneficiarse del potencial del compilador en un entorno productivo.


Detalles Bibliográficos
2021
PROYECTOS-ID
ESTRUCTURAS DE DATOS
VERIFICACIÓN AUTOMÁTICA
Español
Universidad ORT Uruguay
RAD
http://hdl.handle.net/20.500.11968/4514
Acceso abierto