ANTLR 4 grammar of the Swift 5 programing language

Actualmente se enlistan entre 500 y 2000 lenguajes de programación de propósito general y entre 5000 y 25000 lenguajes informáticos activos. Todos los días se crean nuevos lenguajes de programación. Por lo tanto, cuando uno de estos lenguajes gana popularidad uno de los posibles intereses que podemo...

Full description

Autores:
Tarazona Bernal, Yeisson Steven
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2021
Institución:
Universidad de los Andes
Repositorio:
Séneca: repositorio Uniandes
Idioma:
eng
OAI Identifier:
oai:repositorio.uniandes.edu.co:1992/53289
Acceso en línea:
http://hdl.handle.net/1992/53289
Palabra clave:
Lenguajes de programación
Ingeniería
Rights
openAccess
License
http://creativecommons.org/licenses/by-nc-nd/4.0/
id UNIANDES2_6dd10aa82ac9ea968fedf4cd851c6f58
oai_identifier_str oai:repositorio.uniandes.edu.co:1992/53289
network_acronym_str UNIANDES2
network_name_str Séneca: repositorio Uniandes
repository_id_str
dc.title.eng.fl_str_mv ANTLR 4 grammar of the Swift 5 programing language
title ANTLR 4 grammar of the Swift 5 programing language
spellingShingle ANTLR 4 grammar of the Swift 5 programing language
Lenguajes de programación
Ingeniería
title_short ANTLR 4 grammar of the Swift 5 programing language
title_full ANTLR 4 grammar of the Swift 5 programing language
title_fullStr ANTLR 4 grammar of the Swift 5 programing language
title_full_unstemmed ANTLR 4 grammar of the Swift 5 programing language
title_sort ANTLR 4 grammar of the Swift 5 programing language
dc.creator.fl_str_mv Tarazona Bernal, Yeisson Steven
dc.contributor.advisor.none.fl_str_mv Cardozo Álvarez, Nicolás
dc.contributor.author.none.fl_str_mv Tarazona Bernal, Yeisson Steven
dc.subject.armarc.none.fl_str_mv Lenguajes de programación
topic Lenguajes de programación
Ingeniería
dc.subject.themes.none.fl_str_mv Ingeniería
description Actualmente se enlistan entre 500 y 2000 lenguajes de programación de propósito general y entre 5000 y 25000 lenguajes informáticos activos. Todos los días se crean nuevos lenguajes de programación. Por lo tanto, cuando uno de estos lenguajes gana popularidad uno de los posibles intereses que podemos tener nosotros como desarrolladores es tener la capacidad de analizar dicho lenguaje. Por ejemplo, para analizar la calidad de los sistemas de software, detectando el porcentaje de código copiado en un programa. Para realizar tal tarea, primero necesitamos construir un analizador sintáctico, que dado un programa escrito en un lenguaje específico pueda reconocerlo y devolver una estructura en forma de árbol que luego se use como entrada para la herramienta de análisis estático deseada. Afortunadamente, no necesitamos generar analizadores sintácticos completos para lenguajes de programación, ya que esta tarea es muy compleja. Podemos utilizar generadores de analizadores sintácticos ya existentes, como ANTLR, que dado el conjunto de reglas que definen la estructura del lenguaje, es decir, la gramática, pueden generar un analizador sintáctico eficiente y correcto para dicho lenguaje. Siendo así, nos centraremos en el desarrollo de una gramática para la última especificación del lenguaje Swift (5.4). La gramática debe cumplir con la especificación del generador de analizadores sintácticos ANTLR 4 (metalenguaje de ANTLR), con el objetivo de generar un analizador sintáctico para Swift.
publishDate 2021
dc.date.accessioned.none.fl_str_mv 2021-11-03T16:17:02Z
dc.date.available.none.fl_str_mv 2021-11-03T16:17:02Z
dc.date.issued.none.fl_str_mv 2021
dc.type.spa.fl_str_mv Trabajo de grado - Pregrado
dc.type.coarversion.fl_str_mv http://purl.org/coar/version/c_970fb48d4fbd8a85
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.coar.spa.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
dc.type.content.spa.fl_str_mv Text
dc.type.redcol.spa.fl_str_mv http://purl.org/redcol/resource_type/TP
format http://purl.org/coar/resource_type/c_7a1f
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/1992/53289
dc.identifier.pdf.none.fl_str_mv 24232.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/53289
identifier_str_mv 24232.pdf
instname:Universidad de los Andes
reponame:Repositorio Institucional Séneca
repourl:https://repositorio.uniandes.edu.co/
dc.language.iso.none.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.none.fl_str_mv 22 páginas
dc.format.mimetype.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidad de los Andes
dc.publisher.program.none.fl_str_mv Ingeniería de Sistemas y Computación
dc.publisher.faculty.none.fl_str_mv Facultad de Ingeniería
dc.publisher.department.none.fl_str_mv Departamento de Ingeniería de Sistemas y Computación
publisher.none.fl_str_mv Universidad de los Andes
institution Universidad de los Andes
bitstream.url.fl_str_mv https://repositorio.uniandes.edu.co/bitstreams/97b339aa-be90-4fa5-bf16-05da0b6478bf/download
https://repositorio.uniandes.edu.co/bitstreams/7312198a-8cfe-44c8-b692-1d9139c35d13/download
https://repositorio.uniandes.edu.co/bitstreams/8869a32c-e669-43ef-b82c-87fe8745e1b9/download
bitstream.checksum.fl_str_mv 279662eb889d5e9d2ad68a5835f9810f
aaca915139e51e4abc0637ba247a1b7b
8634b9ce1e46d4d6743367e9c9a3a126
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_ 1831927800068571136
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::14764-1Tarazona Bernal, Yeisson Steven885a7d6d-cbfa-49d9-93c1-51c3453a002d6002021-11-03T16:17:02Z2021-11-03T16:17:02Z2021http://hdl.handle.net/1992/5328924232.pdfinstname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/Actualmente se enlistan entre 500 y 2000 lenguajes de programación de propósito general y entre 5000 y 25000 lenguajes informáticos activos. Todos los días se crean nuevos lenguajes de programación. Por lo tanto, cuando uno de estos lenguajes gana popularidad uno de los posibles intereses que podemos tener nosotros como desarrolladores es tener la capacidad de analizar dicho lenguaje. Por ejemplo, para analizar la calidad de los sistemas de software, detectando el porcentaje de código copiado en un programa. Para realizar tal tarea, primero necesitamos construir un analizador sintáctico, que dado un programa escrito en un lenguaje específico pueda reconocerlo y devolver una estructura en forma de árbol que luego se use como entrada para la herramienta de análisis estático deseada. Afortunadamente, no necesitamos generar analizadores sintácticos completos para lenguajes de programación, ya que esta tarea es muy compleja. Podemos utilizar generadores de analizadores sintácticos ya existentes, como ANTLR, que dado el conjunto de reglas que definen la estructura del lenguaje, es decir, la gramática, pueden generar un analizador sintáctico eficiente y correcto para dicho lenguaje. Siendo así, nos centraremos en el desarrollo de una gramática para la última especificación del lenguaje Swift (5.4). La gramática debe cumplir con la especificación del generador de analizadores sintácticos ANTLR 4 (metalenguaje de ANTLR), con el objetivo de generar un analizador sintáctico para Swift.There are currently listed between 500 and 2,000 general purpose programming languages and between 5,000 and 25,000 active computer languages. New programming languages are created every day. Therefore, when one of these languages gains popularity one of the possible interests, that we as developers can have, is to have the capability to analyze said language. For example, to analyze the quality of software systems, detecting the percentage of copied code in a program. In order to perform such a task, we first need to build a parser, that given a program written in a specific language can recognize it and return a tree like structure that is then used as input for a desired static analysis tool. Thankfully, we do not need to generate full parsers for programming languages, as this task is very complex. We can use existing parser generators, as ANTLR, that given the set of rules that defines the structure of the language, i.e., grammar, can generate an efficient and correct parser for said language. That being so, we will focus on the development of a grammar for the latest specification of the swift language (5.4). The grammar must comply with the ANTLR 4 parser generator specification (ANTLR's meta-language), with the objective to generate a parser for swift.Ingeniero de Sistemas y ComputaciónPregrado22 páginasapplication/pdfengUniversidad de los AndesIngeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería de Sistemas y ComputaciónANTLR 4 grammar of the Swift 5 programing languageTrabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fhttp://purl.org/coar/version/c_970fb48d4fbd8a85Texthttp://purl.org/redcol/resource_type/TPLenguajes de programaciónIngeniería201617841Publicationhttps://scholar.google.es/citations?user=3iTzjQsAAAAJvirtual::14764-10000-0002-1094-9952virtual::14764-1a77ff528-fc33-44d6-9022-814f81ef407avirtual::14764-1a77ff528-fc33-44d6-9022-814f81ef407avirtual::14764-1THUMBNAIL24232.pdf.jpg24232.pdf.jpgIM Thumbnailimage/jpeg6433https://repositorio.uniandes.edu.co/bitstreams/97b339aa-be90-4fa5-bf16-05da0b6478bf/download279662eb889d5e9d2ad68a5835f9810fMD55ORIGINAL24232.pdfapplication/pdf1170846https://repositorio.uniandes.edu.co/bitstreams/7312198a-8cfe-44c8-b692-1d9139c35d13/downloadaaca915139e51e4abc0637ba247a1b7bMD51TEXT24232.pdf.txt24232.pdf.txtExtracted texttext/plain38289https://repositorio.uniandes.edu.co/bitstreams/8869a32c-e669-43ef-b82c-87fe8745e1b9/download8634b9ce1e46d4d6743367e9c9a3a126MD541992/53289oai:repositorio.uniandes.edu.co:1992/532892024-03-13 15:17:09.746http://creativecommons.org/licenses/by-nc-nd/4.0/open.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.co