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
_version_ 1807261356927221760
author Hernández Lorenzo, Matías Sebastián
author_facet Hernández Lorenzo, Matías Sebastián
author_role author
bitstream.checksum.fl_str_mv ab5e12370f3adc275b1cc378300251f2
b7e46f01cdfdc5fddfc19f2116ddd0ef
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
bitstream.url.fl_str_mv https://rad.ort.edu.uy/bitstreams/7136df89-cd12-440d-b20c-2287a24fd90c/download
https://rad.ort.edu.uy/bitstreams/45a54b01-f34c-48a1-acc1-a1333dcc5eaa/download
collection RAD
dc.contributor.advisor.none.fl_str_mv Tasistro Souto, Álvaro Daniel
dc.contributor.tribunal.none.fl_str_mv Michelini Jorge, Juan Pedro
Szasz Cerutti, Nora Adriana
dc.creator.none.fl_str_mv Hernández Lorenzo, Matías Sebastián
dc.date.issued.none.fl_str_mv 2021
dc.description.abstract.none.fl_txt_mv 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.
dc.description.none.fl_txt_mv Incluye bibliografía.
dc.format.extent.none.fl_str_mv 64 p.
dc.identifier.citation.none.fl_str_mv Hernández Lorenzo, M. S. (2021). Lógica de programación con Dafny (Trabajo Integrador). Universidad ORT Uruguay, Facultad de Ingeniería.
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/20.500.11968/4514
dc.language.iso.none.fl_str_mv Español.
spa
dc.publisher.none.fl_str_mv Universidad ORT Uruguay
dc.relation.other.none.fl_str_mv https://sisbibliotecas.ort.edu.uy/bib/91848
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
dc.source.none.fl_str_mv reponame:RAD
instname:Universidad ORT Uruguay
instacron:Universidad ORT
dc.subject.none.fl_str_mv PROYECTOS-ID
ESTRUCTURAS DE DATOS
VERIFICACIÓN AUTOMÁTICA
dc.title.none.fl_str_mv Lógica de programación con Dafny
dc.type.none.fl_str_mv Trabajo final de carrera
info:eu-repo/semantics/bachelorThesis
dc.type.version.none.fl_str_mv info:eu-repo/semantics/publishedVersion
description Incluye bibliografía.
eu_rights_str_mv openAccess
format bachelorThesis
id RAD_61d9f55d6b34daeca7ba8b8b632bef06
identifier_str_mv Hernández Lorenzo, M. S. (2021). Lógica de programación con Dafny (Trabajo Integrador). Universidad ORT Uruguay, Facultad de Ingeniería.
instacron_str Universidad ORT
institution Universidad ORT
instname_str Universidad ORT Uruguay
language spa
language_invalid_str_mv Español.
network_acronym_str RAD
network_name_str RAD
oai_identifier_str oai:rad.ort.edu.uy:20.500.11968/4514
publishDate 2021
publisher.none.fl_str_mv Universidad ORT Uruguay
reponame_str RAD
repository.mail.fl_str_mv rodriguez_v@ort.edu.uy
repository.name.fl_str_mv RAD - Universidad ORT Uruguay
repository_id_str 3927
spelling Tasistro Souto, Álvaro DanielMichelini Jorge, Juan PedroSzasz Cerutti, Nora AdrianaHernández Lorenzo, Matías Sebastián2021Incluye bibliografía.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.64 p.Hernández Lorenzo, M. S. (2021). Lógica de programación con Dafny (Trabajo Integrador). Universidad ORT Uruguay, Facultad de Ingeniería.http://hdl.handle.net/20.500.11968/4514Español.spaUniversidad ORT Uruguayhttps://sisbibliotecas.ort.edu.uy/bib/91848PROYECTOS-IDESTRUCTURAS DE DATOSVERIFICACIÓN AUTOMÁTICALógica de programación con DafnyTrabajo final de carrerainfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/publishedVersionreponame:RADinstname:Universidad ORT Uruguayinstacron:Universidad ORTinfo:eu-repo/semantics/openAccessFI - Licenciatura en Ingeniería de software - IDFacultad de IngenieríaCarrera UniversitariaLicenciado en Ingeniería de SoftwareTrabajo IntegradorTrabajo Integrador (Carrera Universitaria). Universidad ORT Uruguay, Facultad de IngenieríaTHUMBNAILMaterial completo.pdf.jpgMaterial completo.pdf.jpgGenerated Thumbnailimage/jpeg3351https://rad.ort.edu.uy/bitstreams/7136df89-cd12-440d-b20c-2287a24fd90c/downloadab5e12370f3adc275b1cc378300251f2MD53ORIGINALMaterial completo.pdfMaterial completo.pdfdescriptionapplication/pdf429030https://rad.ort.edu.uy/bitstreams/45a54b01-f34c-48a1-acc1-a1333dcc5eaa/downloadb7e46f01cdfdc5fddfc19f2116ddd0efMD5120.500.11968/45142024-07-22 15:47:35.851oai:rad.ort.edu.uy:20.500.11968/4514https://rad.ort.edu.uyUniversidadhttps://www.ort.edu.uy/https://rad.ort.edu.uy/server/oai/requestrodriguez_v@ort.edu.uyUruguayopendoar:39272024-07-22T15:47:35RAD - Universidad ORT Uruguayfalse
spellingShingle Lógica de programación con Dafny
Hernández Lorenzo, Matías Sebastián
PROYECTOS-ID
ESTRUCTURAS DE DATOS
VERIFICACIÓN AUTOMÁTICA
status_str publishedVersion
title Lógica de programación con Dafny
title_full Lógica de programación con Dafny
title_fullStr Lógica de programación con Dafny
title_full_unstemmed Lógica de programación con Dafny
title_short Lógica de programación con Dafny
title_sort Lógica de programación con Dafny
topic PROYECTOS-ID
ESTRUCTURAS DE DATOS
VERIFICACIÓN AUTOMÁTICA
url http://hdl.handle.net/20.500.11968/4514