PEF : Python error finder
- Autores
- Barsotti, Damián; Bordese, Andrés Matías; Hayes, Tomás
- Año de publicación
- 2018
- Idioma
- inglés
- Tipo de recurso
- documento de conferencia
- Estado
- versión publicada
- Descripción
- Ponencia presentada en la 43ª Conferencia Latinoamericana de Informática. Córdoba, Argentina, del 4 al 8 de septiembre de 2017.
Fil: Barsotti, Damián. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Fil: Bordese, Andrés Matías. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Fil: Hayes, Tomás. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
PeerCheck [1] is a lightweight library-based approach to implement symbolic execution over object-oriented languages without modifying the analyzed code. Unlike traditional symbolic execution engines, the symbolic semantics is built as an external library that runs together with the target program. They can accomplish this task thanks to special features of the python programming language which allows one to implement symbolic values with class objects. However, their approach is limited to symbolic execution on primitive types. In this work, we show an extension that enables one to perform symbolic execution with user-defined class objects. In addition, we build a new verification tool, called PEF, which implements the described technique, and our extension. This tool can be used to verify programs written in the Python programming language, and we developed in python on top of the Z3 SMT solver. We used the tool to verify its own code, showing its potential and usefulness to test programs in production. We also evaluate the tool for testing well known algorithms and data structures.
Fil: Barsotti, Damián. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Fil: Bordese, Andrés Matías. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Fil: Hayes, Tomás. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Ciencias de la Computación - Materia
-
Reliability
Verification
Unit testing
Symbolic execution
Program testing
Program debugging
Program proving
Program verification
Symbolic interpretation
Testing Python programs - Nivel de accesibilidad
- acceso abierto
- Condiciones de uso
- Repositorio
.jpg)
- Institución
- Universidad Nacional de Córdoba
- OAI Identificador
- oai:rdu.unc.edu.ar:11086/561283
Ver los metadatos del registro completo
| id |
RDUUNC_9d3f492d4088f6d7957da728c5a398d2 |
|---|---|
| oai_identifier_str |
oai:rdu.unc.edu.ar:11086/561283 |
| network_acronym_str |
RDUUNC |
| repository_id_str |
2572 |
| network_name_str |
Repositorio Digital Universitario (UNC) |
| spelling |
PEF : Python error finderBarsotti, DamiánBordese, Andrés MatíasHayes, TomásReliabilityVerificationUnit testingSymbolic executionProgram testingProgram debuggingProgram provingProgram verificationSymbolic interpretationTesting Python programsPonencia presentada en la 43ª Conferencia Latinoamericana de Informática. Córdoba, Argentina, del 4 al 8 de septiembre de 2017.Fil: Barsotti, Damián. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.Fil: Bordese, Andrés Matías. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.Fil: Hayes, Tomás. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.PeerCheck [1] is a lightweight library-based approach to implement symbolic execution over object-oriented languages without modifying the analyzed code. Unlike traditional symbolic execution engines, the symbolic semantics is built as an external library that runs together with the target program. They can accomplish this task thanks to special features of the python programming language which allows one to implement symbolic values with class objects. However, their approach is limited to symbolic execution on primitive types. In this work, we show an extension that enables one to perform symbolic execution with user-defined class objects. In addition, we build a new verification tool, called PEF, which implements the described technique, and our extension. This tool can be used to verify programs written in the Python programming language, and we developed in python on top of the Z3 SMT solver. We used the tool to verify its own code, showing its potential and usefulness to test programs in production. We also evaluate the tool for testing well known algorithms and data structures.Fil: Barsotti, Damián. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.Fil: Bordese, Andrés Matías. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.Fil: Hayes, Tomás. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.Ciencias de la Computaciónhttps://orcid.org/0009-0003-8868-32632018info:eu-repo/semantics/conferenceObjectinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_5794info:ar-repo/semantics/documentoDeConferenciaapplication/pdf1571-0661http://hdl.handle.net/11086/561283enginfo:eu-repo/semantics/openAccessreponame:Repositorio Digital Universitario (UNC)instname:Universidad Nacional de Córdobainstacron:UNC2026-05-14T10:37:02Zoai:rdu.unc.edu.ar:11086/561283Institucionalhttps://rdu.unc.edu.ar/Universidad públicaNo correspondehttp://rdu.unc.edu.ar/oai/snrdoca.unc@gmail.comArgentinaNo correspondeNo correspondeNo correspondeopendoar:25722026-05-14 10:37:03.632Repositorio Digital Universitario (UNC) - Universidad Nacional de Córdobafalse |
| dc.title.none.fl_str_mv |
PEF : Python error finder |
| title |
PEF : Python error finder |
| spellingShingle |
PEF : Python error finder Barsotti, Damián Reliability Verification Unit testing Symbolic execution Program testing Program debugging Program proving Program verification Symbolic interpretation Testing Python programs |
| title_short |
PEF : Python error finder |
| title_full |
PEF : Python error finder |
| title_fullStr |
PEF : Python error finder |
| title_full_unstemmed |
PEF : Python error finder |
| title_sort |
PEF : Python error finder |
| dc.creator.none.fl_str_mv |
Barsotti, Damián Bordese, Andrés Matías Hayes, Tomás |
| author |
Barsotti, Damián |
| author_facet |
Barsotti, Damián Bordese, Andrés Matías Hayes, Tomás |
| author_role |
author |
| author2 |
Bordese, Andrés Matías Hayes, Tomás |
| author2_role |
author author |
| dc.contributor.none.fl_str_mv |
https://orcid.org/0009-0003-8868-3263 |
| dc.subject.none.fl_str_mv |
Reliability Verification Unit testing Symbolic execution Program testing Program debugging Program proving Program verification Symbolic interpretation Testing Python programs |
| topic |
Reliability Verification Unit testing Symbolic execution Program testing Program debugging Program proving Program verification Symbolic interpretation Testing Python programs |
| dc.description.none.fl_txt_mv |
Ponencia presentada en la 43ª Conferencia Latinoamericana de Informática. Córdoba, Argentina, del 4 al 8 de septiembre de 2017. Fil: Barsotti, Damián. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina. Fil: Bordese, Andrés Matías. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina. Fil: Hayes, Tomás. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina. PeerCheck [1] is a lightweight library-based approach to implement symbolic execution over object-oriented languages without modifying the analyzed code. Unlike traditional symbolic execution engines, the symbolic semantics is built as an external library that runs together with the target program. They can accomplish this task thanks to special features of the python programming language which allows one to implement symbolic values with class objects. However, their approach is limited to symbolic execution on primitive types. In this work, we show an extension that enables one to perform symbolic execution with user-defined class objects. In addition, we build a new verification tool, called PEF, which implements the described technique, and our extension. This tool can be used to verify programs written in the Python programming language, and we developed in python on top of the Z3 SMT solver. We used the tool to verify its own code, showing its potential and usefulness to test programs in production. We also evaluate the tool for testing well known algorithms and data structures. Fil: Barsotti, Damián. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina. Fil: Bordese, Andrés Matías. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina. Fil: Hayes, Tomás. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina. Ciencias de la Computación |
| description |
Ponencia presentada en la 43ª Conferencia Latinoamericana de Informática. Córdoba, Argentina, del 4 al 8 de septiembre de 2017. |
| publishDate |
2018 |
| dc.date.none.fl_str_mv |
2018 |
| dc.type.none.fl_str_mv |
info:eu-repo/semantics/conferenceObject info:eu-repo/semantics/publishedVersion http://purl.org/coar/resource_type/c_5794 info:ar-repo/semantics/documentoDeConferencia |
| format |
conferenceObject |
| status_str |
publishedVersion |
| dc.identifier.none.fl_str_mv |
1571-0661 http://hdl.handle.net/11086/561283 |
| identifier_str_mv |
1571-0661 |
| url |
http://hdl.handle.net/11086/561283 |
| dc.language.none.fl_str_mv |
eng |
| language |
eng |
| dc.rights.none.fl_str_mv |
info:eu-repo/semantics/openAccess |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.source.none.fl_str_mv |
reponame:Repositorio Digital Universitario (UNC) instname:Universidad Nacional de Córdoba instacron:UNC |
| reponame_str |
Repositorio Digital Universitario (UNC) |
| collection |
Repositorio Digital Universitario (UNC) |
| instname_str |
Universidad Nacional de Córdoba |
| instacron_str |
UNC |
| institution |
UNC |
| repository.name.fl_str_mv |
Repositorio Digital Universitario (UNC) - Universidad Nacional de Córdoba |
| repository.mail.fl_str_mv |
oca.unc@gmail.com |
| _version_ |
1865181460690894848 |
| score |
13.115601 |