Comparing python programs using abstract syntax trees

"Determinar si dos programas son similares no es una tarea simple. En este trabajo exploramos e implementamos un acercamiento hacia determinar qué tan similares son dos programas de Python usando arboles sintácticos abstractos similar al trabajo realizado por Avery et al. [1]. Luego se usó esta...

Full description

Autores:
Salazar Paredes, Pedro
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2020
Institución:
Universidad de los Andes
Repositorio:
Séneca: repositorio Uniandes
Idioma:
eng
OAI Identifier:
oai:repositorio.uniandes.edu.co:1992/44754
Acceso en línea:
http://hdl.handle.net/1992/44754
Palabra clave:
Python (Lenguaje de programación para computadores)
Programación (Computadores electrónicos)
Lingüística computacional
Ingeniería
Rights
openAccess
License
http://creativecommons.org/licenses/by-nc-nd/4.0/
id UNIANDES2_8fb2caa11f45c5f474ac0cc93bfaa039
oai_identifier_str oai:repositorio.uniandes.edu.co:1992/44754
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_abf2Sánchez Puccini, Mario Eduardovirtual::7820-1Salazar Paredes, Pedro7cf55ab3-e9e2-47e3-81ee-868e341af0f75002020-09-03T15:00:44Z2020-09-03T15:00:44Z2020http://hdl.handle.net/1992/44754u830947.pdfinstname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/"Determinar si dos programas son similares no es una tarea simple. En este trabajo exploramos e implementamos un acercamiento hacia determinar qué tan similares son dos programas de Python usando arboles sintácticos abstractos similar al trabajo realizado por Avery et al. [1]. Luego se usó esta implementación para analizar los programas previamente recopilados y clasificados por la herramienta Senecode con la intención de poder dar retroalimentación automática significativa." -- Tomado del Formato de Documento de Grado."Determining if two programs are similar is not an easy challenge. In this work we explore and implement a (limited) approach towards determining how similar two Python programs are by using abstract syntax trees in an approach similar to the one proposed by Avery et al. [1]. Then we used this implementation to analyze a large code-base (Senecode) of already classified programs in order to find patterns and eventually provide useful automatic feedback." -- Tomado del Formato de Documento de Grado.Ingeniero de Sistemas y ComputaciónPregrado34 hojasapplication/pdfengUniversidad de los AndesIngeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería de Sistemas y Computacióninstname:Universidad de los Andesreponame:Repositorio Institucional SénecaComparing python programs using abstract syntax treesTrabajo 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/TPPython (Lenguaje de programación para computadores)Programación (Computadores electrónicos)Lingüística computacionalIngenieríaPublicationhttps://scholar.google.es/citations?user=M1CE-nIAAAAJvirtual::7820-10000-0002-1611-6281virtual::7820-1https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000741906virtual::7820-1dfd78a56-c9fb-4659-828f-6a22f5f1bd84virtual::7820-1dfd78a56-c9fb-4659-828f-6a22f5f1bd84virtual::7820-1THUMBNAILu830947.pdf.jpgu830947.pdf.jpgIM Thumbnailimage/jpeg4739https://repositorio.uniandes.edu.co/bitstreams/29f209d1-2998-4ce7-9d1a-2963635435e2/downloaddf89c7380494bfef10a9c7806690a121MD55ORIGINALu830947.pdfapplication/pdf1334719https://repositorio.uniandes.edu.co/bitstreams/094f3d03-e8d5-4c3c-a8c2-1f251930b5dd/download4a30aaedd823636679eef43a2e6ff588MD51TEXTu830947.pdf.txtu830947.pdf.txtExtracted texttext/plain49024https://repositorio.uniandes.edu.co/bitstreams/f3666743-df24-4d9d-b05c-c56b9cf021d6/download69716414822c2598bf4f98eec190b4c4MD541992/44754oai:repositorio.uniandes.edu.co:1992/447542024-03-13 13:31:36.37http://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 Comparing python programs using abstract syntax trees
title Comparing python programs using abstract syntax trees
spellingShingle Comparing python programs using abstract syntax trees
Python (Lenguaje de programación para computadores)
Programación (Computadores electrónicos)
Lingüística computacional
Ingeniería
title_short Comparing python programs using abstract syntax trees
title_full Comparing python programs using abstract syntax trees
title_fullStr Comparing python programs using abstract syntax trees
title_full_unstemmed Comparing python programs using abstract syntax trees
title_sort Comparing python programs using abstract syntax trees
dc.creator.fl_str_mv Salazar Paredes, Pedro
dc.contributor.advisor.none.fl_str_mv Sánchez Puccini, Mario Eduardo
dc.contributor.author.none.fl_str_mv Salazar Paredes, Pedro
dc.subject.armarc.es_CO.fl_str_mv Python (Lenguaje de programación para computadores)
Programación (Computadores electrónicos)
Lingüística computacional
topic Python (Lenguaje de programación para computadores)
Programación (Computadores electrónicos)
Lingüística computacional
Ingeniería
dc.subject.themes.none.fl_str_mv Ingeniería
description "Determinar si dos programas son similares no es una tarea simple. En este trabajo exploramos e implementamos un acercamiento hacia determinar qué tan similares son dos programas de Python usando arboles sintácticos abstractos similar al trabajo realizado por Avery et al. [1]. Luego se usó esta implementación para analizar los programas previamente recopilados y clasificados por la herramienta Senecode con la intención de poder dar retroalimentación automática significativa." -- Tomado del Formato de Documento de Grado.
publishDate 2020
dc.date.accessioned.none.fl_str_mv 2020-09-03T15:00:44Z
dc.date.available.none.fl_str_mv 2020-09-03T15:00:44Z
dc.date.issued.none.fl_str_mv 2020
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/44754
dc.identifier.pdf.none.fl_str_mv u830947.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/44754
identifier_str_mv u830947.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 34 hojas
dc.format.mimetype.es_CO.fl_str_mv application/pdf
dc.publisher.es_CO.fl_str_mv Universidad de los Andes
dc.publisher.program.es_CO.fl_str_mv 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/29f209d1-2998-4ce7-9d1a-2963635435e2/download
https://repositorio.uniandes.edu.co/bitstreams/094f3d03-e8d5-4c3c-a8c2-1f251930b5dd/download
https://repositorio.uniandes.edu.co/bitstreams/f3666743-df24-4d9d-b05c-c56b9cf021d6/download
bitstream.checksum.fl_str_mv df89c7380494bfef10a9c7806690a121
4a30aaedd823636679eef43a2e6ff588
69716414822c2598bf4f98eec190b4c4
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_ 1812133921357299712