国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

震驚!你知道編程語(yǔ)言之祖 C 語(yǔ) 言,自身是用什么語(yǔ)言寫的嗎?

2022-04-02 19:54 作者:甬上逍遙子  | 我要投稿

C語(yǔ)言在運(yùn)行之前得編譯才行,C語(yǔ)言額編譯器從哪里來(lái)?

機(jī)器語(yǔ)言可以直接被CPU執(zhí)行,不需要編譯器。

匯編語(yǔ)言只是機(jī)器語(yǔ)言的助記符,但它依舊需要編譯成機(jī)器語(yǔ)言才能執(zhí)行。

所以只能用機(jī)器語(yǔ)言來(lái)寫第一個(gè)編譯器,以后就不用了。

用匯編語(yǔ)言去寫C語(yǔ)言的編譯器,然后可以編譯任意的C語(yǔ)言程序了。然后用C語(yǔ)言本身寫一個(gè)編譯器,接下來(lái)就可以把用匯編寫的C語(yǔ)言編譯器拋棄了。

如果C語(yǔ)言之前已經(jīng)出些了別的高級(jí)語(yǔ)言,比如pascal,然后就可以用pascal來(lái)寫一個(gè)C語(yǔ)言額編譯器了。

第一個(gè)Pascal的編譯器據(jù)說(shuō)使用fortan寫的。第一個(gè)高級(jí)語(yǔ)言的Fortan的編譯器應(yīng)該是匯編語(yǔ)言寫的。

在開發(fā)第一代unix的時(shí)候,連C語(yǔ)言都沒有KenThompson和DennisRitchie可是用匯編一行行把Unix敲出來(lái)的。

WPS第一版是求伯君用匯編寫出來(lái)的。

Turbo Pascal的編譯器也是Anders用匯編寫出來(lái)的、

對(duì)于編譯器,還可用“滾雪球”的方式來(lái)開發(fā):

以C語(yǔ)言為例,第一個(gè)版本可以先選擇C語(yǔ)言的一個(gè)子集,例如只支持基本的數(shù)據(jù)類型,流程控制語(yǔ),句函數(shù)調(diào)用.......我們把這個(gè)子集稱為C0,然后用匯編語(yǔ)言寫個(gè)編譯器。只搞定這個(gè)語(yǔ)言的子集C0,這樣寫起來(lái)就容易不少了。C0這個(gè)子集可以工作了,然后我們擴(kuò)展這個(gè)子集,例如添加struct指針......把新的語(yǔ)言稱為C1,那C1這個(gè)語(yǔ)言的編譯器由誰(shuí)來(lái)寫呢?自然是C0,等到C1可以工作了,再次擴(kuò)展語(yǔ)言特性,用C1寫編譯器,得到C2,然后是C3,C4.......最后得到完整的C語(yǔ)言,這個(gè)過(guò)程被稱為bootstraping,中文叫做自舉。





















震驚!你知道編程語(yǔ)言之祖 C 語(yǔ) 言,自身是用什么語(yǔ)言寫的嗎?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
石柱| 宁夏| 长子县| 武强县| 乌鲁木齐县| 永吉县| 隆回县| 都兰县| 乌审旗| 华容县| 灵武市| 沈阳市| 惠东县| 凤山市| 涿鹿县| 武鸣县| 张家界市| 阳江市| 卢湾区| 姜堰市| 安泽县| 德兴市| 正阳县| 阿尔山市| 水城县| 河曲县| 湖南省| 平谷区| 阳高县| 新宁县| 宁陵县| 乐平市| 阿荣旗| 清徐县| 肃宁县| 通江县| 丰城市| 游戏| 嘉鱼县| 方山县| 伊吾县|