程序先編譯後執行
⑴ asp程序必須先編譯才能執行
asp是解釋型的編程語言,是解釋執行的,伺服器負責解釋輸出到瀏覽器,是不需要編譯的。
asp.net則是編譯型語言,請求伺服器的時候,伺服器將請求由.Netframework編譯,再將結果返回。
⑵ 運行java程序時,為什麼要先編譯再運行,編譯運行一起進行不行嗎
java講究的是 一次編譯 處處運行,也就是提高了程序的一致性。java的程序之所在不同的操作系統上的運行結果是一樣的,是因為java虛擬機。
所以要運行java都要裝一個叫jdk的東西,裡面有java的虛擬機。這個虛擬機就是來解釋我們寫的代碼。通過這個虛擬機,就實現了代碼的移植。
我們寫好的程序,通過虛擬機,編譯成class文件,然後在運行。但是我們只需要編譯一次即可。
⑶ c語言文件的編譯與執行的四個階段並分別描述
開發C程序有四個步驟:編輯、編譯、連接和運行。
任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。
1、預處理:導入源程序並保存(C文件)。
2、編譯:將源程序轉換為目標文件(Obj文件)。
3、鏈接:將目標文件生成為可執行文件(EXE文件)。
4、運行:執行,獲取運行結果的EXE文件。
(3)程序先編譯後執行擴展閱讀:
將C語言代碼分為程序的幾個階段:
1、首先,源代碼文件測試。以及相關的頭文件,比如stdio。H、由預處理器CPP預處理為.I文件。預編譯的。文件不包含任何宏定義,因為所有宏都已展開,並且包含的文件已插入。我歸檔。
2、編譯過程是對預處理文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程往往是整個程序的核心部分,也是最復雜的部分之一。
3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可以運行的可執行程序。也就是說,您需要鏈接大量的文件才能獲得「a.out」,即最終的可執行文件。
4、在鏈接過程中,需要重新調整其他目標文件中定義的函數調用指令,而其他目標文件中定義的變數也存在同樣的問題。
⑷ C語言中一個程序寫完後怎麼運行啊
當編寫完一個程序後,需要首先進行編譯,然後再運行。
如下圖所示,程序編寫完畢後,點擊工具欄中的Execute,選擇compile(編譯)。
如果沒有錯誤,再選擇Execute,選擇run(運行)。
(4)程序先編譯後執行擴展閱讀:
dll因為某些原因(最大的可能是因為它是個病毒或流氓軟體的dll文件,被殺軟刪除了)丟失了,但其相關的注冊信息卻還在,導致系統開機時還載入它,卻又找不到它的文件,所以報錯。
如果你點擊「確定」後,系統沒有什麼不正常,並且可以正常運行的話,你可以用這個軟體清理掉這個開機載入項,以後開機就不會出現這個信息了。
下載和安裝編譯器。C語言需要通過編譯器解釋為計算機可以理解的機器碼。 編譯器通常是免費的, 不同的操作系統上一般使用不同的編譯器。
對於Windows系統, 可以嘗試 Microsoft Visual Studio Express,其是Windows平台上最流行的多語言IDE(集成開發環境),其集成了Microsoft開發的C語言編譯器。對於OS X系統, Xcode是一款優秀的多語言IDE,其集成了C語言的編譯器。對於Linux, gcc是一個不錯的也是最流行的選擇。
⑸ 編譯程序是直接執行源程序嗎
編譯程序一般不是執行源程序,而是把我們寫的文字型的代碼編譯為二進制的內容,然後去執行二進制的內容。
有些編程語言是需要編譯的必須先編譯在執行,而有些是腳本型的,則直接運行源程序就可以。
⑹ java程序運行的五個步驟
1、Java程序從源文件創建到程序運行要經過兩大步驟:1、源文件由編譯器編譯成位元組碼(ByteCode) 2、位元組碼由java虛擬機解釋運行。因為java程序既要編譯同時也要經過JVM的解釋運行,所以說Java被稱為半解釋語言("semi-interpreted" language)。
第一步(編譯): 創建完源文件之後,程序會先被編譯為.class文件。Java編譯一個類時,如果這個類所依賴的類還沒有被編譯,編譯器就會先編譯這個被依賴的類,然後引用,否則直接引用,這個有點像make。如果java編譯器在指定目錄下找不到該類所其依賴的類的.class文件或者.java源文件的話,編譯器話報「cant find symbol」的錯誤。
編譯後的位元組碼文件格式主要分為兩部分:常量池和方法位元組碼。常量池記錄的是代碼出現過的所有token(類名,成員變數名等等)以及符號引用(方法引用,成員變數引用等等);方法位元組碼放的是類中各個方法的位元組碼。
第二步(運行):java類運行的過程大概可分為兩個過程:1、類的載入 2、類的執行。需要說明的是:JVM主要在程序第一次主動使用類的時候,才會去載入該類。也就是說,JVM並不是在一開始就把一個程序就所有的類都載入到內存中,而是到不得不用的時候才把它載入進來,而且只載入一次。
2、下面是程序運行的詳細步驟:
在編譯好java程序得到Main.class文件後,在命令行上敲java Main。系統就會啟動一個jvm進程,jvm進程從classpath路徑中找到一個名為Main.class的二進制文件,將Main的類信息載入到運行時數據區的方法區內,這個過程叫做Main類的載入。
然後JVM找到Main的主函數入口,開始執行main函數。
main函數的第一條命令是Animal animal = new Animal("Puppy");就是讓JVM創建一個Animal對象,但是這時候方法區中沒有Animal類的信息,所以JVM馬上載入Animal類,把Animal類的類型信息放到方法區中。
載入完Animal類之後,Java虛擬機做的第一件事情就是在堆區中為一個新的Animal實例分配內存, 然後調用構造函數初始化Animal實例,這個Animal實例持有著指向方法區的Animal類的類型信息(其中包含有方法表,java動態綁定的底層實現)的引用。
當使用animal.printName()的時候,JVM根據animal引用找到Animal對象,然後根據Animal對象持有的引用定位到方法區中Animal類的類型信息的方法表,獲得printName()函數的位元組碼的地址。
開始運行printName()函數。
⑺ C語言編寫好代碼後,怎麼編譯,最後生成可執行文件
材料/工具:vc6.0
1、打開c語言編輯工具,在工具中寫入程序的源代碼。
⑻ 編譯是在程序運行的時候還是在程序開發的時候。
編譯在程序運行之前,用於生成可執行文件。
但注意有部分解釋執行的語言不需要編譯
⑼ 執行C語言一定要先編譯么,不可以直接執行么
一般來說編譯過後就成了基本上能執行的2進制代碼。但是這些2進制代碼並不完善,一個程序往往需要調用不止一部分的代碼,所以需要把這些代碼全部整合起來才能執行。
即時你的程序看起來只有一個文件,但是編譯過後,多多少少裡面至少會調用到一些操作系統功能,和其它的一些設置,所以依然需要組建這個過程把這個程序和這些系統默認的代碼組建起來形成一個完成、單一的可執行文件。所以一般組建過程就包含了組建內部和外部代碼,一般來說內部代碼就是我說的系統預留的必要的一些代碼(例如怎麼具體完成把一些字元顯示在屏幕上呀這些功能),而外部代碼就是額外的調用自己寫得或者別人寫得其它程序功能(往往當你的程序調用了非c標准函數的時候)。
所以就算你的代碼可以編譯,但是可能因為組建並不成功(例如需要組建的代碼本身有bug,或者丟失,或者版本不匹配),你的程序依然可能無法正確運行。
⑽ java既然是先編譯,然後再執行編譯後的位元組碼文件,那是不是在編譯後就可以刪除源文件了
理論上是的,你第一步的 javac 將你的 .java 文件 編譯成 .class 位元組碼,之後 用 java 命令來運行 .class 文件。所以是可以刪掉源文件,但是一般程序都是要調試,調試後你的源文件就要變動,變動後就要重新編譯,所以一般沒人刪源文件,然後再重新寫一份。