Portable C Compiler

The Portable C Compiler ( pcc and also as PCCM - portable C compiler machine - known) is one of the first compiler for the C programming language; he was the mid-1970s by Stephen C. Johnson, an employee of Bell Labs, and is based in part on the work of Alan Snyder from the year 1973.

History

Pcc was formative for his time, as he was one of the first compiler, which could be easily adapted to generate machine code for different architectures. At the beginning of 1980 based the majority of the C compiler on pcc; the life of pcc was very long - so in 1990 he was still with 4.3BSD - Reno delivered - was changed to finally delivery of 4.4BSD on the GNU C compiler.

The essential properties (and thus also crucial for its success) of pcc are platform independence and good ways of debugging:

  • The definitive design of the compiler has been designed so that only a few parts of his sources were machine- specific.
  • He is very sensitive to syntax errors and creates no invalid programs.
  • He isolated machine-specific parts of the program that could be manually programmed in assembler the specific objectives.
  • Already the first compiler pass was self-optimizing.

All these features were new at that time; the first C compiler (written by Dennis Ritchie ) used the recursive descent, was strongly tied to the architecture of the PDP -11 and needed a further machine-specific cycle to optimize the code to be generated. In contrast, for example, was Johnson's multi-pass compiler, the memory accesses of the program parts produced analyzed and generated code, which had a minimum of memory accesses.

Current state of development

Currently pcc experiencing a renaissance: Based on the work of SC Johnson developed a team led by Anders Magnusson on the compiler, which is under the BSD license; especially valuable find these efforts the developers of OpenBSD, which would replace the GNU C compiler used so far primarily for reasons of quality assurance and licensing concerns.

Magnusson himself writes:

"The big benefit of it ( apart from it's BSD licensed did, for geeks :-) license is did it is almost 5-10 times faster than gcc, still Producing reasonable code ... it is quite simple to port. So while "

"The big advantage [ of pcc ] ( besides the fact that it is BSD - licensed ) is that it is five to ten times faster than gcc, generating still acceptable code. [ ... ] He is also quite easy to port. "

In an interview with Jem Matzan Theo de Raadt and Otto Moerbeek outlined in October 2007 in the near future of pcc, especially in terms of its integration into OpenBSD. The pcc developer Anders " Ragge " Magnusson was already on 5 October 2007 in an interview with bsdtalk.

657000
de