CompCert

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 2 de enero de 2022; las comprobaciones requieren 2 ediciones .
CompCert
Tipo de Compilador
Autor Xavier Leroy , INRIA
Escrito en cam _ _
Primera edición 3 de abril de 2008
plataforma de hardware Software multiplataforma
ultima versión
Licencia gratis para uso no comercial [1] ; licencias comerciales de AbsInt
Sitio web compcert.inria.fr

CompCert es un proyecto para crear compiladores verificados oficialmente. El proyecto desarrolló el compilador CompCert C para el lenguaje C (estándares ISO C90/ANSI C con algunas restricciones menores y extensiones separadas inspiradas en estándares posteriores), y el sistema de verificación Coq se escribió y demostró por completo . El principal desarrollador es Xavier Leroy . Este compilador tiene una máquina para comprobar que el código generado se comporta igual que el código fuente. El compilador le permite generar código de máquina para las arquitecturas de procesador PowerPC , ARM y x86 .

Motivación

Debido a que los compiladores son un software muy complejo, a menudo sufren muchos errores [3] . Por ejemplo, no pueden generar código que coincida con el código fuente. Estos errores pueden tener consecuencias muy graves en áreas críticas. Por lo tanto, el objetivo de CompCert es crear un compilador formalmente verificado con garantías matemáticas.

Implementación

El código generado por CompCert es aproximadamente el doble de rápido que el generado por GCC sin optimización y un poco más lento que el generado con niveles de optimización más altos. [cuatro]

Véase también

Notas

  1. Copia archivada . Consultado el 12 de diciembre de 2016. Archivado desde el original el 13 de agosto de 2011.
  2. https://github.com/AbsInt/CompCert/releases/tag/v3.11
  3. Copia archivada . Consultado el 12 de diciembre de 2016. Archivado desde el original el 6 de julio de 2017.
  4. CompCert: el compilador CompCert C. Fecha de acceso: 12 de diciembre de 2016. Archivado desde el original el 3 de diciembre de 2015.

Enlaces