Portable C Compiler

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Portable C Compiler
Тип компилятор
Разработчик Стивен Джонсон[вд]
Написана на Си
Операционная система Unix-подобная операционная система
Последняя версия
Бета-версия
Лицензия BSD
Сайт web.archive.org/web/2023…

Portable C Compiler (сокращается как pcc или реже pccm — «portable C compiler machine») — один из ранних компиляторов для языка C, написанный Стивеном С. Джонсоном из Bell Labs[3] в середине 70-х, основываясь частично на разработках Алана Снидера.

Стал одним из первых компиляторов, способных адаптировать код к различным архитектурам вычислительных систем, что обеспечило ему долгую жизнь. Он поставлялся вместе с BSD Unix до релиза 4.4BSD в 1994 — тогда его заменил GCC. В 1980-х годах был настолько влиятельным, что многие компиляторы базировались на нём. Вот что пишет Денис Ритчи в своей работе[4] об истории языка Си:

В 1980-е Си быстро набирал популярность и компиляторы стали доступны практически на каждой машине и операционной системе; в частности, он стал популярным как язык программирования для персональных компьютеров, причем одновременно как для разработчиков коммерческого программного обеспечения для этих машин, так и для рядовых пользователей, увлекающихся программированием. В начале десятилетия практически каждый компилятор был основан на pcc Джонсона; к 1985 было уже много компиляторов, созданных независимыми разработчиками.

Возможности

[править | править код]

Успеху Portable C Compiler способствовали его портируемость и высокие диагностические возможности:

  • Компилятор был разработан таким образом, что только малая часть его исходного кода была платформозависима.
  • Он был относительно строг по отношению к синтаксическим ошибкам, что положительно влияло на корректность кода.

Текущая версия

[править | править код]

Новая версия Portable C Compiler, основанная на оригинальной версии, написанной С. Джонсоном, теперь поддерживается Андресом Магнуссоном. Компилятор распространяется по BSD-лицензии. По словам Андреса:

…Большое его преимущество (помимо BSD-лицензии, что имеет значение лишь для фанатиков лицензий) в том, что он быстрый, в 5-10 раз быстрее, чем gcc, но при этом не страдает аккуратность кода… ещё его довольно легко портировать…[5]

Эта новая версия была добавлена в NetBSD pkgsrc и OpenBSD в сентябре 2007,[6] и, чуть позже, в NetBSD,[7] что породило предположения о том, что со временем этот компилятор может вытеснить GNU C Compiler в рамках операционных систем, основанных на BSD. Разработка и дальнейшее развитие и адаптация компилятора PCC ведётся в основном проектом OpenBSD, и, по состоянию на 29 декабря 2009 года, компилятор PCC строит функциональный образ OpenBSD под x86-32[8].[9]

1 апреля 2011 года вышла версия PCC 1.0.[10] В данном релизе компилятор поддерживает архитектуры x86 и x64, и запускается на операционных системах NetBSD, OpenBSD, FreeBSD, различных Linux-дистрибутивах, а также Windows. Дальнейшая разработка продолжается, включая поддержку большего числа архитектур, а также фронтендов для языков FORTRAN 77 и C++.

В 2012 году PCC был удалён из исходного кода OpenBSD. Его разработка застопорилась, и никто не взялся за то, чтобы сделать из него реальную альтернативу GCC.[11]

Последняя версия PCC 1.1.0 была выпущена 10 декабря 2014.

Примечания

[править | править код]
  1. 1.0 release - pcc portable c compiler
  2. pcc News
  3. Johnson, S.C. A portable compiler: theory and practice. Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages. Tucson, Arizona. 97—104 (1978). Дата обращения: 15 сентября 2009. Архивировано 15 июля 2020 года.
  4. Ritchie, Dennis M. The development of the C language. The second ACM SIGPLAN conference on History of programming languages. Cambridge, Massachusetts. 201—208 (1993). — «At the start of the decade, nearly every compiler was based on Johnson's pcc; by 1985 there were many independently-produced compiler products.» Дата обращения: 30 декабря 2008. Архивировано из оригинала 7 апреля 2012 года.
  5. BSD Licensed PCC Compiler Imported. Дата обращения: 15 сентября 2009. Архивировано 7 июля 2009 года.
  6. 'CVS: cvs.openbsd.org: src' — MARC. Дата обращения: 15 сентября 2009. Архивировано 24 марта 2017 года.
  7. source-changes: CVS commit: src/dist/pcc. Дата обращения: 15 сентября 2009. Архивировано 14 февраля 2009 года.
  8. Call for testing: pcc and the OpenBSD kernel. Дата обращения: 30 декабря 2009. Архивировано 7 января 2010 года.
  9. Slashdot | GCC Compiler Finally Supplanted by PCC? Дата обращения: 16 мая 2022. Архивировано 15 июля 2020 года.
  10. 1.0 release - pcc portable c compiler. pcc.ludd.ltu.se. Дата обращения: 17 июля 2017. Архивировано 6 июня 2017 года.
  11. 'Re: Story behind PCC's removal?' - MARC. marc.info. Дата обращения: 17 июля 2017.