Program Verification in Elixir
dc.contributor.advisor | Montenegro Montes, Manuel | |
dc.contributor.author | Enríquez Ballester, Adrián | |
dc.date.accessioned | 2023-06-22T21:21:11Z | |
dc.date.available | 2023-06-22T21:21:11Z | |
dc.date.issued | 2022-07-12 | |
dc.description | Trabajo de Fin de Máster en Métodos Formales en Ingeniería Informática, Facultad de Informática UCM, Departamento de Sistemas Informáticos y computación, Curso 2021-2022. | |
dc.description.abstract | This project addresses the formalization and implementation of a verification system for Elixir, a dynamically typed programming language with functional programming principles. Our system is inspired by projects like Dafny and will likewise rely on a verification intermediate representation, which will be the translation target of a supported Elixir subset plus ghost verification annotations, and uses SMT solvers for its verification. The metaprogramming capabilities of Elixir through macro expressions make this language suitable for developing domain-specific languages, and allows us to provide our implementation in Elixir itself without requiring us to modify its compiler or to implement a parser. Due to the breadth of the project, we have restricted the scope to sequential code and partial correctness verification. | |
dc.description.abstract | Este proyecto aborda la formalización e implementación de un sistema de verificación para Elixir, un lenguaje de programación funcional dinámicamente tipado. Nuestro sistema está inspirado en proyectos como Dafny y, de manera similar, se apoya en una representación intermedia de verificación, la cual será objetivo de la traducción de un subconjunto de Elixir junto con anotaciones de verificación, y utiliza resolutores SMT para su verificación. Las capacidades de metaprogramación en Elixir a través de macros hacen que este sea un lenguaje adecuado para desarrollar lenguajes específicos de dominio, y nos permiten realizar nuestra implementación en Elixir mismo, sin requerir que modifiquemos su compilador o desarrollemos un analizador sintáctico. Dada la amplitud de este proyecto, hemos restringido su alcance a código secuencial y a verificación parcial. | |
dc.description.department | Depto. de Sistemas Informáticos y Computación | |
dc.description.faculty | Fac. de Informática | |
dc.description.refereed | TRUE | |
dc.description.status | unpub | |
dc.eprint.id | https://eprints.ucm.es/id/eprint/73987 | |
dc.identifier.uri | https://hdl.handle.net/20.500.14352/73938 | |
dc.language.iso | eng | |
dc.master.title | Máster en Métodos Formales en Ingeniería Informática | |
dc.page.total | 60 | |
dc.rights | Atribución-NoComercial 3.0 España | |
dc.rights.accessRights | open access | |
dc.rights.uri | https://creativecommons.org/licenses/by-nc/3.0/es/ | |
dc.subject.cdu | 004(043.3) | |
dc.subject.keyword | Program verification | |
dc.subject.keyword | Elixir | |
dc.subject.keyword | Metaprogramming | |
dc.subject.keyword | SMT | |
dc.subject.keyword | Intermediate representation | |
dc.subject.keyword | Formal methods | |
dc.subject.keyword | Verificación de programas | |
dc.subject.keyword | Metaprogramación | |
dc.subject.keyword | Representación intermedia | |
dc.subject.keyword | Métodos formales | |
dc.subject.ucm | Informática (Informática) | |
dc.subject.unesco | 1203.17 Informática | |
dc.title | Program Verification in Elixir | |
dc.title.alternative | Verificación de programas en Elixir | |
dc.type | master thesis | |
dspace.entity.type | Publication | |
relation.isAdvisorOfPublication | dc391c7e-9682-4142-a1de-7d649b26bf3d | |
relation.isAdvisorOfPublication.latestForDiscovery | dc391c7e-9682-4142-a1de-7d649b26bf3d |
Download
Original bundle
1 - 1 of 1