{eval=Array;=+count(Array);}

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問答專欄Q & A COLUMN

C語言本身是用什么語言寫的?

snifessnifes 回答10 收藏1
問題描述:星球人的一個(gè)提問:“C語言本身用什么語言寫的?”
收藏問題

10條回答

svtter

svtter

回答于2022-06-22 18:56

開始是匯編,之后就是用c自己寫自己不斷迭代

評論0 贊同0
  •  加載中...
Alex

Alex

回答于2022-06-22 18:56

既然你能提出這個(gè)級別的問題,說明你應(yīng)該學(xué)過C。既然你能提出這個(gè)級別的問題,說明你沒學(xué)過編譯原理(或者全還給老師了[捂臉],容我不厚道一下下)。

你所謂的"C語言",準(zhǔn)確來說,指的是能把C語言程序翻譯成機(jī)器指令程序的"編譯器"程序。

先用匯編寫一個(gè)極小的原始編譯器(AC),能編譯最簡單的C語法。然后用該原始編譯器AC編譯一個(gè)最簡單的C編譯器(CC1)。然后用CC1編譯一個(gè)稍微復(fù)雜一點(diǎn)的C編譯器(CC2)。最終,像滾雪球一樣,C語言就把一個(gè)擁有完全編譯功能的C編譯器給編譯出來了。

推薦資料:陳火旺老師的經(jīng)典教材《編譯原理》,開篇講的就是這個(gè)問題。

評論0 贊同0
  •  加載中...
zhoutk

zhoutk

回答于2022-06-22 18:56

是用C語言編寫的。

這里有一個(gè)概念,就是編程語言的自舉。

自舉(bootstrapping)字面理解就是自己能把自己給舉起來,換做編程語言來講就是,自己編譯自己。也就是C語言能通過C語言自己編寫自己的編譯器。

完成自舉通常需要3-4個(gè)步驟。

1、創(chuàng)建自舉編譯器環(huán)境。

2、編譯自舉編譯器。

3、通過自舉編譯器編譯完整的編譯器。

4、通過第三步里面的完整的編譯器編譯完整的編譯器。

第四步得到的編譯器就是一個(gè)自舉編譯器。

那么問題來了,第2步中的編譯器是什么語言寫的呢,是這么來的呢?

這個(gè)就要了解編程語言是什么了,簡單而言編程語言分為,機(jī)器語言(就是0101),匯編語言(可以理解為機(jī)器語言簡單英文翻譯),高級語言(這個(gè)就是我們通常接觸到的編程語言了,細(xì)分的話,還有編譯型的語言和解析型的語言等)。

參考 Dennis M. Ritchie 寫的 The Development of the C Language:Chistory。

Ken Thomson 不滿意 BCPL,于是設(shè)計(jì)了 B 語言,并且用 BCPL 為 B 語言寫了一個(gè)編譯器,然后從這個(gè)編譯器開始自舉寫新的 B 語言編譯器。

貝爾實(shí)驗(yàn)室的眾人在 PDP-7 上用 B 語言寫了各種各樣的東西后又不滿意 B 語言了,于是 1971 年 DMR 開始在新買的 PDP-11 上用 B 給 B 寫擴(kuò)展,稱之為 new B(簡稱NB),new B和原來的B語言漸行漸遠(yuǎn),于是就取了BCPL的第二個(gè)字母C當(dāng)作new B的新名字,C語言就這么誕生了。

1973 年夏天他們用手頭的編譯器和語言給 PDP-11 重寫了一個(gè) Unix Kernel。C語言就這樣和unix/linux結(jié)下不解之緣。

對了,BCPL也是一門能自舉的語言,后來有些人也用匯編語言寫了C語言的編譯器,并且C語言的語法都是透明公開的,你可以用任何語言實(shí)現(xiàn)C語言的編譯器。

所以答案就變成了,第一版C語言編譯器是由B語言編寫的。現(xiàn)在你可以用任何語言去實(shí)現(xiàn)C語言的編譯器。

評論0 贊同0
  •  加載中...
琛h。

琛h。

回答于2022-06-22 18:56

C語言是用C寫的。奇怪嗎?先用匯編寫個(gè)C0編譯器,再用它寫C編譯器。

評論0 贊同0
  •  加載中...
quietin

quietin

回答于2022-06-22 18:56

最早的計(jì)算機(jī)語言是機(jī)器語言,直接面向計(jì)算機(jī)硬件。雖然指令不多,但實(shí)現(xiàn)特定任務(wù)需要編制復(fù)雜的程序。由于缺乏存儲(chǔ)系統(tǒng),程序存儲(chǔ)于紙帶上。隨著存儲(chǔ)介質(zhì)的發(fā)展和程序模塊化演變,計(jì)算機(jī)語言由低級向高級不斷發(fā)展。尤其是視窗操作系統(tǒng)的出現(xiàn),使得計(jì)算機(jī)對用戶更加友好。

評論0 贊同0
  •  加載中...
岳光

岳光

回答于2022-06-22 18:56

編譯器和鏈接器都是用ASM

評論0 贊同0
  •  加載中...
cgspine

cgspine

回答于2022-06-22 18:56

C語言本身是基于英語的。C語言的創(chuàng)始人丹尼斯里奇是美國人,哈佛大學(xué)畢業(yè)。

比如C語言里的數(shù)據(jù)定義:int出自于integer;比如結(jié)構(gòu)語句:if... else... 等等。

評論0 贊同0
  •  加載中...
Eastboat

Eastboat

回答于2022-06-22 18:56

這個(gè)問題導(dǎo)致我有一個(gè)問題,漢語是什么語言創(chuàng)建的?

只能說c語言的運(yùn)行原理是啥,通過什么能編譯執(zhí)行c語言的命令。所以感覺這個(gè)問題很奇怪

評論0 贊同0
  •  加載中...
cooxer

cooxer

回答于2022-06-22 18:56

語言就是一套語法規(guī)則,都是用文字寫的,在美國是用英文寫的,到了中國翻譯成中文。語言的編譯器才是用計(jì)算機(jī)語言編的。能將C語言源程序翻譯成可執(zhí)行代碼的任何計(jì)算機(jī)語言,都可以用來編寫C語言編譯器。

評論0 贊同0
  •  加載中...
fai1017

fai1017

回答于2022-06-22 18:56

英文字母和漢語拼音。

評論0 贊同0
  •  加載中...

最新活動(dòng)

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<