Portable C Compiler

Portable C Compiler
Portable C Compiler
Entwickler PCC Team
Aktuelle Version 1.0
(1. April 2011)
Betriebssystem UNIX, OpenBSD, NetBSD, GNU/Linux, u. a.
Kategorie Compiler
Lizenz BSD
pcc-Website

Der Portable C Compiler (auch als pcc und pccm – portable C compiler machine – bekannt) ist einer der ersten Compiler für die Programmiersprache C; er wurde Mitte der 1970er Jahre[1] von Stephen C. Johnson, Angestellter der Bell Labs, entwickelt und basiert in Teilen auf Arbeiten von Alan Snyder aus dem Jahre 1973.[2][3]

Inhaltsverzeichnis

Geschichte

pcc war für seine Zeit prägend, da er einer der ersten Compiler war, die einfach angepasst werden konnten, um Maschinencode für verschiedene Architekturen zu erzeugen. Zu Beginn der 1980er basierte die Mehrheit der C-Compiler auf pcc[4]; die Lebensdauer von pcc war überaus lang – so wurde er 1990 noch mit 4.3BSD-Reno ausgeliefert – bis schließlich mit Auslieferung von 4.4BSD auf den GNU C Compiler umgestellt wurde.

Die wesentlichen Eigenschaften (und damit auch maßgeblich für seinen Erfolg) von pcc sind Plattformunabhängigkeit und gute Möglichkeiten des Debuggens:

  • Das maßgebliche Design des Compilers wurde so ausgelegt, dass nur wenige Teile seiner Quellen maschinenspezifisch waren.
  • Er ist sehr unempfindlich gegenüber Syntaxfehlern und erstellt keine ungültigen Programme.
  • Er isolierte maschinenspezifische Programmteile, die manuell in Assembler des jeweiligen Zieles programmiert werden konnten.
  • Bereits der erste Compilerdurchlauf war selbstoptimierend.

Alle diese Eigenschaften waren zur damaligen Zeit völlig neu; der erste C-Compiler (geschrieben von Dennis Ritchie) nutzte den rekursiven Abstieg, war stark an die Architektur der PDP-11 gebunden und benötigte einen weiteren, maschinenspezifischen Durchlauf zur Optimierung des zu erzeugenden Codes. Im Gegensatz dazu stand beispielsweise Johnsons multi-pass compiler, der Speicherzugriffe der erzeugten Programmteile analysierte und Code erzeugte, der ein Minimum an Speicherzugriffen aufwies.

Gegenwärtiger Entwicklungsstand

Zurzeit erlebt pcc eine Renaissance: Basierend auf den Arbeiten von S. C. Johnson entwickelt ein Team unter Führung von Anders Magnusson den Compiler weiter, der unter der BSD-Lizenz steht; besonderen Anklang finden diese Bemühungen bei den Entwicklern von OpenBSD, welche den bisher verwendeten GNU C Compiler vor allem aus Gründen der Qualitätssicherung und lizenzrechtlichen Bedenken ersetzen möchten.

Magnusson selbst schreibt:[5]

“The big benefit of it (apart from that it's BSD licensed, for license geeks :-) is that it is fast, 5-10 times faster than gcc, while still producing reasonable code … it is also quite simple to port.”

„Der große Vorteil [von pcc] (neben der Tatsache, dass er BSD-lizenziert ist) ist, dass er fünf- bis zehnmal schneller ist als gcc, wobei er trotzdem annehmbaren Code erzeugt. […] Zudem ist er recht einfach zu portieren.“

In einem Interview mit Jem Matzan umrissen Theo de Raadt und Otto Moerbeek im Oktober 2007 die nähere Zukunft von pcc, speziell hinsichtlich seiner Integration in OpenBSD.[6] Der pcc-Entwickler Anders „Ragge“ Magnusson war bereits am 5. Oktober 2007 im Gespräch mit BSDtalk.[7]

Literatur

  • Johnson, S.C. (1978). „A portable compiler: theory and practice“. Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages. Tucson, Arizona. pp. 97–104. Online-Ausgabe bei ACM.
  • Ritchie, Dennis M. (1993). „The development of the C language“. The second ACM SIGPLAN conference on History of programming languages. Cambridge, Massachusetts. pp. 201–208. Online-Ausgabe.
  • Snyder, A. (1975). „A Portable Compiler for the Language C“. Master’s Thesis. M.I.T., Cambridge, Mass. Online-Ausgabe.
  • Johnson, S.C. (1981). „A Tour Through the Portable C Compiler“. Unix Programmer's Manual, 7th edition, Volume 2, ISBN 0-03-061743-X. Tour online.

Einzelnachweise

  1. A portable compiler: theory and practice, Stephen C. Johnson, 1978
  2. A portable compiler for the language C, Snyder, A., 1975
  3. A Tour Through the Portable C Compiler, Stephen C. Johnson, 1981
  4. The Development of the C Language, Dennis M. Ritchie
  5. Undeadly: BSD Licensed PCC Compiler Imported; Mike Erdely, 15. September 2007
  6. The Jem Report: More on OpenBSD's new compiler; Jem Matzan, 15. Oktober 2007
  7. bsdtalk131 – PCC with Anders „Ragge“ Magnusson

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Portable C Compiler — Saltar a navegación, búsqueda Portable C Compiler pcc.ludd.ltu.se/ Información general Diseñado por Stephen C. Johnson Última ver …   Wikipedia Español

  • Portable C Compiler — Infobox Software name = Portable C Compiler caption = developer = latest release version = 0.9.9 latest release date = release date|2008|01|27 latest preview version = latest preview date = operating system = Unix like programming language = C… …   Wikipedia

  • Portable C Compiler — У этого термина существуют и другие значения, см. PCC (значения). Portable C Compiler Тип C Компилятор Написана на C Операционная система Unix like Последняя версия 1.0.0 (01.04.2011) Лицензия …   Википедия

  • Portable Standard Lisp — (PSL) is a tail recursive dynamically bound dialect of Lisp inspired by its predecessor, Standard Lisp and the Portable Lisp Compiler. It was developed by researchers at the University of Utah in 1980, which released PSL 3.1; development was… …   Wikipedia

  • Compiler optimization — is the process of tuning the output of a compiler to minimize or maximize some attributes of an executable computer program. The most common requirement is to minimize the time taken to execute a program; a less common one is to minimize the… …   Wikipedia

  • Compiler — This article is about the computing term. For the anime, see Compiler (anime). A diagram of the operation of a typical multi language, multi target compiler A compiler is a computer program (or set of programs) that transforms source code written …   Wikipedia

  • Portable Executable — Not to be confused with Portable application. Portable Executable Filename extension .cpl, .exe, .dll, .ocx, .sys, .scr, .drv Developed by Microsoft Type of format Binary, executable, object, shared libraries …   Wikipedia

  • Portable Software — Als portable Software (vom lateinischen „portare“ für „tragen“ oder „mit sich tragen“) wird Software bezeichnet, welche ohne weitere Anpassungen oder Installationen auf verschiedenen Computern ausgeführt werden kann. Portable Software kann so z.B …   Deutsch Wikipedia

  • Portable Game Notation — Infobox file format extension = .pgn mime = application/x chess pgn (unregistered)Portable Game Notation (PGN) is a computer processible format for recording chess games (both the moves and related data); many chess programs recognize this… …   Wikipedia

  • GNU C-Compiler — GNU Compiler Collection Entwickler: GCC Team Aktuelle Version: 4.4.0 (21. April 2009) …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”