程序編譯與執行
開發C程序有四個步驟:編輯、編譯、連接和運行。
任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。
1、預處理:導入源程序並保存(C文件)。
2、編譯:將源程序轉換為目標文件(Obj文件)。
3、鏈接:將目標文件生成為可執行文件(EXE文件)。
4、運行:執行,獲取運行結果的EXE文件。
(1)程序編譯與執行擴展閱讀:
將C語言代碼分為程序的幾個階段:
1、首先,源代碼文件測試。以及相關的頭文件,比如stdio。H、由預處理器CPP預處理為.I文件。預編譯的。文件不包含任何宏定義,因為所有宏都已展開,並且包含的文件已插入。我歸檔。
2、編譯過程是對預處理文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程往往是整個程序的核心部分,也是最復雜的部分之一。
3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可以運行的可執行程序。也就是說,您需要鏈接大量的文件才能獲得「a.out」,即最終的可執行文件。
4、在鏈接過程中,需要重新調整其他目標文件中定義的函數調用指令,而其他目標文件中定義的變數也存在同樣的問題。
Ⅱ 編譯執行和解釋執行的區別
一、主體不同
1、編譯執行:由編譯程序將目標代碼一次性編譯成目標程序,再由機器運行目標程序。
2、解釋執行:將源語言直接作為源程序輸入,解釋執行解釋一句後就提交計算機執行一句,並不形成目標程序。
二、優勢不同
1、編譯執行:相比解釋執行編譯執行效率高,佔用資源小,適合復雜程序
2、解釋執行:開發速度快,出現嚴重BUG的幾率小。
三、缺點不同
1、編譯執行:兼容性差,例如在windows平台上寫的編譯程序一般不可以在unix平台上運行。
2、解釋執行:解析需要時間,不生成目標程序而是一句一句的執行的方式會造成計算機資源的浪費,即執行效率低。
Ⅲ 解釋執行和編譯執行的區別和概念
解釋執行:
由解釋器根據輸入的數據當場執行而不生成任何的目標程序
編譯執行:
先將源代碼編譯成目標語言(如:機器語言)之後通過連接程序連接到生成的目標程序進行執行
Ⅳ 請問java程序在編譯和運行時有什麼區別,系統分別都會做什麼
Java程序的編譯
使用命令: javac *.java
編譯時,會將寫的.java文件(高級語言),生成相應的位元組碼文件.class文件(二進制代碼)
Java程序的執行
使用命令:java *
流程: 載入到 -- 連接 ---- 初始化 ...
運行時,首先會由將相應的.class文件,載入到內存中,並驗證.class文件的有效性,將相應類的Class載入到內存中,並對類中的靜態變數進行初始化操作,然後就由 主 類開始執行
具體的可以看一下 JVM 類載入過程,以及jVM的內存分配機制
Ⅳ 簡述JAVA程序的編輯編譯和運行過程
第一步(編譯): 創建完源文件之後,程序會先被編譯為.class文件。Java編譯一個類時,如果這個類所依賴的類還沒有被編譯,編譯器就會先編譯這個被依賴的類,然後引用,否則直接引用,這個有點象make。
如果java編譯器在指定目錄下找不到該類所其依賴的類的.class文件或者.java源文件的話,編譯器話報「cant find symbol」的錯誤。
第二步(運行):java類運行的過程大概可分為兩個過程:1、類的載入 2、類的執行。需要說明的是:JVM主要在程序第一次主動使用類的時候,才會去載入該類。也就是說,JVM並不是在一開始就把一個程序就所有的類都載入到內存中,而是到不得不用的時候才把它載入進來,而且只載入一次。
特別說明:java類中所有public和protected的實例方法都採用動態綁定機制,所有私有方法、靜態方法、構造器及初始化方法<clinit>都是採用靜態綁定機制。而使用動態綁定機制的時候會用到方法表,靜態綁定時並不會用到。
(5)程序編譯與執行擴展閱讀:
Java整個編譯以及運行的過程相當繁瑣,本文通過一個簡單的程序來簡單的說明整個流程。
Java代碼編譯:是由Java源碼編譯器來完成;
Java位元組碼的執行:是由JVM執行引擎來完成
Java程序從源文件創建到程序運行要經過兩大步驟:
1、源文件由編譯器編譯成位元組碼(ByteCode)
2、位元組碼由java虛擬機解釋運行。因為java程序既要編譯同時也要經過JVM的解釋運行,所以說Java被稱為半解釋語言( "semi-interpreted" language)。
Ⅵ 如何編譯並運行C語言程序
1、創建一個文件名為main.c,然後用任意一個款你熟悉的文本編輯軟體,比如說記事本,在裡面輸入下面的代碼,記住,要用文本文件編輯軟體,不能用word的。
(6)程序編譯與執行擴展閱讀:
c語言小游戲實現原理
1、二維數組實現棋盤
二維數組,用兩個for 循環,隨便輸出一個固定符號做棋盤,如 *
2、判定玩家
設計一個計步變數step, 每走一步 step++, 則玩家=step%2+1;
3、判定輸贏(重點)
設計方向數組 dircX[4] ,dircY[4],因為如果要判斷是否練成五子,只有1豎著2橫著3斜下4斜上
豎著的話就是 x-1,y不變
橫著的話就是x不變,y+1; 斜下: x+1,y+1; 斜上 x-1;y+1
這樣你就可以賦值dircX={-1,0,1,-1} dercY={0,1,1,1}
每當玩家落下一子,就全局判斷每個子的四個方向有沒有第二子,如果有,循環判斷有沒有第三子(利用 x+=dircX[1]),直到五子完成,結束。
Ⅶ 程序與編譯程序執行策略的區別是什麼
你好,很高興能為你解答,看到請採納,謝謝!
編譯執行 是把源程序編譯成 目標碼後 再執行目標碼。例如,c語言程序,必須給出完整程序,編譯器,通過幾次掃描,翻譯,編排,鏈接,變成 exe 文件 執行。編譯執行,程序執行時間短,效率高。
解釋執行,並不把整個程序 變成目標碼,而是按順序,讀一句,解釋一句,執行一句,所以,沒給完整程序,它就可以執行了。例如,瀏覽器處理網頁,網頁程序,每下來一句,就可以解釋執行一句,不用等整個網頁下來後再處理。
Ⅷ 如何使用 Visual Studio.Net 編譯和執行 C# 程序,步驟是
啟動 Visual Studio。
在菜單欄上,選擇 File -> New -> Project。
從模板中選擇 Visual C#,然後選擇 Windows。
選擇 Console Application。
為的項目制定一個名稱,然後點擊 OK 按鈕。
新項目會出現在解決方案資源管理器(Solution Explorer)中。
在代碼編輯器(Code Editor)中編寫代碼。
點擊 Run 按鈕或者按下 F5 鍵來運行程序。會出現一個命令提示符窗口(Command Prompt window),顯示 Hello World。
打開一個文本編輯器,添加上面提到的代碼。
保存文件為 helloworld.cs。
打開命令提示符工具,定位到文件所保存的目錄。
鍵入 csc helloworld.cs 並按下 enter 鍵來編譯代碼。
如果代碼沒有錯誤,命令提示符會進入下一行,並生成 helloworld.exe 可執行文件。
接下來,鍵入 helloworld 來執行程序。
將看到 "Hello World" 列印在屏幕上。
您也可以使用命令行代替 Visual Studio IDE 來編譯 C# 程序:
Ⅸ 簡述將源程序編譯成可執行程序的過程
一個源程序到一個可執行程序的過程:預編譯、編譯、匯編、鏈接。其中,編譯是主要部分,其中又分為六個部分:詞法分析、語法分析、語義分析、中間代碼生成、目標代碼生成和優化。
預編譯:主要處理源代碼文件中的以「#」開頭的預編譯指令。處理規則如下:
1、刪除所有的#define,展開所有的宏定義。
2、處理所有的條件預編譯指令,如「#if」、「#endif」、「#ifdef」、「#elif」和「#else」。
3、處理「#include」預編譯指令,將文件內容替換到它的位置,這個過程是遞歸進行的,文件中包含其他文件。
4、刪除所有的注釋,「//」和「/**/」。
5、保留所有的#pragma 編譯器指令,編譯器需要用到他們,如:#pragma once 是為了防止有文件被重復引用。
6、添加行號和文件標識,便於編譯時編譯器產生調試用的行號信息,和編譯時產生編譯錯誤或警告是能夠顯示行號。
(9)程序編譯與執行擴展閱讀:
編譯過程中語法分析器只是完成了對表達式語法層面的分析,語義分析器則對表達式是否有意義進行判斷,其分析的語義是靜態語義——在編譯期能分期的語義,相對應的動態語義是在運行期才能確定的語義。
其中,靜態語義通常包括:聲明和類型的匹配,類型的轉換,那麼語義分析就會對這些方面進行檢查,例如將一個int型賦值給int*型時,語義分析程序會發現這個類型不匹配,編譯器就會報錯。
Ⅹ 如何在 Source Insight 中編譯和執行Java 程序
由於 Source Insight 的代碼易讀的優越性能,,使用 Source Insight 編輯 Java 代碼是一個不錯的選擇,當然它不能與專業的 Eclipse 及 Netbeans 這樣的IDE 相比;
本人使用它是因為 Source Insight 的體積比較小,可以自定義設置用戶命令,用起來也算是得心應手了。
下面介紹一下本人總結的一點關於編譯和執行Java程序任務對 Source Insight 用戶自定義命令的設置方法。
創建編譯 Java 源程序的 用戶自定義命令
● 首先在硬碟中創建一個 Java 程序編譯和執行的指定路徑,我這里創建的是 D:/My Documents/Source Insight/JavaPorjects
這個目錄是主要放置 Java 源文件,在這個目錄下我又創建了一個 sourcefiles.list 文件,創建這個文件的目的是為了後面編譯 Java 程序時需要用它。
● 再上面創建的目錄下再創建一個 Classes 子目錄,該目錄是為了放置編譯後的 Java 位元組碼文件;同時在這個目錄下創建一個空的批處理文件 ClassStart.bat ,在下面的步聚中介紹如何編輯這個批處理文件。
● 打開 Source Insight 程序 創建一個 Test_SWT.java 文件 保存在 D:/My Documents/Source Insight/JavaPorjects 目錄下;然後在 Source Insight 中打開這個目錄下的 sourcefiles.list 文件,在這個空文件中輸入剛才創建的那個 Test_SWT.java 文件的名稱如下所示,然後保存 sourcefiles.list 文件。
sourcefiles.list
[java] view plain
Test_SWT.java