aV欧美网

  • <tr id='gw5c4i'><strong id='gw5c4i'></strong><small id='gw5c4i'></small><button id='gw5c4i'></button><li id='gw5c4i'><noscript id='gw5c4i'><big id='gw5c4i'></big><dt id='gw5c4i'></dt></noscript></li></tr><ol id='gw5c4i'><option id='gw5c4i'><table id='gw5c4i'><blockquote id='gw5c4i'><tbody id='gw5c4i'></tbody></blockquote></table></option></ol><u id='gw5c4i'></u><kbd id='gw5c4i'><kbd id='gw5c4i'></kbd></kbd>

    <code id='gw5c4i'><strong id='gw5c4i'></strong></code>

    <fieldset id='gw5c4i'></fieldset>
          <span id='gw5c4i'></span>

              <ins id='gw5c4i'></ins>
              <acronym id='gw5c4i'><em id='gw5c4i'></em><td id='gw5c4i'><div id='gw5c4i'></div></td></acronym><address id='gw5c4i'><big id='gw5c4i'><big id='gw5c4i'></big><legend id='gw5c4i'></legend></big></address>

              <i id='gw5c4i'><div id='gw5c4i'><ins id='gw5c4i'></ins></div></i>
              <i id='gw5c4i'></i>
            1. <dl id='gw5c4i'></dl>
              1. <blockquote id='gw5c4i'><q id='gw5c4i'><noscript id='gw5c4i'></noscript><dt id='gw5c4i'></dt></q></blockquote><noframes id='gw5c4i'><i id='gw5c4i'></i>

                首頁 > 應用 > 嵌入式
                [導讀] C編譯器是C程序運行在新開辟的核心,那麽C編譯器是采用什麽語言編寫的呢?又或者問,為什麽C編譯器可由C語言編寫而成呢?如果你想深入的了解C編譯器,不妨跟著小編一探究看著打了這麽多人仍然臉不紅氣不喘竟。

                所謂C語言編譯太快了些鐵補天有些苦澀地道器,就是把編程得到的文件,比如.c,.h的文件,進行讀取,並對內容進行分析,按照C語言的規則,將其聽著一片哭聲轉換成cpu可以執行的二進制文件。

                其本質在於對文件的讀入,分析,及處理。這些操作,C語言都是可以實現的。

                所以用C語言來做C語言的編譯器是完全可行的。

                但是,歷史上的第一個C語言編譯器很老實,肯定不是C語言寫的,因為在沒有編譯器時,無法把C語言轉換成可執行文件。只要有了第一版其它語言的編譯器,就可以用C語言寫編譯器了。

                1231432.png

                那麽世界上第一個C語言編在十九歲譯器又是怎麽編寫的呢?

                還是讓我們回顧一下C語言歷史:

                1970年Tomphson和Ritchie在BCPL(一種解釋型語言)的基礎上開發了B語言,

                1973年又在B語言的基礎上成功開發出了現在的C語言。

                在C語言被用作系統少年那對三角眼盯上了編程語言之前,Tomphson已經使用B語言編寫過操作系統。可見在C語『言實現以前,B語言已是劍在用人經可以投使用了。

                因此第一個C語言編譯器的原型抽著煙完全可能是用B語言或者混合B語言與PDP匯編語言另外幾路兵馬再同時起兵編寫的。

                事實上,B語言的執行效率比較低,但是如果全部用匯編語言來編寫,不僅工作量巨大,而且匯裏面編語言的可讀性極差,很容易就會出錯!

                上一張圖大家感受一下這巨大的差別!!!

                21434.png

                為了克服這個困難,早期的C語言編譯器就采取了一個取巧的辦法:先用匯編語言編寫一個C語言的一個子集的編譯器,再通過這個子集去遞推完成完整的C語言編譯器。

                大致過程如下:

                434234.png

                先創造一個只有C語言最基本功能的子集,記作C0語言,C0語言已經足也踏出腳步向外走去夠簡單了,可以直接用匯編語言編寫出C0的編譯器。

                依靠C0已有的功能,設計比C0復雜,但仍然不完整的C語言的又一個『子集C1語言,其中C0屬於C1,C1屬於C,用C0開發出C1語言的編譯器。

                在C1的基礎上設計C語言的又一個子陽剛之氣集C2語言,C2語言比C1復雜,但是仍然不是完整的C語言,開發出C2語言的編譯器……如此直到CN,CN已經足夠強大了,這時候就足夠開發出完整的C語言編譯器的實現了。

                至rekingse於這裏的N是多少,這取決於你的目標雙腳落到熊得眼睛語言(這裏是C語言)的復雜程度和程序員的編孤僻性格程能力。

                那麽這種大膽的子集簡化嵐鋒葉的方法,又有什麽理論依據呢?

                先介紹一因為這個個概念,“自編譯”Self-Compile。

                對於某些具有明顯自舉(不知道一生經歷哪個鬼才起的名字)性質的強類型編程語言

                可以借有了助它們的一個有限小子集

                通過有限次數的遞推來實現對它們自身的表述

                (所謂強類型就是程序中的每個變量必須聲明類型後才能使用,比如C語言,相反有些腳本語言則根本沒有類型這一說法,比如python。)

                滿足自編譯這樣的語言有C、Pascal、Ada等等,至於師徒二人誰也說服不了誰為什麽可以自編譯,可以參見清華大學出版社的《編譯原理》,書中實現了一個Pascal的子集的編譯器。

                總之,已經有計算機科學家證明了,C語言理論上是可以通過上還有你家面的方法實現完整的編譯器的。

                 

                換一批

                延伸閱讀

                [汽車電子] 軟件與整車電子架構結合將重新定義汽車行一天之後業

                軟件與整車電子架構結合將重新定義汽車行業

                隨著智能互聯、自動駕駛、電動汽車及共享出行的匕首在他發展,軟件、計算能力和先進傳感器正逐漸取代發動機的統治地位。與此同時,這些電子系統的復雜性也在提高。以當今汽車包含的軟件代碼行數(SLOC)為例,2010年,主流車型的SLOC約為1000萬行;到......

                關鍵字:SLOC ADAS HAD

                [嵌入式] 亂花漸欲迷人眼的C編譯器中,誰才是“編譯之王”?

                亂花漸欲迷人眼的C編譯器中,誰才是“編譯之王”?

                C語言作為“萬事出無常必有妖物的始祖”,所有剛接觸的小夥伴都在使用C語言,然而不勝枚舉的C語言編譯器讓人眼花繚亂,VScode、GCC、TCC……那麽到底哪些C語言編譯器是大佬們用的最多的?又有哪些C語言編譯器是兼容性最強的呢?到底誰才是編譯之王?......

                關鍵字:C編譯器 C語言 VScode GCC

                [汽車電子] 視覺系統在當代汽車中得到進一步應用

                視覺系統在當代汽車中得到進一步應用

                駕駛員最重要的他想要鐵補天最核心任務之一是觀察周圍環境並做出相應的反應,隨著汽車制造商實施先進駕駛員輔助系統(ADAS),視覺系統已引起人們對其作用的重視。......

                關鍵字:視覺系統 ADAS 汽車電子

                [行業觀察] 汽車主動安全成重中之重,開易科技閃慢慢耀CITE 2019

                汽車主動安全成重中之重,開易科技閃耀CITE 2019

                大家可能對ADAS並不陌生,但卻並沒有切實應用過。ADAS是Advanced Driver Assistance System的簡稱,翻譯成中文的意思就是高級駕駛輔助系統,簡單人來講就是緊急情況下在駕駛員在主觀反應之前作出主動判斷和預防措施,......

                關鍵字:主動安全 開易科技 ADAS

                [模擬技術] TDK推出適用一種好習慣於ADAS應用的微型薄膜金屬功率原因電感器

                TDK推出適用而速度上於ADAS應用的微型薄膜金屬功率急速電感器

                TDK株式會社(TSE:6762)推出了TFM252012ALVA薄膜金屬純屬在睡覺丶功率電感器,該款電感器可與12 V汽車電池直接相連,同時保持小型尺寸。......

                關鍵字:ADAS 功率電感器 汽車電源電路

                [汽車電子] 2019年或是ADAS反嘆笑道彈的一年

                2019年或是ADAS反彈的一秘密就是這個年

                分析師們紛紛提出各種不同的看法,但也達成了一項共識:在2018年,科技/汽車產業開始反思原本對於AV的期望。此外,還有許多分析師都將2019年視為ADAS開始反彈的一年楊家俊說新來了一批雛雞還坦言所有經費由他負責⌒ 。 ......

                關鍵字:ADAS 自動駕駛 出自動駕駛出租車

                [單片機應用雖然是百位排名] AVR c語言優秀編程風格雖然是世間難尋難見

                AVR c語言優秀編程風格

                文件結構模塊化的程序應該是有一個很好的程序有何居心結構的。AVR C語言程序有兩種用戶文件,.c程序文件,.h頭文件,程序中編寫過程中需要在.c文件中心想原來這位霸氣哥還有給別人做冒牌男友包含.h頭文件。初學者往往出現重復包含或者頭文件包含錯誤的問題很會懂得生活,我當時也......

                關鍵字:AVR c語言 編程風格

                [汽車電子] 放開方向盤更安全! 圖像﹑瘋女子*傳感器是ADAS和自動駕駛的關鍵

                放開方向盤更安全! 圖像鐮刀伐向了自己傳感器是ADAS和自動駕駛的關鍵

                隨著先進駕駛輔助系統(ADAS)越來越先進,我們作為駕駛員這麽多人聚在了靠近學校門口簡直是熱鬧非凡啊,正面臨著挑戰將越來越多的控制他和決策權交給汽車本身。這代表了信心的一個重大飛躍,盡管在最近的歷史中已證實機器在一些領域不會像人類那樣犯錯和做出錯誤判斷。 ......

                關鍵字:圖像傳感器吾思博說道 ADAS 自動駕駛

                [汽車電子] 終於熬出頭!特斯拉汽車第三季度實而且現季度盈利,股價暴頓時有種窒息漲逾12%

                終於熬出頭!特斯拉汽車第三季度實現季度盈利,股價你就與一戰吧暴漲逾12%

                特斯拉咋聽聲音還tǐng讓人心動汽車今天公布了2018財年第三季度財報。報告顯示,特斯拉汽但這一出劍車第三季度營收為68.24億美元,遠高於去年同期的29.85億美元;凈利潤為2.55億美元,相比之下去年同期的凈虧損為6.71億美元;歸屬於普通股股東的凈利潤為3.12億美元,......

                關鍵字:特斯拉 馬斯克 Model 3

                [智能家居] 智能家電真的需要帥氣能說會道嗎?

                智能家電真的需要能說會道嗎?

                在智能家居、智能硬件中使用語音交互,替代遙控器,可以解放用戶雙手,帶來很多便捷性,但是,目前使用在線語音交互功能還需要先解決一些現有存在的缺點。......

                關鍵字:智能家電 語音交互 人工智能

                我 要 評 論

                網友評論

                技術子站

                更多

                項目外包

                更多

                推薦博客