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
- Institución
- Universidad Nacional de La Plata
- OAI Identificador
- oai:sedici.unlp.edu.ar:10915/23081
Ver los metadatos del registro completo
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 |