Bounded generics over constants in Rust

Rust is a language aiming to provide a way to write robust and performant code without using garbage collection or manual memory managment. Yet it lacks of a mechanism to abstract constants, forcing users to repeat code in cases where con- stants are involved. One of the challenges of developing thi...

Full description

Autores:
Poveda Ruiz, Christian Nicanor
Tipo de recurso:
Fecha de publicación:
2019
Institución:
Universidad de los Andes
Repositorio:
Séneca: repositorio Uniandes
Idioma:
eng
OAI Identifier:
oai:repositorio.uniandes.edu.co:1992/44291
Acceso en línea:
http://hdl.handle.net/1992/44291
Palabra clave:
Rust (Lenguaje de programación de computadores) - Investigaciones
Programación (Computadores electrónicos) - Investigaciones
Lenguajes de programación (Computadores electrónicos) - Investigaciones
Compiladores (Programas para computador) - Investigaciones
Ingeniería
Rights
openAccess
License
http://creativecommons.org/licenses/by-nc-nd/4.0/
id UNIANDES2_d801b355b3840a97f9b3918c60e8d170
oai_identifier_str oai:repositorio.uniandes.edu.co:1992/44291
network_acronym_str UNIANDES2
network_name_str Séneca: repositorio Uniandes
repository_id_str
spelling Al consultar y hacer uso de este recurso, está aceptando las condiciones de uso establecidas por los autores.http://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Cardozo Álvarez, Nicolásvirtual::14347-1Poveda Ruiz, Christian Nicanor77fe906d-d117-4f83-9344-cefbcaacd190500Takahashi Rodríguez, SilviaScherer, Oliver2020-09-03T14:36:21Z2020-09-03T14:36:21Z2019http://hdl.handle.net/1992/44291u827014.pdfinstname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/Rust is a language aiming to provide a way to write robust and performant code without using garbage collection or manual memory managment. Yet it lacks of a mechanism to abstract constants, forcing users to repeat code in cases where con- stants are involved. One of the challenges of developing this mechanism, is that it must be compatible with the language's core principles of performance, reliability and productivity, putting it in contrast with well established languages such as C++, where the mechanism for constant abstraction is another source of unsafety. In order to provide such a mechanism, we propose and develop a symbolic execution engine for the Rust compiler. We explore the integration of the engine in the language's trait solving and type inference mechanisms."Rust es un lenguage de programación que busca proveer una forma de escribir codigo robusto y eficiente sin usar recolección de basura ni manejo manual de memoria. Aun así, este carece de un mecanismo para abstraer constantes, obligando a los usuarios a repetir código cuando este involucra constantes. Uno de los retos para desarrollar este mecanismo, es que debe ser compatible con los principios de eficiencia, confiabilidad y productividad del lenguaje, poniendolo en contraste con lenguajes bien establecidos como C++, donde el mecanismo para abstración de contantes es otra fuente de inseguridad. Para proveer este mecanismo, proponemos y desarrolamos un motor de ejecución simbólica para el compilador de Rust. También exploramos la integración del motor con los mecanismos de resolución de Traits y de inferencia de tipos con los que cuenta el compilador."--Tomado del Formato de Documento de Grado.Magíster en Ingeniería de Sistemas y ComputaciónMaestría62 hojasapplication/pdfengUniandesMaestría en Ingeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería de Sistemas y Computacióninstname:Universidad de los Andesreponame:Repositorio Institucional SénecaBounded generics over constants in RustTrabajo de grado - Maestríainfo:eu-repo/semantics/masterThesishttp://purl.org/coar/version/c_970fb48d4fbd8a85Texthttp://purl.org/redcol/resource_type/TMRust (Lenguaje de programación de computadores) - InvestigacionesProgramación (Computadores electrónicos) - InvestigacionesLenguajes de programación (Computadores electrónicos) - InvestigacionesCompiladores (Programas para computador) - InvestigacionesIngenieríaPublicationhttps://scholar.google.es/citations?user=3iTzjQsAAAAJvirtual::14347-10000-0002-1094-9952virtual::14347-1a77ff528-fc33-44d6-9022-814f81ef407avirtual::14347-1a77ff528-fc33-44d6-9022-814f81ef407avirtual::14347-1ORIGINALu827014.pdfapplication/pdf318818https://repositorio.uniandes.edu.co/bitstreams/d8ff4d64-a163-4ac3-b136-7bd8a8244048/download9b013a219d47d1fe80269b1b2020c9f1MD51THUMBNAILu827014.pdf.jpgu827014.pdf.jpgIM Thumbnailimage/jpeg6608https://repositorio.uniandes.edu.co/bitstreams/c881c22f-dacc-4d32-b1e8-5f04db4e1f6e/download2ed3d0b6ba801609de986416cae32fb9MD55TEXTu827014.pdf.txtu827014.pdf.txtExtracted texttext/plain68076https://repositorio.uniandes.edu.co/bitstreams/f37f635c-0a0d-4085-979a-b9a15c9302c1/download6a6c031e2d4e5ff4805411b148636ec9MD541992/44291oai:repositorio.uniandes.edu.co:1992/442912024-03-13 15:10:43.53http://creativecommons.org/licenses/by-nc-nd/4.0/open.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.co
dc.title.es_CO.fl_str_mv Bounded generics over constants in Rust
title Bounded generics over constants in Rust
spellingShingle Bounded generics over constants in Rust
Rust (Lenguaje de programación de computadores) - Investigaciones
Programación (Computadores electrónicos) - Investigaciones
Lenguajes de programación (Computadores electrónicos) - Investigaciones
Compiladores (Programas para computador) - Investigaciones
Ingeniería
title_short Bounded generics over constants in Rust
title_full Bounded generics over constants in Rust
title_fullStr Bounded generics over constants in Rust
title_full_unstemmed Bounded generics over constants in Rust
title_sort Bounded generics over constants in Rust
dc.creator.fl_str_mv Poveda Ruiz, Christian Nicanor
dc.contributor.advisor.none.fl_str_mv Cardozo Álvarez, Nicolás
dc.contributor.author.none.fl_str_mv Poveda Ruiz, Christian Nicanor
dc.contributor.jury.none.fl_str_mv Takahashi Rodríguez, Silvia
Scherer, Oliver
dc.subject.armarc.es_CO.fl_str_mv Rust (Lenguaje de programación de computadores) - Investigaciones
Programación (Computadores electrónicos) - Investigaciones
Lenguajes de programación (Computadores electrónicos) - Investigaciones
Compiladores (Programas para computador) - Investigaciones
topic Rust (Lenguaje de programación de computadores) - Investigaciones
Programación (Computadores electrónicos) - Investigaciones
Lenguajes de programación (Computadores electrónicos) - Investigaciones
Compiladores (Programas para computador) - Investigaciones
Ingeniería
dc.subject.themes.none.fl_str_mv Ingeniería
description Rust is a language aiming to provide a way to write robust and performant code without using garbage collection or manual memory managment. Yet it lacks of a mechanism to abstract constants, forcing users to repeat code in cases where con- stants are involved. One of the challenges of developing this mechanism, is that it must be compatible with the language's core principles of performance, reliability and productivity, putting it in contrast with well established languages such as C++, where the mechanism for constant abstraction is another source of unsafety. In order to provide such a mechanism, we propose and develop a symbolic execution engine for the Rust compiler. We explore the integration of the engine in the language's trait solving and type inference mechanisms.
publishDate 2019
dc.date.issued.es_CO.fl_str_mv 2019
dc.date.accessioned.none.fl_str_mv 2020-09-03T14:36:21Z
dc.date.available.none.fl_str_mv 2020-09-03T14:36:21Z
dc.type.spa.fl_str_mv Trabajo de grado - Maestría
dc.type.coarversion.fl_str_mv http://purl.org/coar/version/c_970fb48d4fbd8a85
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/masterThesis
dc.type.content.spa.fl_str_mv Text
dc.type.redcol.spa.fl_str_mv http://purl.org/redcol/resource_type/TM
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/1992/44291
dc.identifier.pdf.none.fl_str_mv u827014.pdf
dc.identifier.instname.spa.fl_str_mv instname:Universidad de los Andes
dc.identifier.reponame.spa.fl_str_mv reponame:Repositorio Institucional Séneca
dc.identifier.repourl.spa.fl_str_mv repourl:https://repositorio.uniandes.edu.co/
url http://hdl.handle.net/1992/44291
identifier_str_mv u827014.pdf
instname:Universidad de los Andes
reponame:Repositorio Institucional Séneca
repourl:https://repositorio.uniandes.edu.co/
dc.language.iso.es_CO.fl_str_mv eng
language eng
dc.rights.uri.*.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/4.0/
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/openAccess
dc.rights.coar.spa.fl_str_mv http://purl.org/coar/access_right/c_abf2
rights_invalid_str_mv http://creativecommons.org/licenses/by-nc-nd/4.0/
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.extent.es_CO.fl_str_mv 62 hojas
dc.format.mimetype.es_CO.fl_str_mv application/pdf
dc.publisher.es_CO.fl_str_mv Uniandes
dc.publisher.program.es_CO.fl_str_mv Maestría en Ingeniería de Sistemas y Computación
dc.publisher.faculty.es_CO.fl_str_mv Facultad de Ingeniería
dc.publisher.department.es_CO.fl_str_mv Departamento de Ingeniería de Sistemas y Computación
dc.source.es_CO.fl_str_mv instname:Universidad de los Andes
reponame:Repositorio Institucional Séneca
instname_str Universidad de los Andes
institution Universidad de los Andes
reponame_str Repositorio Institucional Séneca
collection Repositorio Institucional Séneca
bitstream.url.fl_str_mv https://repositorio.uniandes.edu.co/bitstreams/d8ff4d64-a163-4ac3-b136-7bd8a8244048/download
https://repositorio.uniandes.edu.co/bitstreams/c881c22f-dacc-4d32-b1e8-5f04db4e1f6e/download
https://repositorio.uniandes.edu.co/bitstreams/f37f635c-0a0d-4085-979a-b9a15c9302c1/download
bitstream.checksum.fl_str_mv 9b013a219d47d1fe80269b1b2020c9f1
2ed3d0b6ba801609de986416cae32fb9
6a6c031e2d4e5ff4805411b148636ec9
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositorio institucional Séneca
repository.mail.fl_str_mv adminrepositorio@uniandes.edu.co
_version_ 1808390442640736256