編譯器運行是什麼意思
⑴ 匯編語言的編譯器是運行在什麼平台上
機器可以識別的是高低電平,將高低電平用 0,1 來對應表達,就是二進制代碼
二進制代碼肯定是不便於記憶的,因此,為了便於記憶,將可以執行一項功能的二進制代碼段用一個符號來代替,就產生了匯編語言。
那麼匯編的過程,就是將這個符號還原成二進制代碼的過程。
這個過程,可以由人工來做,由機器來做...
那麼,我們的電腦上來完成這個過程的,就是傳說中的編譯器。
這個匯編的編譯器是怎麼做成的?是直接用二進制代碼0和1寫的嗎?
編譯器本身就是一個可執行程序。
編寫這個可程序,和編寫通常程序的過程相同,所以隨意用什麼語言來寫。然後再通過編譯,生成可執行程序。
那這個二進制的0、1是以什麼形式存放的,存放在哪裡?
可執行程序是什麼形式的,取決於操作系統。
存放形式,取決於存儲器的物理性質,可以肯定的是存放在存儲器。
如果用我們的電腦,怎麼輸入這些0、1,讓電腦識別?
用我們的電腦,需要通過輸入設備來輸入,通常為鍵盤、滑鼠...
過去就像樓上說的,也有用紙帶、撥碼開關或者其他什麼的。
----------------------------------------------
其實我就是想弄明白硬體和軟體是怎麼鍥和的,操作系統這個巨大的軟體可以直接在電腦硬體上運行,那其他軟體為什麼一定要在操作系統上才能運行呢?
其他的軟體不是一定要在操作系統上才能運行。只是,操作系統使軟體的運行不必考慮硬體的差別,也就是說,針對操作系統平台所編寫的程序可以適用於該操作系統可以運行的所有硬體平台,而不必針對每一個不同的硬體都編寫一個程序。
是不是要調用系統裡面的一些庫文件啊?如果是,那windows怎麼不需要啊?它怎麼能只憑自己在安裝時所帶的那一套各種各樣的文件就能在裸機上運行了呢?
WINDOWS本身就是操作系統...
那個,你要實在想明白這個問題,就看看計算機組成原理還有軟體工程的相關內容吧。
⑵ 編譯器有什麼用
簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (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)。
⑶ 編譯器運行問題
當然有關系啊·Vista系統對很多軟體都是不兼容的哦~現在工作環境都是用XP的~Vista還沒普及到工作環境中呢!辦公軟體一般都不完全支持Vista的~
⑷ c語言編譯器如何運行
編譯共分為四個階段:預處理階段、編譯階段、匯編階段、鏈接階段。
1、預處理階段:
主要工作是將頭文件插入到所寫的代碼中,生成擴展名為「.i」的文件替換原來的擴展名為「.c」的文件,但是原來的文件仍然保留,只是執行過程中的實際文件發生了改變。(這里所說的替換並不是指原來的文件被刪除)
2、匯編階段:
插入匯編語言程序,將代碼翻譯成匯編語言。編譯器首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼的實際要做的工作,在檢查無誤後,編譯器把代碼翻譯成匯編語言,同時將擴展名為「.i」的文件翻譯成擴展名為「.s」的文件。
3、編譯階段:
將匯編語言翻譯成機器語言指令,並將指令打包封存成可重定位目標程序的格式,將擴展名為「.s」的文件翻譯成擴展名為「.o」的二進制文件。
4、鏈接階段:
在示例代碼中,改代碼文件調用了標准庫中printf函數。而printf函數的實際存儲位置是一個單獨編譯的目標文件(編譯的結果也是擴展名為「.o」的文件),所以此時主函數調用的時候,需要將該文件(即printf函數所在的編譯文件)與hello world文件整合到一起,此時鏈接器就可以大顯神通了,將兩個文件合並後生成一個可執行目標文件。
⑸ c++編譯器里的調試,編譯,運行都是什麼意思啊,有什麼區別啊
出現這種情況的原因可能有很多,最常見的就是源代碼和程序不匹配導致的,可以這樣設置
工具-》選項-》調試
將其中的「要求源文件與原始版本完全匹配」的鉤去掉,然後再試試看。
⑹ 手機c語言編譯器怎麼運行
使手機實現一般只有PC機才具有的功能--下載各種程序並運行,是目前手機發展的一個重要方向。為此,人們提出了各種各樣的解決方案,其中基於JAVA的J2ME方案無疑是最引人注目的。JAVA語言由於其平台無關、開放、網路功能強、面向對象、安全等特點,一經SUN公司提出,就隨著Internet的發展而風靡全世界,在國外已成為軟體開發人員的必修語言。特別是他的"一次編寫、到處運行"的跨平台優點,對於手機領域來說更具有重要的意義。因為目前手機的種類繁多,各種廠商都有自己的標准,如何使他們能運行同一種標準的程序成為必須要解決的問題。採用JAVA語言後,各種手機只要實現JAVA虛擬機(JVM)就可以運行JAVA程序,這種方法可以說是目前情況下最為理想的一種解決方案。J2ME(JAVA 2 Micro Edition)是用於嵌入式系統的JAVA,他是SUN公司對標準的JAVA版本J2SE做了最大程度的精簡後得到的一種JAVA應用程序運行環境,在最簡單的情況下他只有幾十kB,特別適合在手機、PDA等設備中使用。手機廠商如果在自己的手機中實現了J2ME規范,就可以從網路下載並運行JAVA程序,從而大大擴展了手機的功能。鑒於JAVA在Internet上取得的巨大成功,我們有理由相信,J2ME能夠把這種成功延伸到手持設備領域,為將來的手機和互聯網融為一體提供有利的條件。本文對J2ME構架做一個簡單的介紹,並通過一個具體的程序例子來說明JAVA手機程序的特點及開發過程。2 J2ME概述J2ME是一種新的、非常小的JAVA應用程序運行環境,他所定義的構架主要用於在手持式設備上推廣使用JAVA技術。SUN公司將為各種硬體規模的設備提供合適的配置,這些配置包括虛擬機、核心類庫及API。
⑺ 編譯器是什麼。
1、 visual c++6.0 (win8系統下不好用,C/C++)-Microsoft Visual C++ ;
2、 visual studio (2005、2008、2010、2012、2013)- Microsoft Visual Studio ;
3、 win-tc非常方便:不騙你,2000/XP/7都可以用 ;
4、 Code::Blocks(win7、8都可以用);
5、 Turb C(只能編譯C語言) ;
6、 gcc (GNU編譯器套件) ;
7、 DEV C++;
8、 C-Free;
9、 Borland C++、WaTCom C++、Borland C++ Builder、GNU DJGPP C++、Lccwin32 C Compiler3.1、High C、My Tc等,由於C語言比較成熟,所以編程環境很多;
10、還常用souceinsight ,在工作中還用Labwindows編程,直接調試運行,不過那是有工程背景,有工作經驗的技術人員用的。
⑻ C++中什麼是編譯時,什麼是運行時,二者有何區別
編譯階段主要進行語法的檢查,無誤。將程序代碼轉換成目標代碼(二進製表示,打開看不懂),沒有和操作系統進行連接,不能運行。完成連接後,程序能夠進入系統運行。
運行時,一定是編譯過的,沒有語法錯誤。編譯時,沒有生成目標文件,可能有語法錯誤。
⑼ 如果操作系統是C語言開發的,那麼C編譯器運行在什麼上呢
操作系統是c開發的,跟c編譯器運行在機器上,這兩個問題一點關系都沒有。
在沒有c編譯器之前的那個時代,當然只能用匯編寫操作系統了,但是後來用匯編開發了c編譯器,就可以用c寫操作系統了,用c寫了操作系統,經過c編譯器編譯之後得到的就是機器代碼(可以認為是匯編),c編譯器只是一個工具,反正你給機器代碼給cpu執行就行了,沒有任何問題呵呵
這就好比如在原始社會人類只能用手挖東西,挖了鐵以後就可以用鐵做出鐵器來挖東西,就是這么發展。
c語言又可以用來開發更高級的編譯器,更高級的編譯器又可以拿來開發操作系統了,只要你喜歡。
不同的是匯編直接寫的執行效率比較高,高級語言寫的執行效率比較低,但是高級語言開發的時間比較短,提高工作效率