當前位置:首頁 » 編程軟體 » 編譯原理編譯的是什麼語言

編譯原理編譯的是什麼語言

發布時間: 2023-02-08 02:51:36

c語言編譯器是用什麼於語言寫的

第一個C語言編譯器應該是用匯編寫的,但是第一個成熟的C語言編譯器應該是由匯編和C語言共同寫的。
編譯原理講到了「自舉編譯器」。大意就是先用底層語言(應該是匯編)寫一個能運行,但效率極低的C語言編譯器(底層語言不好優化),有了C語言的編譯器以後,就可以用C語言好好寫一個編譯器了,用之前那個運行沒問題,但效率低得編譯器編譯一下,就得到了可以使用的編譯器了。

㈡ 編譯原理里,什麼是源語言,什麼是目標語言,什麼是翻譯器,什麼是編譯器,什麼是解釋器,什麼是T形圖

在vc 將c/c++代碼翻譯成asm文件的過程中
c/c++ 是源語言 asm是目標語言 vc是翻譯器
vc將asm在編譯成 obj文件 最後於庫文件鏈接成 二進制文件 vc就是編譯器

java中 需要跑一個 java虛擬機 比如 sun的 java.exe java.exe就是解釋器
c語言 a機器 c語言 b機器 C語言 b機器
a機器 c語言 a機器
圖a 圖b 圖c
在上圖中,圖(a)為已有的編譯程序,圖(c)為需要得到的編譯程序,圖(b)為需要書寫的編譯程序,只要我們把(b)在(a)上編譯就可得到(c)
打個比方
編譯器a是已有的在intel主機上將c語言翻譯成可在intel主機上運行的編譯器 我們希望得到在intel機器上運行的將c語言翻譯成可在蘋果主機上運行的編譯器c 那麼我們只需要用c語言寫一個將c語言翻譯成可在蘋果主機上運行的編譯器b, 在編譯器a上編譯c語言寫的編譯器b 就可以得到編譯器c

㈢ 編譯器為什麼會生成匯編語言而不是機器語言

1)其中有一個好處是方便優化,因為,編譯器也是工具,也是機器,畢竟是機器生成的程序,不可以非常 完美的,而匯編是機器指令的助記符,一個匯編指令就對應一條機器指令(特殊指令除外)調試起來肯定會比 機器指令方便的方便,這樣優化起來也方便。
2)高級語言只需要編譯成匯編代碼就可以了,匯編代碼到機器碼的轉換是由硬體實現即可,有必要用軟體實 現這樣分層可以有效地減弱編譯器編寫的復雜性,提高了效率.就像網路通訊的實現需要分成很多層一樣,主要 目的就是為了從人腦可分析的粒度來減弱復雜性.
3)如果把高級語言的源代碼直接編譯成機器碼的話,那要做高級語言到機器碼之間的映射,如果這樣做的 話,每個寫編譯器的都必須熟練機器碼。這個不是在做重復勞動么。

㈣ 編譯原理與什麼課程有聯系

與人工智慧、機器學習、操作系統、編譯器等都有關系,屬於計算機專業的核心課程,需要扎實掌握;

㈤ 編譯原理t形圖 源語言 表示語言 目標語言分別是什麼啊,舉個例子

編譯器本身也是一個軟體,該軟體用何種語言編寫的,比如是用c語言編寫的,則c語言就是它的表示語言(一般說成實現語言)。編譯系統的功能是翻譯,它能把一種高級語言(即源語言)編寫的程序等價的翻譯成另一低級語言(即目標語言)的程序。
舉例:
用 C語言實現一個java編譯器,可以將java程序翻譯成bytecode,則該編譯器的源語言為java,目標語言為bytecode,表示語言是C。

㈥ 編譯原理 下面文法生成的語言是什麼

這個文法生成的語言是:a*b^nc^n。

即0個或多個a後接n個b和n個c(n>=1)。

    ㈦ 編譯原理與匯編語言一樣嗎

    編譯原理是研究各種語言轉換(不夠專業)為機器語言的過程中的各種理論。
    編譯原理是將計算機語言轉化為可以在計算機硬體上直接運行的機器語言,是翻譯語言的一種。
    1、將高級語言變為機器語言,包括兩種方法,編譯是一種,另一種是解釋;
    2、將匯編語言變成機器語言的,叫匯編程序.
    編譯: 高級語言 --> 機器語言(指令);
    匯編: 匯編指令 --> 機器指令;

    ㈧ 什麼是編譯原理

    編譯原理是計算機專業的一門重要專業課,旨在介紹編譯程序構造的一般原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。 編譯原理是計算機專業設置的一門重要的專業課程。雖然只有少數人從事編譯方面的工作,但是這門課在理論、技術、方法上都對學生提供了系統而有效的訓練,有利於提高軟體人員的素質和能力。
    這門課程關注的是編譯器方面的產生原理和技術問題,似乎和計算機的基礎領域不沾邊,可是編譯原理卻一直作為大學本科的 必修課程,同時也成為了研究生入學考試的必考內容。編譯原理及技術從本質上來講就是一個演算法問題而已,當然由於這個問題十分復雜,其解決演算法也相對復雜。 我們學的數據結構與演算法分析也是講演算法的,不過講的基礎演算法,換句話說講的是演算法導論,而編譯原理這門課程講的就是比較專註解決一種的演算法了。在20世紀 50年代,編譯器的編寫一直被認為是十分困難的事情,第一Fortran的編譯器據說花了18年的時間才完成。在人們嘗試編寫編譯器的同時,誕生了許多跟 編譯相關的理論和技術,而這些理論和技術比一個實際的編譯器本身價值更大。就猶如數學家們在解決著名的哥德巴赫猜想一樣,雖然沒有最終解決問題,但是其間 誕生不少名著的相關數論。

    ㈨ C語言編譯原理是什麼

    編譯共分為四個階段:預處理階段、編譯階段、匯編階段、鏈接階段。

    1、預處理階段:

    主要工作是將頭文件插入到所寫的代碼中,生成擴展名為「.i」的文件替換原來的擴展名為「.c」的文件,但是原來的文件仍然保留,只是執行過程中的實際文件發生了改變。(這里所說的替換並不是指原來的文件被刪除)

    2、匯編階段:

    插入匯編語言程序,將代碼翻譯成匯編語言。編譯器首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼的實際要做的工作,在檢查無誤後,編譯器把代碼翻譯成匯編語言,同時將擴展名為「.i」的文件翻譯成擴展名為「.s」的文件。

    3、編譯階段:

    將匯編語言翻譯成機器語言指令,並將指令打包封存成可重定位目標程序的格式,將擴展名為「.s」的文件翻譯成擴展名為「.o」的二進制文件。

    4、鏈接階段:

    在示例代碼中,改代碼文件調用了標准庫中printf函數。而printf函數的實際存儲位置是一個單獨編譯的目標文件(編譯的結果也是擴展名為「.o」的文件),所以此時主函數調用的時候,需要將該文件(即printf函數所在的編譯文件)與hello world文件整合到一起,此時鏈接器就可以大顯神通了,將兩個文件合並後生成一個可執行目標文件。

    ㈩ 編譯原理sym=dplus什麼意思

    編譯原理其實就是將高級語言翻譯成計算機語言(即計算機所能識別的二進制代碼)所遵循的規律,讓電腦可以懂得高級語言所表達的東西,內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。編譯原理是計算及專業的一門重要專業課,旨在介紹編譯程序構造的一般原理和基本方法。編譯原理及技術從本質上來講就是一個演算法問題而已,當然由於這個問題十分復雜,其解決演算法也相對復雜。 我們學的數據結構與演算法分析也是講演算法的,不過講的基礎演算法,換句話說講的是演算法導論,而編譯原理這門課程講的就是比較專註解決一種的演算法了。

    熱點內容
    java返回this 發布:2025-10-20 08:28:16 瀏覽:750
    製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:1012
    python中的init方法 發布:2025-10-20 08:17:33 瀏覽:719
    圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:879
    怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:774
    c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1127
    郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:351
    shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:229
    怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:912
    python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:876