Lógica de programación con Dafny
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.
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 |