fbpx
Wikipedia

Portable C Compiler

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]

Portable C Compiler
Original author(s)Stephen C. Johnson
Developer(s)AT&T Bell Laboratories
Initial release1979; 44 years ago (1979)
Stable release
1.1.0 / December 10, 2014; 8 years ago (2014-12-10)
Written inC
Operating systemUnix and Unix-like
TypeC Compiler
LicenseBSD License
Websitepcc.ludd.ltu.se

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 Edit

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 Edit

A new version of pcc, based on the original by Steve Johnson, is now maintained 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 x64 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 Edit

References Edit

  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). . 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. ISBN 0-03-061743-X. {{cite book}}: |work= ignored (help)
  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. 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). . 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. ^ . 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.

External links Edit

  • Official website  
  • Archive at TUHS

portable, compiler, also, known, sometimes, pccm, portable, compiler, machine, early, compiler, programming, language, written, stephen, johnson, bell, labs, 1970s, based, part, ideas, proposed, alan, snyder, 1973, distributed, compiler, bell, labs, with, bles. 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 Portable C CompilerOriginal author s Stephen C JohnsonDeveloper s AT amp T Bell LaboratoriesInitial release1979 44 years ago 1979 Stable release1 1 0 December 10 2014 8 years ago 2014 12 10 Written inCOperating systemUnix and Unix likeTypeC CompilerLicenseBSD LicenseWebsitepcc wbr ludd wbr ltu wbr seBeing 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 Contents 1 Features 2 Current version 3 See also 4 References 5 External linksFeatures EditKey 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 amp 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 EditA new version of pcc based on the original by Steve Johnson is now maintained 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 lt gt 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 x64 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 Edit nbsp Free and open source software portalAmsterdam Compiler Kit Clang Open WatcomReferences Edit 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 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 Johnson S C 1981 A Tour Through the Portable C Compiler ISBN 0 03 061743 X a href Template Cite book html title Template Cite book cite book a work ignored help a b Stroustrup Bjarne 2002 Sibling rivalry C and C PDF Report AT amp T Labs 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 a b pcc history pcc portable c compiler 2010 06 21 Retrieved 2012 06 26 Erdely Mike 2007 09 15 BSD Licensed PCC Compiler Imported OpenBSD Journal Retrieved 2011 12 17 Moerbeek Otto 2007 09 15 CVS cvs openbsd org src openbsd cvs Mailing list Brownlee David 2007 09 20 CVS commit src dist pcc source changes Mailing list GCC Compiler Finally Supplanted by PCC 2007 09 17 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 Brooks Davis 5 November 2012 HEADS UP Clang now the default on x86 Mailing list Retrieved 23 April 2015 Joerg Sonnenberger 17 October 2013 Importing LLVM Clang Mailing list Retrieved 23 April 2015 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 de Weerd Paul 2009 12 29 Call for testing pcc and the OpenBSD kernel OpenBSD Journal Retrieved 2011 12 17 Magnusson Anders 2011 04 01 1 0 Release Portable C Compiler Retrieved 2011 12 17 BSD Fund pcc fund bsdfund org 2011 04 01 Archived from the original on 2009 01 05 Retrieved 2012 06 26 Paul Irofti 2012 04 12 CVS cvs openbsd org src Peter Hessler 2012 06 18 Re Story behind PCC s removal Miod Vallat 2013 07 31 Compilers in OpenBSD Magnusson Anders 2014 12 10 1 1 0 Release Portable C Compiler Retrieved 2022 04 22 External links EditOfficial website nbsp Archive at TUHS Retrieved from https en wikipedia org w index php title Portable C Compiler amp oldid 1169352578, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.