編譯器安裝在操作系統上
A. 書上說編譯器是隨著操作系統裝在電腦上的,那操作系統也是用某種語言(如C等),那是誰翻譯的操作系統的語言呢
現有的操作系統都是在其他操作系統下完成編譯的。
最早的操作系統是機器碼,然後在那種操作系統上開發出匯編編譯器,接下來的操作系統就可以用匯編語言了。後來出來c語言編譯器,可以在匯編語言做的操作系統中編譯C語言的操作系統,然後在C語言的操作系統中再裝相應的編譯器,就可以編譯其他的了。所以編譯器和操作系統都是一步步發展的。
你之前的問題沒人回答是因為我沒看到。
B. 操作系統和編譯器的關系
操作系統是和硬體的橋梁,所有軟體如果要運行,就得在裝有操作系統的機器上運行。沒有安裝操作系統的計算機,是不能運行其它軟體的,裝上了linux,你才能在它上面安裝gcc, 你可以用gcc編譯各種軟體,比如linux版的QQ等,同樣你也可以用gcc編譯linux系統軟體(因為系統軟體也是軟體),並把編譯好的linux軟體放到機器上安裝。
當然也可以寫個編譯器在沒有操作系統的機器上編譯,但這個編譯器就要做很多和硬體打交道的事。至少gcc是不行的,要運行在操作系統上的。
C. 蘋果電腦上可以裝c語言編譯器嗎
在蘋果電腦上可以裝c語言編譯器,因為Mac系統本質上是一個Unix系統,是一個開放系統,Unix系統的編寫語言就是C語,兼容C語言編譯器是肯定的了。
目前蘋果的操作系統Mac OS X的開發工具為Xcode,支持C和標准C++程序的編寫。並且Mac平台有很多支持C語言編程的IDE,像NetBeans和Eclipse。
Mac OS X沒有默認安裝C語言編譯器,你需要安裝Xcode,Xcode包含了GCC編譯器。
如果你只是用Mac來學習C語言,安裝一個Xcode即可。Xcode的安裝文件在系統盤的Optional文件夾里。
D. 編譯程序安裝在計算機的哪裡
舉例來說:
當你使用C編寫代碼,使用編譯器編譯後,即生成了可執行程序。當可執行程序被操作系統的載入器載入到內存、並准備好必要的數據後從代碼段開始執行,這時的代碼段代碼已經是機器碼了,無須編譯。當然,可執行程序里的所有數據並非都是代碼,有些是寫給操作系統看的,以使操作系統能為程序的執行做好必要准備。
至於說DOS命令,分為外部命令和內部命令。外部命令和一般的可執行程序沒有區別,他以可執行程序文件的形式存在。沒有這個文件就不能運行這個命令;內部命令是固化在操作系統中的代碼模塊,一般以DLL文件的形式存在。至於哪個DLL文件包含特定的內部命令的代碼,就必須查資料了。
CPU所支持的指令集,是由CPU的物理設計決定的,並不是說有什麼指令存放在CPU上。
當然,如果是解釋性的語言。那麼,可執行程序是一邊被解釋(編譯)一邊被執行的。所以他的速度要慢些。並且必須安裝對應的編譯(解釋)程序。比如JAVA。
E. C語言,在windows系統上裝了C語言編譯器。
都沒有必要,windows 通過 提供一套標准(當然是 windows 標准) api 函數,屏蔽硬體細節,用戶不用考慮硬體細節。硬體的驅動程序由生產者依據 windows 標准提供驅動程序,否則, windows 就不接受這個硬體,對於用戶來說就無法使用他,當然,作為標准硬體,雖然系統沒有安裝,windows 任然提供 api,這是調用這些 api 時,會返回特定的錯誤值告知用戶:此硬體不可用。看看 windows 的市場,硬體廠商乖乖的按 windows 標准編寫驅動程序。
在 windows 系統中,所有的程序都是通過調用 windows api (當然,可能一些特殊程序還有使用到 ActiveX 等,那麼,這樣的程序還包括一些 ActiveX api 函數) 實現與系統資源交互的,在Windows上C 語言(等)編譯器將程序中的與系統資源交互的代碼都編譯成 windows api 函數的調用。如 setviewport 函數最終編譯後就轉換成一些 windows api 函數。
F. 如何在linux操作系統下安裝gcc以及查看gcc編譯器是否安裝好
gcc-3,如果想將GCC 3.html閱讀.0.tar.gnu.0、庫文件.0,或者用環境變數CC指定系統上的編譯器,系統中必須要有cc或者gcc等編譯器,並且是可用的.4。
系統上原來的GCC編譯器可能是把gcc等命令文件.4://gcc.0.4,可用瀏覽器打開index;configure --prefix=${destdir} [其它選項]
G. 匯編語言的編譯器是運行在什麼平台上
機器可以識別的是高低電平,將高低電平用 0,1 來對應表達,就是二進制代碼
二進制代碼肯定是不便於記憶的,因此,為了便於記憶,將可以執行一項功能的二進制代碼段用一個符號來代替,就產生了匯編語言。
那麼匯編的過程,就是將這個符號還原成二進制代碼的過程。
這個過程,可以由人工來做,由機器來做...
那麼,我們的電腦上來完成這個過程的,就是傳說中的編譯器。
這個匯編的編譯器是怎麼做成的?是直接用二進制代碼0和1寫的嗎?
編譯器本身就是一個可執行程序。
編寫這個可程序,和編寫通常程序的過程相同,所以隨意用什麼語言來寫。然後再通過編譯,生成可執行程序。
那這個二進制的0、1是以什麼形式存放的,存放在哪裡?
可執行程序是什麼形式的,取決於操作系統。
存放形式,取決於存儲器的物理性質,可以肯定的是存放在存儲器。
如果用我們的電腦,怎麼輸入這些0、1,讓電腦識別?
用我們的電腦,需要通過輸入設備來輸入,通常為鍵盤、滑鼠...
過去就像樓上說的,也有用紙帶、撥碼開關或者其他什麼的。
----------------------------------------------
其實我就是想弄明白硬體和軟體是怎麼鍥和的,操作系統這個巨大的軟體可以直接在電腦硬體上運行,那其他軟體為什麼一定要在操作系統上才能運行呢?
其他的軟體不是一定要在操作系統上才能運行。只是,操作系統使軟體的運行不必考慮硬體的差別,也就是說,針對操作系統平台所編寫的程序可以適用於該操作系統可以運行的所有硬體平台,而不必針對每一個不同的硬體都編寫一個程序。
是不是要調用系統裡面的一些庫文件啊?如果是,那windows怎麼不需要啊?它怎麼能只憑自己在安裝時所帶的那一套各種各樣的文件就能在裸機上運行了呢?
WINDOWS本身就是操作系統...
那個,你要實在想明白這個問題,就看看計算機組成原理還有軟體工程的相關內容吧。