① C#的可執行程序每一次運行時都要進行即時編譯嗎
僅供參考:
1、C#是靜態的強類型語言,所以要先編譯後運行。
2、你這個Exe文件,你是直接點擊打開還是在項目文件中按F5啟動呢,如果是按F5他默認還會進行編譯,然後運行,如果是直接點擊打開Exe,即是直接運行這個已經編譯過的文件,
② 編譯程序和解釋程序均能產生目標程序嗎
不能
因為:編譯程序能產生目標程序而解釋程序則不能
補充:解釋程序也稱為解釋器,它或者直接解釋執行源程序,或者將源程序翻譯成某種中間表示形式後再加以執行;編譯程序(編譯器)則是將源程序翻譯成目標語言程序,然後在計算機上運行目標程序。兩種語言處理程序的根本區別是:在編譯方式下,機器上運行的是與源程序等價的目標程序,源程序和編譯程序都不再參與目標程序的執行過程,而在解釋方式下,解釋程序和源程序(或某種等價表示)要參與到程序的運行過程中,運行程序的控制權在解釋程序。解釋器翻譯源程序時不生成獨立的目標程序,而編譯器則將源程序翻譯成獨立的目標程序。
補充:編譯程序(Compiler,compiling program)也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。編譯程序屬於採用生成性實現途徑實現的翻譯程序。它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
③ 編譯是在程序運行的時候還是在程序開發的時候。
編譯在程序運行之前,用於生成可執行文件。
但注意有部分解釋執行的語言不需要編譯
④ 為什麼「運行可執行程序必須由編譯器來啟動程序」這局話是錯的
是由操作系統來啟動,與編譯器毫無關系
⑤ 編譯時分配內存和運行時分配內存
編譯其實只是一個掃描過程,進行詞法語法檢查,代碼優化而已,編譯程序越好,程序運行的時候越高效。
我想你說的「編譯時分配內存」是指「編譯時賦初值」,它只是形成一個文本,檢查無錯誤,並沒有分配內存空間。
當你運行時,系統才把程序導入內存。一個進程(即運行中的程序)在主要包括以下五個分區:
棧、堆、bss、data、code
代碼(編譯後的二進制代碼)放在code區,代碼中生成的各種變數、常量按不同類型分別存放在其它四個區。系統依照代碼順序執行,然後依照代碼方案改變或調用數據,這就是一個程序的運行過程。
⑥ 編寫的程序一定要有編譯器才能運行嗎
不用,編譯器只是有負責將編譯語言翻譯為機器語言的作用,編譯後的程序就是機器語言了。可以直接在計算機上運行
⑦ 編譯程序和解釋程序均能產生目標程序嗎
不能
因為:編譯程序能產生目標程序而解釋程序則不能
補充:解釋程序也稱為解釋器,它或者直接解釋執行源程序,或者將源程序翻譯成某種中間表示形式後再加以執行;編譯程序(編譯器)則是將源程序翻譯成目標語言程序,然後在計算機上運行目標程序。兩種語言處理程序的根本區別是:在編譯方式下,機器上運行的是與源程序等價的目標程序,源程序和編譯程序都不再參與目標程序的執行過程,而在解釋方式下,解釋程序和源程序(或某種等價表示)要參與到程序的運行過程中,運行程序的控制權在解釋程序。解釋器翻譯源程序時不生成獨立的目標程序,而編譯器則將源程序翻譯成獨立的目標程序。
補充:編譯程序(Compiler,compiling program)也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。編譯程序屬於採用生成性實現途徑實現的翻譯程序。它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
⑧ 運行java程序時,為什麼要先編譯再運行,編譯運行一起進行不行嗎
java講究的是 一次編譯 處處運行,也就是提高了程序的一致性。java的程序之所在不同的操作系統上的運行結果是一樣的,是因為java虛擬機。
所以要運行java都要裝一個叫jdk的東西,裡面有java的虛擬機。這個虛擬機就是來解釋我們寫的代碼。通過這個虛擬機,就實現了代碼的移植。
我們寫好的程序,通過虛擬機,編譯成class文件,然後在運行。但是我們只需要編譯一次即可。
⑨ 進程和程序有什麼區別
程序是靜止的進程是動態的。沒有建立進程的程序不能作為一個獨立單位得到操作系統的認可。一個程序可以對應多個進程,但一個進程只能對應一個程序。進程包括程序和程序處理的對象(數據集)。進程能得到程序處理的結果。進程有一定的生命期,而程序是指令的集合,本身無「運動」的含義。
當程序為procere的譯名時,一個程序即是特定的一系列動作、行動或操作,而這些活動、動作或操作必須被執行於相同方式以為了在相同環境下恆常得出相同的結果(例如緊急應變程序)。程序(program)是為實現特定目標或解決特定問題而用計算機語言編寫的命令序列的集合。為進行某活動或過程所規定的途徑。
程序是由序列組成的,告訴計算機如何完成一個具體的任務。由於現在的計算機還不能理解人類的自然語言,所以還不能用自然語言編寫計算機程序。
⑩ 在編寫程序時要用到編譯器,什麼是編譯器有什麼用
VC Borland C Eclipse 都是編譯器 就是把你的源代碼 編譯 解釋成機器能讀懂的機器碼 因為機器內部是用二進制的嘛 所以最終也就是一串 1 0 組成的序列