⑴ 什麼是編譯程序
編譯程序指將某一種程序設計語言寫的程序翻譯成等價的另一種語言的程序的程序, 稱之為編譯程序
編譯程序也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。編譯程序屬於採用生成性實現途徑實現的翻譯程序。
它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
編譯程序的實現演算法較為復雜,這是因為它所翻譯的語句與目標語言的指令不是一一對應關系,而是一多對應關系,同時也因為它要處理遞歸調用、動態存儲分配、多種數據類型,以及語句間的緊密依賴關系。
由於高級程序設計語言書寫的程序具有易讀、易移植和表達能力強等特點,編譯程序廣泛地用於翻譯規模較大、復雜性較高、且需要高效運行的高級語言書寫的源程序。
(1)編譯系統概念擴展閱讀:
編譯流程分為了四個步驟:
1.預處理,生成預編譯文件(.文件)
2.編譯,生成匯編代碼(.s文件)
3.匯編,生成目標文件(.o文件)
4.鏈接,生成可執行文件
⑵ 璁$畻鏈洪珮綰ц璦鐨勭紪璇戠郴緇熸寜杞浠跺垎綾繪潵鐪嬫槸灞炰簬________銆
璁$畻鏈洪珮綰ц璦鐨勭紪璇戠郴緇熸寜杞浠跺垎綾繪潵鐪嬫槸灞炰簬緋葷粺杞浠躲
鍥犱負緙栬瘧杞浠跺拰鎿嶄綔緋葷粺灞炰簬緋葷粺杞浠舵墍鏈夌殑杞浠墮兘鏄鍩轟簬榪欎簺緋葷粺杞浠舵墠鑳借繍琛岀殑銆傜紪璇戠郴緇熸牴鎹璇璦鐨勮勫畾緙栧啓婧愮▼搴忥紝鐒跺悗榪涜岀紪璇戙佽繛鎺ワ紝鐢熸垚鍙鎵ц屾枃浠躲
渚嬪侱OS鎿嶄綔緋葷粺鍔犲悇綾婚珮綰ц璦錛屽侳ORTRAN銆丳ASCLL銆丆璇璦絳夊氨灞炰簬榪欑嶇被鍨嬫帴鍙e鉤鍙幫紝鐢ㄤ簬鎻愪緵緙栬瘧浠誨姟杈撳叆鎺ュ彛浠ュ強澶勭悊鐘舵佷俊鎮杈撳嚭鎺ュ彛錛屽苟鏍規嵁杈撳叆鐨勭紪璇戜換鍔$敓鎴愪換鍔″悕錛
鎵╁睍璧勬枡錛
榪囩▼
鎺ユ敹杈撳叆鐨勭紪璇戜換鍔★紱鏍規嵁鎵榪扮紪璇戜換鍔$敓鎴愪換鍔″悕錛涜В鏋愯幏寰楁墍榪頒換鍔″悕瀵瑰簲鐨勬簮浠g爜錛涚紪璇戞墍榪版簮浠g爜錛屽苟杈撳嚭鎵榪扮紪璇戜換鍔$殑澶勭悊鐘舵佷俊鎮銆
涓婅堪鎶鏈鏂規堜腑錛岄氳繃鎺ュ彛騫沖彴鎺ユ敹緙栬瘧浠誨姟錛岀敱鎺ュ彛騫沖彴浠ヤ換鍔″悕褰㈠紡鍙戣搗緙栬瘧璇鋒眰錛岃繘琛岀紪璇戱紝綆鍖栦簡緙栬瘧杈撳叆鎿嶄綔錛涘勭悊鐘舵佷俊鎮錛岄氳繃鎺ュ彛騫沖彴瀹炴椂鎻愪緵緇欏㈡埛絝錛岀畝鍖栦簡緙栬瘧鐩戞帶鎿嶄綔錛屽ぇ澶ц妭綰︿簡浜哄姏璧勬簮銆
鍙傝冭祫鏂欐潵婧愶細鐧懼害鐧劇-緙栬瘧緋葷粺
⑶ 編譯系統通常由哪幾個部分組成
一般說來,編譯程序主要由詞法分析程序、語法分析程序、語義分析程序、中間代碼生成程序、代碼優化程序、目標代碼生成程序、信息表管理程序、錯誤檢查處理程序組成。
⑷ 編譯系統和解釋系統有什麼區別
計算機並不能直接地接受和執行用高級語言編寫的源程序,源程序在輸入計算機時,通過"翻譯程序"翻譯成機器語言形式的目標程序,計算機才能識別和執行。這種"翻譯"通常有兩種方式,即編譯方式和解釋方式。編譯方式是指利用事先編好的一個稱為編譯程序的機器語言程序,作為系統軟體存放在計算機內,當用戶將高級語言編寫的源程序輸入計算機後,編譯程序便把源程序整個地翻譯成用機器語言表示的與之等價的目標程序,然後計算機再執行該目標程序,以完成源程序要處理的運算並取得結果。解釋方式是指源程序進入計算機後,解釋程序邊掃描邊解釋,逐句輸入逐句翻譯,計算機一句句執行,並不產生目標程序。如PASCAL、FORTRAN、COBOL等高級語言執行編譯方式;BASIC語言則以執行解釋方式為主;而PASCAL、C語言是能書寫編譯程序的高級程序設計語言。
編譯程序、解釋程序、匯編程序是3種語言處理程序。其區別主要為:匯編程序(為低級服務)是將匯編語言書寫的源程序翻譯成由機器指令和其他信息組成的目標程序。解釋程序(為高級服務)直接執行源程序或源程序的內部形式,一般是讀一句源程序,翻譯一句,執行一句,不產生目標代碼,如BASIC解釋程序。編譯程序(為高級服務)是將高級語言書寫的源程序翻譯成與之等價的低級語言的目標程序。編譯程序與解釋程序最大的區別之一在於前者生成目標代碼,而後者不生成;此外,前者產生的目標代碼的執行速度比解釋程序的執行速度要快;後者人機交互好,適於初學者使用。用COBOL、FORTRAN等語言編寫的程序考慮到執行速度一般都是編譯執行。
解釋:程序運行時,取一條指令,將其換化為機器指令, 再執行這條機器指令。
編譯:程序運行時之前,將程序的把有代碼編譯為機器代碼,再運行這個程序。
計算機並不能直接地接受和執行用高級語言編寫的源程序,源程序在輸入計算機時,通過"翻譯程序"翻譯成機器語言形式的目標程序,計算機才能識別和執行。這種"翻譯"通常有兩種方式,即編譯方式和解釋方式。
編譯方式是指利用事先編好的一個稱為編譯程序的機器語言程序,作為系統軟體存放在計算機內,當用戶將高級語言編寫的源程序輸入計算機後,編譯程序便把源程序整個地翻譯成用機器語言表示的與之等價的目標程序,然後計算機再執行該目標程序,以完成源程序要處理的運算並取得結果。
解釋方式是指源程序進入計算機後,解釋程序邊掃描邊解釋,逐句輸入逐句翻譯,計算機一句句執行,並不產生目標程序。如PASCAL、FORTRAN、COBOL等高級語言執行編譯方式;BASIC語言則以執行解釋方式為主;而PASCAL、C語言是能書寫編譯程序的高級程序設計語言。
簡單的說,編譯就是全文翻譯,全部翻譯完才執行。解釋就相當於同聲翻譯,邊翻譯邊執行。
解釋語言, 比如以前的Basic, 源程序是文本的, 運行時有一個解釋程序, 它把源程序讀入, 一條一條地現翻譯現執行. 這當然慢了, 因為它要現場解釋嘛. 現在網頁中的VBScript, JavaScript等也是如此.
編譯語言, 比如C或C++, 你編一段程序, 由Turbo C, VC, 或其它什麼編譯器編譯, 變成了一個可執行的程序文件 (在DOS或Windows下, 擴展名為 .EXE的), 以後運行這個編譯好的文件就成了. 因為已經翻譯好了, 所以運行時就沒有現場解釋這一步, 當然快得多了. DOS或Windows下的 EXE 文件, 都是編譯或匯編出來的.
⑸ linux編譯環境和運行linux系統有什麼區別
linux編譯環境和運行linux系統的區別是概念不同和功能不同。
1、概念不同:Linux編譯環境是指在Linux操作系統上安裝和配置了一系列的編譯工具和庫,以便能夠編譯和構建Linux上的應用程序或軟體。而運行Linux系統則是指在計算機硬體上安裝了Linux操作系統,並能夠在計算機上啟動和運行Linux。
2、功能不同:在Linux環境下,程序員可以使用這些工具來編寫和編譯程序,生成可執行文件或庫文件,以便在Linux系統上運行。Linux系統用戶可以使用Linux系統提供的各種應用程序和工具,如文本編輯器、文件管理器、網路瀏覽器等。
⑹ 編譯系統屬於
編譯系統是一種重要的編程工具,它屬於第二類編程環境。在這種環境中,開發者能夠遵循特定語言的規則編寫源代碼。編寫完成後,這些代碼需要經過編譯過程,生成可執行的文件。例如,在DOS操作系統下使用高級語言如FORTRAN、PASCAL、C等,就能體驗到這種編譯系統的功能。編譯系統提供了用於輸入編譯任務的介面,並負責輸出編譯狀態信息。介面平台接收開發者輸入的編譯請求,生成一個任務名稱,然後將這個任務名稱發送給編譯伺服器。
編譯伺服器接收到任務名稱後,解析這個名稱,從而找到相應的源代碼,並進行編譯處理。在此過程中,編譯伺服器還會生成關於編譯任務的狀態信息,這些信息隨後會被傳遞回介面平台,以便開發者了解編譯過程的狀態。整個過程不僅提高了編程的效率,還確保了代碼的正確性和可執行性。
編譯系統的運作機制相當復雜,它不僅僅是簡單的代碼轉換,更涉及到代碼的解析、語法檢查、代碼優化等多個步驟。編譯器需要理解源代碼的結構,確保所有的語法和語義都符合所使用的編程語言規范。編譯過程中,還會進行錯誤檢測,確保代碼中沒有語法錯誤或其他可能影響程序執行的問題。如果編譯過程中發現任何錯誤,編譯器會生成相應的錯誤信息,幫助開發者定位問題所在,並進行修正。
編譯完成後,編譯系統會生成可執行文件。這個過程不僅僅是代碼轉換,還包括了鏈接過程,即將編譯後的對象文件與庫文件進行合並,生成最終的可執行程序。這個程序可以在目標平台上直接運行,無需再次編譯。通過這種方式,編譯系統極大地提高了編程效率,使得開發者能夠更快地實現他們的編程目標。
總的來說,編譯系統在現代軟體開發中扮演著至關重要的角色。它不僅簡化了編程過程,還提高了代碼的質量和可維護性。通過提供強大的編譯和鏈接功能,編譯系統使得開發者能夠更專注於編寫高質量的代碼,而無需過多擔心編譯和運行時的細節問題。
⑺ 關於編譯程序說法正確的是什麼
編譯程序完成高級語言程序到低級語言程序的等價翻譯。