色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

C語言是用什么編出的

C語言是用什么編出的?

首先答案是c語言是用c語言編寫。

語言自舉性

一個(gè)語言能否自己編寫自己實(shí)現(xiàn)自己編譯,這叫自編譯,自舉性。目前能實(shí)現(xiàn)自舉性的語言沒有幾個(gè),而自舉性也就成了一個(gè)語言能否真實(shí)強(qiáng)大的標(biāo)志。

一般來說圖靈完備的語言,編譯型語言,虛擬機(jī)語言可以實(shí)現(xiàn)自舉。而解釋型語言基本上很難。

現(xiàn)代很多語言都沒實(shí)現(xiàn)自舉,Java(jvm),Javascript, python,ruby,lua,php,perl……一堆。這些語言編譯器、解釋器都是c語言。

一個(gè)語言能自舉是他們社區(qū)和開發(fā)一直夢寐以求的事情,也是他們情懷和追求所在。有一個(gè)語言為了實(shí)現(xiàn)自舉成功,花了近20年,前年圣誕節(jié)才正式推出了第一個(gè)正式版本。它就是perl6,perl的下一代語言。perl6支持過程、OO、函數(shù)式三種程模式,支持虛擬機(jī)的語言(自己的虛擬機(jī)和jvm)。為了做好perl6,社區(qū)搞了一個(gè)功能啟示錄,把要實(shí)現(xiàn)的功能好點(diǎn)子都錄進(jìn)去。后來一個(gè)日本人參考這個(gè)啟示錄自己實(shí)現(xiàn)了一個(gè)語言,這就有了ruby語言,但是ruby沒有自舉。

c語言的自舉過程和交叉編譯

我在以前的回答中,曾說過c語言的來歷:

上世紀(jì)70年代,為了實(shí)現(xiàn)unix,教主Tomphson和Ritchie開發(fā)了B語言,但是b語言性能不行,編寫也較繁瑣,所以又在B語言的基礎(chǔ)上開發(fā)出了現(xiàn)在的C語言。

第一個(gè)C語言編譯器的原型是用B語言或者混合B和匯編語言編寫的。采用部分實(shí)現(xiàn)功能,交叉編譯方式實(shí)現(xiàn)。

先用B和匯編語言編寫一個(gè)C語言的部分必須功能的編譯器,再通過這個(gè)編譯器,完成完整的C語言編譯器。詳細(xì)過程如下:

1、先編寫一個(gè)只有C語言最基本功能編譯器C0語言,用匯編語言編寫出C0的編譯器。

2、接著用C0實(shí)現(xiàn)比C0復(fù)雜,功能不完整的C語言子集C1語言,用C0編譯出C1語言的編譯器。

3、在C1-〉c2……如此循環(huán)直到Cn,Cn功能已經(jīng)強(qiáng)大到可以實(shí)現(xiàn)C。

4、用Cn編譯實(shí)現(xiàn)了第一個(gè)c語言編輯器,即C實(shí)現(xiàn)了自舉。