Portable C Compiler

El Portable C Compiler o Compilador de C Portable (también conocido como pcc o, algunas veces, como pccm - máquina de compilador de C portable) fue uno de los primeros compiladores para el lenguaje de programación C escrito por Stephen C. Johnson de los Laboratorios Bell a mediados de los 70, basado, en parte, en las ideas de un trabajo previo de Alan Snyder en 1973.

Portable C Compiler
Información general
Tipo de programa Compilador de C
Autor Stephen C. Johnson
Licencia Licencia BSD
Información técnica
Programado en C
Versiones
Última versión estable 1.1.0 ( 10 de diciembre de 2014)
Última versión en pruebas 1.01 de abril de 2011
Enlaces

Fue muy influyente en su tiempo como uno de los primeros compiladores que podía ser fácilmente adaptado con el fin de generar código para diferentes arquitecturas de computadora. A principios de los 80, la mayoría de los compiladores de C estaban basados en pcc. El compilador ha tenido una larga vida, siendo incluido desde la versión 4.3BSD-Reno en 1990 hasta que el compilador de C de GNU lo substituyó en 4.4BSD.

Las claves para el éxito del pcc fueron sus capacidades de portabilidad y diagnóstico.

  • El compilador fue diseñado de tal manera que solamente unos pocos ficheros de su código fuente eran dependientes de la máquina.
  • Era robusto ante los errores de sintaxis de forma que rehusaba compilar programas inválidos.
  • Aislaba el código dependiente de la máquina que era necesario reescribir manualmente en lenguaje ensamblador de la máquina de destino.
  • Auto-optimizaba en la primera pasada.

Estas características eran novedosas en los tiempos en los que pcc fue escrito. El primer compilador de C, escrito por Dennis Ritchie usando como método un analizador sintáctico descendente recursivo estaba fuertemente ligado al PDP-11, y dependía de un optimizador -dependiente de la máquina- que mejoraba el código en una segunda pasada. Por el contrario, el compilador multi-pasada de Johnson tenía en cuenta el número de accesos a memoria en las secuencias de código de cada expresión generando el código con el menor número de accesos a memoria.

Versión actual

editar

Una nueva versión del pcc basado en el original de S. C. Johnson es mantenida por Anders Magnusson. El compilador está siendo desarrollado bajo una Licencia BSD.

«...El gran beneficio de ello (aparte de la licencia BSD para los geeks de las licencias :-) es que es rápido, entre cinco y diez veces más rápido que gcc, a la vez que sigue generando código razonable... también es bastante sencillo de portar...»
Magnusson

Esta nueva versión aparece, desde septiembre de 2007, en el pkgsrc de NetBSD y los árboles de fuentes de OpenBSD y, posteriormente formará parte de los fuentes de NetBSD. Existen discusiones sobre si, finalmente, debería reemplazar al compilador C de GNU en los sistemas operativos basados en BSD.

Enlaces externos

editar