Portable C

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Portable C - překladač
Aktuální verze 1.0 (1. dubna 2011)
Operační systém Unix
Vyvíjeno v C (programovací jazyk)
Typ softwaru Překladač
Licence BSD licence
Web http://pcc.ludd.ltu.se/

Překladač Portable C, také známý jako pcc nebo někdy pccm (portable C compiler machine), je raný překladač pro programovací jazyk C, který napsal Stephen C. Johnson v Bellových laboratořích v polovině 70. let 20. století.[1] Zčásti je založen na nápadech Alana Snydera z roku 1973.

Byl to jeden z prvních kompilátorů, kde se mohl výstupní kód snadno přizpůsobovat různým počítačovým architekturám. Svůj debut si odbyl ve Version 7 Unix a byl dodáván jako součást BSD az do roku 1994, kdy vyšla verze 4.4BSD a byl nahrazen překladačem GCC. Ve své době byl velice rozšířený a to až natolik, že na počátku 80 let byla většina kompilátorů založena právě něm.[2] Anders Magnusson and Peter A Jonsson obnovili vývoj pcc v roce 2007 přepsáním do podporovanějšího C99.[3]

Vlastnosti[editovat | editovat zdroj]

Klíčem k úspěchu pcc byly jeho přenositelnost a lepší diagnostické schopnosti. Překladač byl navržen tak, že jen málo z jeho zdrojových souborů bylo závislých na konkrétním stroji. Prováděl poměrně robustní kontrolu syntaktických chyb a důkladnější kontrolu platnosti než jeho současníci.

První kompilátor C napsal Dennis Ritchie, který používal rekurzivní-sestupný parser. Naproti tomu Johnsonův pccm je založen na základě yacc parseru a použil obecnější model cílového stroje. Oba překladače produkovaly cílově specifický assembler kód, který se shromažďuje k následnému propojení objektů moduly.

Aktuální verze[editovat | editovat zdroj]

Nová verze pcc na základě originálu Steva Johnsona, je nyní udržována Andersem Magnussonen.[3] Překladač je poskytována pod BSD licencí a jeho vývoj je financován neziskovou organizaci s názvem BSD Fund.

Tato nová verze byla přidána do NetBSD a OpenBSD v září 2007.[4] Objevovaly se spekulace, že by nakonec mohl nahradit kompilátor gcc v rámci BSD operačních systémů,[5] ale Theo de Raadt tvrdí, že pcc ještě není připraven být náhradou gcc a odstranění gcc není prioritou.[6] PCC verze 1.0 byla nakonec vypuštěna 1. dubna 2011. Tato verze podporuje architektury procesorů x86 a x64 a běží na NetBSD, OpenBSD, FreeBSD, různých distribucích systému Linux a Microsoft Windows.[7] Další vývoj, včetně rozšíření podpory pro více architektur, FORTRAN 77 a C + + stále pokračuje.

Reference[editovat | editovat zdroj]

  1. Johnson, S.C.. A portable compiler: theory and practice [online]. . S. 97–104. Dostupné online. (anglicky) 
  2. Ritchie, Dennis M.. The development of the C language [online]. 1993, [cit. 2008-12-30]. S. 201–208. At the start of the decade, nearly every compiler was based on Johnson's pcc; by 1985 there were many independently-produced compiler products.. Dostupné online. (anglicky) 
  3. a b pcc history [online]. 2010-06-21, [cit. 2012-06-26]. Dostupné online. (anglicky) 
  4. MOERBEEK, Otto. CVS: cvs.openbsd.org: src [online]. 2007-09-15. Dostupné online. (anglicky) 
  5. GCC Compiler Finally Supplanted by PCC? [online]. 2007-09-17, [cit. 2011-12-17]. Dostupné online. (anglicky) 
  6. MATZAN, Jem. More on OpenBSD’s new compiler [online]. 2007-10-15, [cit. 2011-12-17]. But that’s never really been the agenda, see. Some people think we hate GNU code. But the thing is we hate large code, and buggy code that upstream does not maintain. That’s the real problem… gcc gets about 5-6% slower every release, has new bugs, generates crappy code, and drives us nuts. This is just an attempt to see if something better can show up.. Dostupné online. (anglicky) 
  7. BSD Fund: pcc fund [online]. 2011-04-01, [cit. 2012-06-26]. Dostupné online. (anglicky)