當前位置:首頁 » 編程軟體 » 語言運行前為什麼需要編譯

語言運行前為什麼需要編譯

發布時間: 2023-07-19 01:45:55

『壹』 運行java程序時,為什麼要先編譯再運行,編譯運行一起進行不行嗎

java講究的是 一次編譯 處處運行,也就是提高了程序的一致性。java的程序之所在不同的操作系統上的運行結果是一樣的,是因為java虛擬機。

所以要運行java都要裝一個叫jdk的東西,裡面有java的虛擬機。這個虛擬機就是來解釋我們寫的代碼。通過這個虛擬機,就實現了代碼的移植。

我們寫好的程序,通過虛擬機,編譯成class文件,然後在運行。但是我們只需要編譯一次即可。

『貳』 執行c語言一定要先編譯么,不可以直接執行么

一般來說編譯過後就成了基本上能執行的2進制代碼。但是這些2進制代碼並不完善,一個程序往往需要調用不止一部分的代碼,所以需要把這些代碼全部整合起來才能執行。
即時你的程序看起來只有一個文件,但是編譯過後,多多少少裡面至少會調用到一些操作系統功能,和其它的一些設置,所以依然需要組建這個過程把這個程序和這些系統默認的代碼組建起來形成一個完成、單一的可執行文件。所以一般組建過程就包含了組建內部和外部代碼,一般來說內部代碼就是我說的系統預留的必要的一些代碼(例如怎麼具體完成把一些字元顯示在屏幕上呀這些功能),而外部代碼就是額外的調用自己寫得或者別人寫得其它程序功能(往往當你的程序調用了非c標准函數的時候)。
所以就算你的代碼可以編譯,但是可能因為組建並不成功(例如需要組建的代碼本身有bug,或者丟失,或者版本不匹配),你的程序依然可能無法正確運行。

『叄』 小白求助,編譯是什麼,為什麼需要編譯

人與機器交流(即人讓計算機按照人的意願做事)依賴於語言
語言的層次是:自然語言->高級編程語言->匯編語言->機器碼
人最熟悉的肯定是自然語言(就是你平時說的話)。
而計算機的cpu只認識二進制的機器碼,機器碼指導計算機做什麼操作(如邏輯運算)。
高級編程語言跟自然語言的關系更近些,對人來說相當於自然語言的白痴版,如java中的對象與類的概念可能對應於現實世界的某種事物,如C語言中的函數可能對應了一個功能,比如列印文件,經過簡單的訓練,人也能大概的讀懂。
匯編語言和機器碼更接近些,每個匯編指令一般都會對應一條機器碼,而高級編程語言中的一個語句(如if else什麼的)可能會對應多條匯編指令,匯編指令一般就是算術運算(如add)、邏輯運算(如and)、數據傳送(如mov)、條件判斷、跳轉等,只能用這些簡單功能的匯編指令組合來完成一個復雜的功能。人看懂匯編就很吃力了,更別提用匯編來完成想要的功能,太吃力,這個過程還是交個編譯器比較好。
而機器碼對於一般的程序員來說,就是天書,也基本沒人願意去看。
自然語言最容易表述人們的要求,當用戶用自然語言表述了需要的功能後,從自然語言到高級語言的轉換過程由程序員來完成,而由高級編程語言到匯編、由匯編到機器碼的過程都由編譯器來完成,由編譯器完成的這個過程也就是編譯了。
高級編程語言的代碼經過編譯階段成為匯編代碼,匯編代碼經過匯編階段變成機器碼,機器碼文件經過鏈接階段變成可執行文件(.exe)。一般編譯是指的編譯階段和匯編階段的組合,編譯器的工作一般是編譯和鏈接。
這就是我的理解,希望你幫到你。

『肆』 java為什麼要編譯

因為java的跨平台特性,java所謂的一次編譯,到處運行,關鍵就是在於java的虛擬機,也就是jvm,jvm只認識位元組碼,所以你寫好的java代碼就需要編譯成位元組碼才能在jvm上運行。其實不只是java需要編譯,C也需要編譯,機器本身並不能認識你寫的代碼,它們只認識0、1這樣的位元組碼,所以無論是你用什麼樣的語言編寫的代碼,要想最終在物理機器上運行,都要進行編譯。

『伍』 為什麼要對C源程序進行編譯、鏈接

首先要說的是C語言屬於高級語言,不能直接被計算機識別而執行,所以需要一些操作來轉化。。一開始是編譯預處理,對宏,包含指令,編譯指令等進行處理,然後是詞法語法分析,將源代碼翻譯成中間代碼(一般是匯編),接著優化代碼,,然後將中間代碼翻譯成機器語言(目標文件),機器語言是計算機的基層語言,能被計算機直接識別。。接著鏈接目標文件,生成可以執行文件。。。大概就是這樣。。詳細的LZ可看這個總結。。http://bbs.zdnet.com.cn/thread-1614727-1-1.html

『陸』 java語言在被設計的時候為什麼會加上 編譯 這一步

java語言在被設計的時候為什麼會加上編譯這一步,其實主要的考慮因素是性能,靜態語言的執行效率比動態語言要高得多。所以需要編譯。

『柒』 c語言為何需要編譯和連接才能運行

的文件(也稱為源代碼)而已,需要經過1定的處理才能轉換成機器上可運行的可履行文件。
我們將對C語言的這類處理進程稱為編譯與鏈接。

『捌』 為什麼要編譯

在匯編語言之後,上世紀50年代,科學家有發明了好幾種用人類語言書寫程序的方法,被稱為計算機高級語言。如PASCAL語言、BASIC語言、C語言等。高級語言源程序都可以用記事本(Notepad)打開和編輯。高級語言源程序也要經過翻譯才能被計算機接受。把高級語言翻譯成機器語言的方法大體有兩種,一種被稱作「解釋」,如GWBASIC、BASIC、QBASIC等語言,這種方式下,源程序被翻譯出一個完整的操作步驟,計算機就作出相應反應,執行一步,再翻譯再執行,逐步達到源程序制定目標。另一種方式被稱作「編譯」,如PASCAL語言和C語言等,這種方式下,計算機把源程序全部翻譯成它自身能讀懂的、被稱作目標程序的機器語言程序,然後再一次執行。二者的區別在於編譯程序能產生目標程序而解釋程序則不能產生目標程序。用高級程序設計語言編寫的程序,要轉換成等價的可執行程序,必須經過編譯和連接。同樣一段高級語言程序通過不同的編譯器可能產生不同的可執行程序。計算機不能直接執行符號化的程序,而是通過匯編程序、解釋程序和編譯程序而將符號程序轉換為可執行程序。高級語言需要編譯成目標代碼或通過解釋器解釋後才能被CPU執行。

『玖』 突然想知道,為什麼有的語言需要編譯之後運行,而有的語言則不需要呢 C, ruby 請分析謝謝!

我們用的大部分程序設計語言都是高級語言,高級語言要執行,必須要先變成計算機能識別的匯編語言.將高級語言變成匯編語言的過程叫做翻譯,目前有兩種形式的翻譯方法,一種是編譯,一種是解釋.C就屬於編譯方式,執行前一定先編譯一次.而B語言就是解釋方式,解釋一條執行一條,所以執行先不需要編譯一下.

『拾』 C語言為什麼要先編譯成匯編語言

C語言,具有可移植性,或者說同樣的代碼可以在不同cpu平台上運行得到同樣的結果
匯編語言,移植性差,一般針對某型cpu,每個類型的cpu都有自己的匯編語言
為保證C語言編制的通用演算法的可移植性,比如我們用C編寫了一套mp3解碼演算法程序,要在pc機上、手機上都能用,那麼我們就採用通用的C編譯器,將C語言程序編譯成指定CPU的匯編語言,再匯編成機器可執行程序。
另一個用途是程序優化問題,在C語言層次,由於是高級語言,不涉及底層硬體,那麼底層硬體的特性不能夠得到充分利用,在需要優化演算法的場合,我們需要將C語言演算法編譯生成匯編程序,然後修改需要優化的匯編程序達到目的。比如,你在手機上經常會遇到音頻解碼器,需要安裝,而且不同的cpu需要選擇不同的解碼器,這些解碼器應當就是在匯編層次上優化了演算法的可執行代碼,關鍵部分經過匯編級優化,不需要優化部分仍然使用C語言編譯的結果。

熱點內容
編程obj 發布:2025-02-06 19:59:52 瀏覽:842
津貼腳本 發布:2025-02-06 19:44:10 瀏覽:739
好分數里如何修改密碼 發布:2025-02-06 19:42:30 瀏覽:155
mysql存儲過程判斷 發布:2025-02-06 19:40:15 瀏覽:853
bat編譯器的作用 發布:2025-02-06 19:26:54 瀏覽:343
phpajaxsession 發布:2025-02-06 19:20:56 瀏覽:623
西安java學習 發布:2025-02-06 19:15:44 瀏覽:623
微信電影源碼網站 發布:2025-02-06 18:55:21 瀏覽:934
本地建mysql資料庫 發布:2025-02-06 18:54:23 瀏覽:762
屏幕看不清了如何輸密碼 發布:2025-02-06 18:51:14 瀏覽:333