java程序在編譯(javac .java文件名 指令)後會產生位元組碼文件,也就是.class文件。然後根據虛擬機所在系統(l例如:xp、win7、Linux)的不同將位元組碼文件轉變為不同的可執行文件,這也是java程序可跨平台的根據。
❷ 匯編源程序經過編譯後是什麼誰能提供,我想看一下。謝謝
匯編程序編寫的一般過程:
1、編輯:EDIT 文件名.ASM
2、匯編:MASM 文件名;
用.ASM(源文件)生成.OBJ(目標文件),
也可生成.LST(列表)、.CRF(交叉引用)
3、連接:LINK 文件名;
用.OBJ文件生成.EXE(可執行文件)
也可生成.MAP(存儲映象),
還可使用.LIB(庫文件)
4、調試:DEBUG 文件名.EXE
按每個模塊(子程序)的輸入輸出關系檢查
即編譯後生成obj文件,鏈接後生成exe文件
❸ 用 C 語言編寫的源文件經過編譯,若沒有產生編譯錯誤,則系統將( )。
答案是錯誤的,系統將生成目標文件,選B。因為C語言中編譯程序是把一個源程序翻譯成目標程序的工作過程。這一過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。在語法分析過程中發現有語法錯誤,給出提示信息,沒有錯誤則生成目標文件。
C語言通過匯編把匯編語言代碼翻譯成目標機器指令。對於被翻譯系統處理的每一個C語言源程序,都將最終經過這一處理而得到相應的目標文件。目標文件中所存放的也就是與源程序等效的目標的機器語言代碼。
C語言的源文件成為目標文件的過程:
1、源文件經過預處理,生成.i的文件 (預處理器cpp)。
2、將預處理後的文件轉換成匯編語言,生成文件.s文件。
3、從匯編變為目標代碼(機器代碼)生成.o(.obj)的文件(匯編器as)。
4、連接目標代碼,生成可執行程序(連接器ld)。
❹ C語言源程序文件經過編譯連接之後生成一個後綴為_____的文件。
如果只生成一個文件,那麼這個題目答案是B。編譯(compile)後生成目標文件,後綴:.obj。也就是機器碼。
然後鏈接器(Linker) 連接生成可執行文件,後綴:.exe。最後運行命令(go),直接運行.exe文件。
(4)程序經過編譯後的結果擴展閱讀:
簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。
一個現代編譯器的主要工作流程:源代碼(source code) →預處理器(preprocessor) →編譯器(compiler) →目標代碼(object code) →鏈接器(Linker) → 可執行程序(executables)
高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。
編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。
源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、Java、漢語編程等或匯編語言。
而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。
對於C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的位元組碼(ByteCode)。
最後運行的時候通過通用語言運行庫的轉換,編程最終可以被CPU直接計算的機器碼(NativeCode)。
❺ 怎樣查看C/C++程序編譯過後的結果
通常在項目下的obj文件夾里,二進制文件
❻ C語言程序編譯後產生哪些類型的文件這些文件的作用是什麼
不同的系統,產生的文件不一樣;
win:
->.obj目標文件
->.obj目標文件->.exe可執行文件
->.rc
。。。。
❼ 一個程序通過了編譯,並且得到了輸出結果,這個結果是否一定正確為什麼
不一定,好比如說你定義了一個有10個元素的數組,然後將另一個有11個元素的數組逐一賦值給它,程序中控制它正確賦值,最後輸出第一個數組各元素的值,但是雖然通過了編譯,也輸出了結果,但是你還是沒能把11個元素的都賦值過去,這就是達不到所想的賦值,當然是不正確的了。還有其他一些情況,當你的編程經歷越多時就會碰到的了
❽ java程序經編譯後會產生什麼
產生:byte code
Java位元組碼是Java源文件編譯產生的中間文件
java虛擬機是可運行java位元組碼的假想計算機 java的跨平台性也是相對與其他編程語言而言的
先介紹一下c語言的編譯過程吧先是C語言源程序 也就是c的文件經過C編譯程序編譯後,生成windows可執行文件exe文件,然後在windows中執行。再介紹java的編譯過程先是java源程序擴展名為java的文件,由java編譯程序將java位元組碼文件,就是class文件然後在java虛擬機中執行。機器碼是由CPU來執行的。Java編譯後是位元組碼, 電腦只能運行機器碼。Java在運行的時候把位元組碼變成機器碼。C/C++在編譯的時候直接編譯成機器碼。
❾ 求編譯運行下面的程序,結果是什麼
答案是B:先輸出A,再輸出B
A的main方法new了B,調用B的test方法;B的test方法裡面,先調用父類(super)的test,也就是輸出A,然後輸出B
❿ 用高級語言編寫的源程序,經編譯後產生的是
目標程序。
目標程序,又稱為「目的程序」,為源程序經編譯可直接被計算機運行的機器碼集合,在計算機文件上以.obj作擴展名----由語言處理程序(匯編程序,編譯程序,解釋程序)將源程序處理(匯編,編譯,解釋)成與之等價的由機器碼構成的,計算機能夠直接運行的程序,該程序叫目標程序。
目標代碼盡管已經是機器指令,但是還不能運行,因為目標程序還沒有解決函數調用問題,需要將各個目標程序與庫函數連接,才能形成完整的可執行程序。
(10)程序經過編譯後的結果擴展閱讀
計算機並不能直接地接受和執行用高級語言編寫的源程序,源程序在輸入計算機時,通過"翻譯程序"翻譯成機器語言形式的目標程序,計算機才能識別和執行。這種"翻譯"通常有兩種方式,即編譯方式和解釋方式。
編譯方式是指利用事先編好的一個稱為編譯程序的機器語言程序,作為系統軟體存放在計算機內,當用戶將高級語言編寫的源程序輸入計算機後,編譯程序便把源程序整個地翻譯成用機器語言表示的與之等價的目標程序。
然後計算機再執行該目標程序,以完成源程序要處理的運算並取得結果。解釋方式是指源程序進入計算機後,解釋程序邊掃描邊解釋,逐句輸入逐句翻譯。
計算機一句句執行,並不產生目標程序。如PASCAL、FORTRAN、COBOL等高級語言執行編譯方式;BASIC語言則以執行解釋方式為主;而PASCAL、C語言是能書寫編譯程序的高級程序設計語言。