CCMini: a prototype of certifying compiler based on annotated abstract syntax trees

Autores
Bavera, Francisco; Nordio, Martín; Medel, Ricardo; Aguirre, Jorge; Baum, Gabriel Alfredo
Año de publicación
2005
Idioma
inglés
Tipo de recurso
documento de conferencia
Estado
versión publicada
Descripción
Certifying compilers use static information of a program to verify that it complies with certain security properties and to generate certified code. To do so, those compilers translate the source program into an annotated program written in some intermediate language. These annotations are used to verify the generated code. Given a source program, a certifying compiler will produce object code, annotations, and a proof that the code comply with the customer’s security specifications. Thus, certifying compilers can automatically produce the security evidence required to establish a Proof-Carrying Code (PCC) setting. In this work we present CCMini, a certifying compiler for a simple subset of the language C. This compiler guarantees that compiled programs do not read uninitialized variables and do not access to undefined array positions. The verification process is carried on abstract syntactic trees by using static analysis techniques; in particular, control analysis and data analysis are used.
II Workshop de Ingeniería de Software y Bases de Datos (WISBD)
Red de Universidades con Carreras en Informática (RedUNCI)
Materia
Ciencias Informáticas
Verification
Lenguajes de Programación
Compilers
Security
Nivel de accesibilidad
acceso abierto
Condiciones de uso
http://creativecommons.org/licenses/by-nc-sa/2.5/ar/
Repositorio
SEDICI (UNLP)
Institución
Universidad Nacional de La Plata
OAI Identificador
oai:sedici.unlp.edu.ar:10915/23081

id SEDICI_5457cfa9d1283846cc54b73b2a743a12
oai_identifier_str oai:sedici.unlp.edu.ar:10915/23081
network_acronym_str SEDICI
repository_id_str 1329
network_name_str SEDICI (UNLP)
spelling CCMini: a prototype of certifying compiler based on annotated abstract syntax treesBavera, FranciscoNordio, MartínMedel, RicardoAguirre, JorgeBaum, Gabriel AlfredoCiencias InformáticasVerificationLenguajes de ProgramaciónCompilersSecurityCertifying compilers use static information of a program to verify that it complies with certain security properties and to generate certified code. To do so, those compilers translate the source program into an annotated program written in some intermediate language. These annotations are used to verify the generated code. Given a source program, a certifying compiler will produce object code, annotations, and a proof that the code comply with the customer’s security specifications. Thus, certifying compilers can automatically produce the security evidence required to establish a Proof-Carrying Code (PCC) setting. In this work we present CCMini, a certifying compiler for a simple subset of the language C. This compiler guarantees that compiled programs do not read uninitialized variables and do not access to undefined array positions. The verification process is carried on abstract syntactic trees by using static analysis techniques; in particular, control analysis and data analysis are used.II Workshop de Ingeniería de Software y Bases de Datos (WISBD)Red de Universidades con Carreras en Informática (RedUNCI)2005-10info:eu-repo/semantics/conferenceObjectinfo:eu-repo/semantics/publishedVersionObjeto de conferenciahttp://purl.org/coar/resource_type/c_5794info:ar-repo/semantics/documentoDeConferenciaapplication/pdfhttp://sedici.unlp.edu.ar/handle/10915/23081enginfo:eu-repo/semantics/openAccesshttp://creativecommons.org/licenses/by-nc-sa/2.5/ar/Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Argentina (CC BY-NC-SA 2.5)reponame:SEDICI (UNLP)instname:Universidad Nacional de La Platainstacron:UNLP2025-09-29T10:55:20Zoai:sedici.unlp.edu.ar:10915/23081Institucionalhttp://sedici.unlp.edu.ar/Universidad públicaNo correspondehttp://sedici.unlp.edu.ar/oai/snrdalira@sedici.unlp.edu.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:13292025-09-29 10:55:20.905SEDICI (UNLP) - Universidad Nacional de La Platafalse
dc.title.none.fl_str_mv CCMini: a prototype of certifying compiler based on annotated abstract syntax trees
title CCMini: a prototype of certifying compiler based on annotated abstract syntax trees
spellingShingle CCMini: a prototype of certifying compiler based on annotated abstract syntax trees
Bavera, Francisco
Ciencias Informáticas
Verification
Lenguajes de Programación
Compilers
Security
title_short CCMini: a prototype of certifying compiler based on annotated abstract syntax trees
title_full CCMini: a prototype of certifying compiler based on annotated abstract syntax trees
title_fullStr CCMini: a prototype of certifying compiler based on annotated abstract syntax trees
title_full_unstemmed CCMini: a prototype of certifying compiler based on annotated abstract syntax trees
title_sort CCMini: a prototype of certifying compiler based on annotated abstract syntax trees
dc.creator.none.fl_str_mv Bavera, Francisco
Nordio, Martín
Medel, Ricardo
Aguirre, Jorge
Baum, Gabriel Alfredo
author Bavera, Francisco
author_facet Bavera, Francisco
Nordio, Martín
Medel, Ricardo
Aguirre, Jorge
Baum, Gabriel Alfredo
author_role author
author2 Nordio, Martín
Medel, Ricardo
Aguirre, Jorge
Baum, Gabriel Alfredo
author2_role author
author
author
author
dc.subject.none.fl_str_mv Ciencias Informáticas
Verification
Lenguajes de Programación
Compilers
Security
topic Ciencias Informáticas
Verification
Lenguajes de Programación
Compilers
Security
dc.description.none.fl_txt_mv Certifying compilers use static information of a program to verify that it complies with certain security properties and to generate certified code. To do so, those compilers translate the source program into an annotated program written in some intermediate language. These annotations are used to verify the generated code. Given a source program, a certifying compiler will produce object code, annotations, and a proof that the code comply with the customer’s security specifications. Thus, certifying compilers can automatically produce the security evidence required to establish a Proof-Carrying Code (PCC) setting. In this work we present CCMini, a certifying compiler for a simple subset of the language C. This compiler guarantees that compiled programs do not read uninitialized variables and do not access to undefined array positions. The verification process is carried on abstract syntactic trees by using static analysis techniques; in particular, control analysis and data analysis are used.
II Workshop de Ingeniería de Software y Bases de Datos (WISBD)
Red de Universidades con Carreras en Informática (RedUNCI)
description Certifying compilers use static information of a program to verify that it complies with certain security properties and to generate certified code. To do so, those compilers translate the source program into an annotated program written in some intermediate language. These annotations are used to verify the generated code. Given a source program, a certifying compiler will produce object code, annotations, and a proof that the code comply with the customer’s security specifications. Thus, certifying compilers can automatically produce the security evidence required to establish a Proof-Carrying Code (PCC) setting. In this work we present CCMini, a certifying compiler for a simple subset of the language C. This compiler guarantees that compiled programs do not read uninitialized variables and do not access to undefined array positions. The verification process is carried on abstract syntactic trees by using static analysis techniques; in particular, control analysis and data analysis are used.
publishDate 2005
dc.date.none.fl_str_mv 2005-10
dc.type.none.fl_str_mv info:eu-repo/semantics/conferenceObject
info:eu-repo/semantics/publishedVersion
Objeto de conferencia
http://purl.org/coar/resource_type/c_5794
info:ar-repo/semantics/documentoDeConferencia
format conferenceObject
status_str publishedVersion
dc.identifier.none.fl_str_mv http://sedici.unlp.edu.ar/handle/10915/23081
url http://sedici.unlp.edu.ar/handle/10915/23081
dc.language.none.fl_str_mv eng
language eng
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
http://creativecommons.org/licenses/by-nc-sa/2.5/ar/
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Argentina (CC BY-NC-SA 2.5)
eu_rights_str_mv openAccess
rights_invalid_str_mv http://creativecommons.org/licenses/by-nc-sa/2.5/ar/
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Argentina (CC BY-NC-SA 2.5)
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:SEDICI (UNLP)
instname:Universidad Nacional de La Plata
instacron:UNLP
reponame_str SEDICI (UNLP)
collection SEDICI (UNLP)
instname_str Universidad Nacional de La Plata
instacron_str UNLP
institution UNLP
repository.name.fl_str_mv SEDICI (UNLP) - Universidad Nacional de La Plata
repository.mail.fl_str_mv alira@sedici.unlp.edu.ar
_version_ 1844615811882287104
score 13.070432