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...
- 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_ |
1812134027389304832 |