Portable C Compiler

Portable C Compiler
Original author(s)Stephen C. Johnson
Developer(s)AT&T Bell Laboratories
Initial release1979; 46 years ago (1979)
Stable release
1.1.0 / December 10, 2014; 10 years ago (2014-12-10)
Written inC
Operating systemUnix and Unix-like
TypeC Compiler
LicenseBSD License
Websiteweb.archive.org/web/20231212090621/http://pcc.ludd.ltu.se/ Edit this at Wikidata

The Portable C Compiler (also known as pcc or sometimes pccm - portable C compiler machine) is an early compiler for the C programming language written by Stephen C. Johnson of Bell Labs in the mid-1970s,[1] based in part on ideas proposed by Alan Snyder in 1973,[2][3] and "distributed as the C compiler by Bell Labs... with the blessing of Dennis Ritchie."[4]

Being one of the first compilers that could easily be adapted to output code for different computer architectures, the compiler had a long life span. It debuted in Seventh Edition Unix and shipped with BSD Unix until the release of 4.4BSD in 1994, when it was replaced by the GNU C Compiler. It was very influential in its day, so much so that at the beginning of the 1980s, the majority of C compilers were based on it.[5] Anders Magnusson and Peter A Jonsson restarted development of pcc in 2007, rewriting it extensively to support the C99 standard.[6]

Features

Key features of pcc are its portability and improved diagnostic capabilities. The compiler was designed so that only a few of its source files are machine-dependent. It is relatively robust to syntax errors and performs more thorough validity checks than its contemporaries.[according to whom?]

The first C compiler, written by Dennis Ritchie, used a recursive descent parser, incorporated specific knowledge about the PDP-11, and relied on an optional machine-specific optimizer to improve the assembly language code it generated. In contrast, Johnson's pccm was based on a yacc-generated parser and used a more general target machine model. Both compilers produced target-specific assembly language code which they then assembled to produce linkable object modules.

Later versions of PCC, known within Bell Labs as "QCC" and "RCC," supported other target architecture models.[citation needed]

The language that PCC implements is an extended version of K&R C that Bjarne Stroustrup has called "Classic C", incorporating the void return type (for functions that don't return any value), enumerations and structure assignment.[4]

Current version

A new version of pcc, based on the original by Steve Johnson, is maintained[when?] by Anders Magnusson.[6] The compiler is provided under the BSD licence and its development is funded by a non-profit organization called BSD Fund. According to Magnusson:

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. <...> [I]t is also quite simple to port...

— Anders Magnusson[7]

This new version was added to the NetBSD pkgsrc and OpenBSD source trees in September 2007,[8] and later into the main NetBSD source tree.[9] There had been some speculation that it might eventually be used to supplant the GNU C Compiler on BSD-based operating systems,[10] though FreeBSD[11][12] and NetBSD[13] are both looking to Clang as a potential replacement, and Theo de Raadt of OpenBSD asserts that pcc is not ready yet to be a gcc replacement, and the disposal of gcc is not top priority.[14] On December 29, 2009, pcc became capable of building a functional x86 OpenBSD kernel image.[15]

pcc version 1.0 was released on 1 April 2011.[16] As of this release, the compiler supports x86 and x86-64 processor architectures and runs on NetBSD, OpenBSD, FreeBSD, various Linux distributions, and Microsoft Windows.[17] Further development, including support for more architectures, and FORTRAN 77 and C++ front ends, is continuing as of 2022.

PCC was removed from the OpenBSD source tree in 2012.[18] Development on it had stalled and no maintainer had stepped up to develop it into something that could make a practical alternative to GNU Compiler Collection.[19][20]

The latest version of pcc, namely 1.1.0, was released on 10 December 2014.[21]

See also

References

  1. ^ 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.: 97–104. doi:10.1145/512760.512771. S2CID 14390804.
  2. ^ Snyder, A. (1975). "A Portable Compiler for the Language C". Master's Thesis. MIT, Cambridge, Mass. Archived from the original on 2006-09-05. Retrieved 2006-07-19.
  3. ^ Johnson, S.C. (1981). A Tour Through the Portable C Compiler. Unix Programmer's Manual, 7th edition, Volume 2. Holt, Rinehart and Winston. ISBN 0-03-061743-X.
  4. ^ a b Stroustrup, Bjarne (2002). Sibling rivalry: C and C++ (PDF) (Report). AT&T Labs.
  5. ^ 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. Retrieved 2008-12-30. At the start of the decade, nearly every compiler was based on Johnson's pcc; by 1985 there were many independently-produced compiler products.
  6. ^ a b "pcc history". pcc - portable c compiler. 2010-06-21. Retrieved 2012-06-26.
  7. ^ Erdely, Mike (2007-09-15). "BSD Licensed PCC Compiler Imported". OpenBSD Journal. Retrieved 2011-12-17.
  8. ^ Moerbeek, Otto (2007-09-15). "CVS: cvs.openbsd.org: src". openbsd-cvs (Mailing list).
  9. ^ Brownlee, David (2007-09-20). "CVS commit: src/dist/pcc". source-changes (Mailing list).
  10. ^ "GCC Compiler Finally Supplanted by PCC?". /. 2007-09-17.
  11. ^ Larabel, Michael (12 May 2012). "FreeBSD 10 To Use Clang Compiler, Deprecate GCC". Phoronix. Archived from the original on 10 April 2015. Retrieved 23 April 2015.
  12. ^ Brooks, Davis (5 November 2012). "HEADS UP: Clang now the default on x86" (Mailing list). Retrieved 23 April 2015.
  13. ^ Joerg, Sonnenberger (17 October 2013). "Importing LLVM/Clang" (Mailing list). Retrieved 23 April 2015.
  14. ^ Matzan, Jem (2007-10-15). "More on OpenBSD's new compiler". The Jem Report. Archived from the original on 2012-01-04. Retrieved 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.
  15. ^ de Weerd, Paul (2009-12-29). "Call for testing: pcc and the OpenBSD kernel". OpenBSD Journal. Retrieved 2011-12-17.
  16. ^ Magnusson, Anders (2011-04-01). "1.0 Release". Portable C Compiler. Retrieved 2011-12-17.
  17. ^ "BSD Fund: pcc fund". bsdfund.org. 2011-04-01. Archived from the original on 2009-01-05. Retrieved 2012-06-26.
  18. ^ Paul Irofti (2012-04-12). "CVS: cvs.openbsd.org: src".
  19. ^ Peter Hessler (2012-06-18). "Re: Story behind PCC's removal?".
  20. ^ Miod Vallat (2013-07-31). "Compilers in OpenBSD".
  21. ^ Magnusson, Anders (2014-12-10). "1.1.0 Release". Portable C Compiler. Retrieved 2022-04-22.

Read other articles:

Sampel kleveit dari mana William Ramsay pertama kali memurnikan helium, dalam koleksi Universitas Kolese London.[1] Kleveit adalah varietas radioaktif uraninit tak murni yang mengandung uranium dan ditemukan di Norwegia. Komposisinya adalah UO2 dengan sekitar 10% dari uranium tersubstitusi oleh logam tanah jarang.[2] Dinamakan sesuai nama akhir kimiawan Swedia Per Teodor Cleve. Kleveit merupakan sumber helium yang dikenal pertama kali di bumi, yang terbentuk melalui peluruhan ...

 

Schefflera Schefflera digitata Klasifikasi ilmiah Kerajaan: Plantae Upakerajaan: Trachaeophyta Divisi: Magnoliophyta Kelas: Magnoliopsida Subkelas: Rosidae Ordo: Apiales Famili: Araliaceae Subfamili: Aralioideae Tribus: Schefflerieae Genus: ScheffleraJ.R.Forst. & G.Forst. (1775) Spesies Lihat teks Schefflera[1] ,lelepang, atau kekerongan[2] adalah genus tumbuhan berbunga dalam famili Araliaceae dengan 13 spesies asli Selandia Baru dan sebagiannya lagi berasal dari kepulau...

 

TVNDiluncurkan3 Oktober 1997 pukul 19:00PemilikGrupa TVN S.A.Pangsa pemirsa12,54% (2013, Nielsen[1])SloganWszędzie! (Everywhere!)NegaraPolandiaSitus webwww.tvn.plTelevisi InternetTVN Playerwww.tvnplayer.pl TVN (TV Nowa) adalah jaringan televisi komersial Polandia. Didirikan oleh pengusaha Polandia Mariusz Walter dan Jan Wejchert.[2] Jaringan diluncurkan pada tanggal 3 Oktober 1997. TVN dimiliki oleh TVN S.A. Group yang pada gilirannya dikendalikan oleh ITI Group, perusahaan m...

For other people named Andrew Wylie, see Andrew Wylie (disambiguation). Andrew Wylie1st President of Indiana UniversityIn office1829–1851Succeeded byAlfred Ryors3rd President of Jefferson CollegeIn office1811–1816Preceded byJames DunlapSucceeded byWilliam McMillan2nd President of Washington CollegeIn office1817–1828Preceded byMatthew BrownSucceeded byDavid Elliott Personal detailsBorn(1789-04-12)April 12, 1789Washington County, PennsylvaniaDiedNovember 11, 1851(1851-11-11) (...

 

State constituency in Penang, Malaysia Pantai Jerejak Penang constituencyPantai Jerejak (olive) on Penang IslandState constituencyLegislaturePenang State Legislative AssemblyMLA    Fahmi ZainolPHConstituency created2004First contested2004Last contested2023DemographicsElectors (2023)[1]29,890Area (km²)[2]11 Pantai Jerejak is a state constituency in Penang, Malaysia, that has been represented in the Penang State Legislative Assembly since 2004. It covers a portio...

 

Dispute over islands in the East China Sea Location of the Senkaku Islands: Uotsuri-shima (魚釣島) / Diaoyu Dao (釣魚島) Kuba-shima (久場島) / Huangwei Yu (黃尾嶼) Taishō-tō (大正島) / Chiwei Yu (赤尾嶼)Uotsuri-shima, the largest of the Senkaku Islands at 4.3 km2 (1.7 sq mi), in an aerial photograph taken in 1978 by the MLIT, the omnibus ministry which operates the Japan Coast Guard. The Senkaku Islands dispute, or Diaoyu Islands dispute, is a territorial di...

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?: コルク – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2017年4月) コルクを打ち抜いて作った瓶の栓 コルク(木栓、�...

 

Campionati italiani di sci alpino 2002 Competizione Campionati italiani di sci alpino Sport Sci alpino Edizione Organizzatore Federazione italiana sport invernali Date dal 20 marzo 2002al 23 marzo 2002 Luogo  ItaliaPiancavallo Discipline Supergigante, slalom gigante, slalom speciale Cronologia della competizione 2001 2003 Manuale I Campionati italiani di sci alpino 2002 si sono svolti a Piancavallo dal 20 al 23 marzo. Il programma ha incluso gare di supergigante, slalom gigante ...

 

Al Jarreau Alwyn Lopez Al Jarreau (12 Maret 1940 – 12 Februari 2017) merupakan seorang penyanyi berkebangsaan Amerika Serikat. Dia mendapat penghargaan tujuh Nominasi Academy Award versi musik. Dia berirama jazz, pop dan R&B. Dilahirkan di Milwaukee, Wisconsin. Dia merupakan lulusan Universitas Iowa pada tahun 1962. Diskografi The Masquerade Is Over — 1973, Reprise We Got By — 1975, Warner Bros. Records Glow — 1976, Warner Bros. Records (Pop # 132, R&B # 30, Jazz...

The evolution of United States standard time zone boundaries from 1919 to 2024 in five-year increments. Plaque in Chicago marking the creation of the four time zones of the continental US in 1883 Colorized 1913 time zone map of the United States, showing boundaries very different from today Map of U.S. time zones during between April 2, 2006, and March 11, 2007. The current situation is different only in that six Indiana counties have since been moved from the Central time zone to the Easter...

 

Anisha RosnahLahirAnisha Rosnah binti Adam6 November 1994 (umur 29)London, Britania RayaPendidikanUniversity of BathComplutense University of MadridPekerjaanEnterpreneurSuami/istriMateen Bolkiah dari Brunei ​ ​(m. 2024)​Orang tuaIvica Adam Kalebic (bapak)Siti Mariam Isa (ibu) Anisha Rosnah Binti Adam (gelar: Yang Amat Mulia Pengiran Anak Isteri Anisha Rosnah binti Adam; lahir 6 November 1994) adalah seorang anggota Keluarga kerajaan Brunei dan istri da...

 

Untuk wilayah Kanto dalam serial Pokémon, lihat Semesta Pokémon § Kanto. Wilayah Kantō 関東地方WilayahWilayah Kantō di JepangLuas • Total32.423,90 km2 (12,518,94 sq mi)Populasi (Oktober 1, 2015) • Total42.995.031 • Kepadatan1.326/km2 (3,430/sq mi)Zona waktuUTC+09:00 Wilayah Kantō (関東地方 Kantō-chihō) adalah wilayah geografis di Honshu, pulau terbesar di Jepang. Batasnya kira-kira sama dengan hamparan Kanto. Ha...

شعار رابطة محترفات التنس رابطة محترفات التنس (بالإنجليزية: Women's Tennis Association)‏  الرياضة كرة المضرب  أسس عام 1973  المؤسس بيلي جين كينغ  المقر سانت بيترسبرغ  تعديل مصدري - تعديل   رابطة محترفات كرة المضرب أو رابطة محترفات التنس (بالإنجليزية: Women's Tennis Association)‏ اختصار�...

 

Museum in London Churchill War RoomsThe Map Room of the Cabinet War RoomsLocation within Central LondonEstablished1984; 40 years ago (1984)LocationKing Charles StreetLondon, SW1United KingdomVisitors620,933 (2019)[1]DirectorPhil ReedPublic transit access WestminsterWebsiteChurchill War RoomsImperial War Museums Churchill War Rooms HMS Belfast IWM Duxford IWM London IWM North The Churchill War Rooms is a museum in London and one of the five branches of the Imperi...

 

Lois MaxwellLahirLois Hooker[1]Nama lainLois Maxwell-MarriottTinggi173 cm (5 ft 8 in)Suami/istriPeter Churchill MarriottAnakMelinda (lahir tahun 1958)Christian (lahir tahun 1959) Lois Maxwell (14 Februari 1927 – 29 September 2007[1]) adalah aktris Kanada pemenang penghargaan Golden Globe yang terkenal sebagai Miss Moneypenny dalam film-film James Bond. Maxwell membintangi 14 film James Bond, dimulai dari Dr. No (1962) hingga A View To A Kil...

EasySingel oleh Camila Cabellodari album RomanceDirilis11 Oktober 2019DirekamSeptember 2019GenrePop[1]Durasi3:14LabelEpicSycoPenciptaCamila CabelloJustin TranterJohn HillAdam FeeneyLouis BellCarter LangWesten WeissProduserFrank DukesBellLangWeissHillKronologi singel Camila Cabello Cry for Me (2019) Easy (2019) Living Proof (2019) Audio videoEasy di YouTube Easy adalah lagu pop oleh penyanyi asal Kuba-Amerika Serikat, Camila Cabello, dari album studio keduanya Romance (2019). Lagu ini ...

 

Pavillon de MarsanLocalizzazioneStato Francia LocalitàParigi Coordinate48°51′48.27″N 2°19′56.41″E48°51′48.27″N, 2°19′56.41″E Informazioni generaliCondizioniIn uso Costruzione1874-1879 RealizzazioneArchitettoLouis Le Vau, Charles Percier, Pierre-François-Léonard Fontaine e Hector-Martin Lefuel Modifica dati su Wikidata · Manuale Il Pavillon de Marsan è un palazzo un tempo facente parte del Palazzo delle Tuileries di Parigi e oggi parte del Palazzo del Louvre ...

 

مايكروسوفت فرونت بيجالشعارمعلومات عامةنوع محرر إتش تي إم إل نظام التشغيل مايكروسوفت ويندوزأنظمة تشغيل ماك أو أس توقف الدعم 2007 المطورون مايكروسوفت معلومات تقنيةالإصدار الأول نوفمبر 1995 الإصدار الأخير 2003 الملفات المقروءة Microsoft FrontPage file format (en) *Microsoft Front Page Binary Tree Index (en) *FrontPage ...

This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: 1956 United States Senate election in California – news · newspapers · books · scholar · JSTOR (June 2020) (Learn how and when to remove this message) 1956 United States Senate election in California ← 1954 (special) November 6, 1956 1962 →   Nominee Thomas Kuchel Richard Richar...

 

City in Kermanshah province, Iran For the administrative division, see Bayangan District. City in Kermanshah, IranBayangan Persian: باينگانCityBayanganCoordinates: 34°58′51″N 46°16′17″E / 34.98083°N 46.27139°E / 34.98083; 46.27139[1]CountryIranProvinceKermanshahCountyPavehDistrictBayanganPopulation (2016)[2] • Total1,513Time zoneUTC+3:30 (IRST) Bayangan (Persian: باينگان)[a] is a city in, and the capita...