最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
客服| 温宿县| 孝昌县| 孙吴县| 山东省| 寿光市| 福清市| 辛集市| 呼图壁县| 赫章县| 通许县| 德州市| 潍坊市| 嘉峪关市| 桃源县| 靖江市| 南靖县| 岢岚县| 永德县| 旌德县| 平乐县| 辽阳县| 德令哈市| 横峰县| 兴和县| 崇州市| 怀来县| 田阳县| 万全县| 武汉市| 富蕴县| 木兰县| 南充市| 河北区| 青铜峡市| 黄大仙区| 江山市| 郁南县| 子洲县| 三都| 浮山县|