可移植C編譯器(英語(yǔ):Portable C Compiler),也被稱為pcc,或pccm(portable C compiler machine),一種早期的C語(yǔ)言編譯器,由史蒂芬·強(qiáng)生于1970年代中期,在貝爾實(shí)驗(yàn)室寫(xiě)作。
簡(jiǎn)介可移植C編譯器被使用在Version 7 Unix上,跟著它一同發(fā)布。一直到1994年4.4BSD發(fā)表時(shí),它都是BSDUNIX系統(tǒng)上的默認(rèn)C語(yǔ)言編譯器,一直到被gcc取代為止。在1980年代,它是非常具有影響力的C語(yǔ)言編譯器典范,主要的C語(yǔ)言編譯器都是在它的基礎(chǔ)上繼續(xù)開(kāi)發(fā)而成。2007年,Anders Magnusson與 Peter A Jonsson重新開(kāi)發(fā)了pcc,讓它也可以適用于C99標(biāo)準(zhǔn)。1
功能由丹尼斯·里奇創(chuàng)作的第一個(gè)C語(yǔ)言編譯器,采用遞歸下降解析器(Recursive descent parser),基于PDP-11平臺(tái)特色而產(chǎn)生。為了使它產(chǎn)生的匯編語(yǔ)言程序最優(yōu)化,它利用這個(gè)特定平臺(tái)的優(yōu)化器來(lái)進(jìn)行。在設(shè)計(jì)上是與機(jī)器相關(guān)的。
pcc基于yacc之上,只有少部分代碼是與機(jī)器相關(guān)的,具備可移植性。1
編譯器編譯器(compiler),是一種計(jì)算機(jī)程序,它會(huì)將用某種編程語(yǔ)言寫(xiě)成的源代碼(原始語(yǔ)言),轉(zhuǎn)換成另一種編程語(yǔ)言(目標(biāo)語(yǔ)言)。
它主要的目的是將便于人編寫(xiě)、閱讀、維護(hù)的高級(jí)計(jì)算機(jī)語(yǔ)言所寫(xiě)作的源代碼程序,翻譯為計(jì)算機(jī)能解讀、運(yùn)行的低階機(jī)器語(yǔ)言的程序,也就是可執(zhí)行文件。編譯器將原始程序(source program)作為輸入,翻譯產(chǎn)生使用目標(biāo)語(yǔ)言(target language)的等價(jià)程序。源代碼一般為高階語(yǔ)言(High-level language),如Pascal、C、C++、C# 、Java等,而目標(biāo)語(yǔ)言則是匯編語(yǔ)言或目標(biāo)機(jī)器的目標(biāo)代碼(Object code),有時(shí)也稱作機(jī)器代碼(Machine code)。2
軟件可移植性在軟件工程中,可移植性(英語(yǔ):Portability),又譯為移植性、可攜性,是指使用高階語(yǔ)言寫(xiě)成的軟件,在不同環(huán)境下,是否具備可以被重復(fù)使用的性質(zhì)。一般來(lái)說(shuō),軟件是否具備可移植性的衡量標(biāo)準(zhǔn),在于進(jìn)行軟件移植時(shí),需要付出多少工時(shí)為代價(jià)。具備高可移植性的軟件,在移植到不同系統(tǒng)平臺(tái)時(shí),并不需要做太多事情,因此能夠減少軟件開(kāi)發(fā)及布署時(shí)的成本。為了使軟件具備高度可移植性,程序員需要使應(yīng)用程序界面抽象化以及模組化。
以低階語(yǔ)言,例如匯編語(yǔ)言,寫(xiě)成的軟件,一般來(lái)說(shuō),其可移植性都較低。2
本詞條內(nèi)容貢獻(xiàn)者為:
李岳陽(yáng) - 副教授 - 江南大學(xué)