您現在的位置是:首頁 > 運動

所有的程式語言先會編譯成C,再編譯成彙編,才能在機器上執行?

由 程式設計師互動聯盟 發表于 運動2022-06-13
簡介C語言在程式語言中的地位雖然不是每種程式語言都要轉化成C語言再去執行,但很多程式語言的底層都是C語言來實現的,這是真實存在的事實,但還是有很多人覺得C語言已經過時了,起碼從招聘的簡章C語言的比例在下降,這個主要原因是國內程式設計師大部分都做

c語言如何燒錄

首先這種認識是不正確的,所有的程式語言要轉化成機器語言然後才去執行,肯定不會轉化成C語言去執行,因為C語言還是要彙總成機器語言去執行。從類別上講程式語言主要分成兩種,一種在執行之前提前生成二進位制檔案,機器上電直接執行就可以了;另外一種是一邊執行一邊編譯最終的結果也是轉化成二進位制檔案,這樣機器才能準確的識別出來。只要是遵循馮諾依曼的架構都要轉化成二進位制的檔案讓機器去運轉執行,可能在未來量子計算機發展起來架構會有所改變,起碼在很長的一段時間內還會繼續這種架構存在。

所有的程式語言先會編譯成C,再編譯成彙編,才能在機器上執行?

程式語言如何實現跨平臺執行

就拿典型的程式語言Java作為例子來闡述,java屬於典型的跨平臺語言,跨平臺的語言程式設計的好處是在任何一個作業系統上完成程式碼編寫之後就可以在任何平臺來執行,一般開發java都在windows平臺上開發,但真正在部署的時候既可以在linux伺服器上執行,也可以在windows伺服器上執行。但在實際執行過程中還是要遵循各自的指令體系,做這個時期的關鍵點就在於java的虛擬機器,所以在安裝執行環境的時候,不同的作業系統的版本是不一致的,java在編譯的時候都會轉化成位元組碼,位元組碼在不同作業系統的虛擬機器都可以執行,虛擬機器裡面會把主流的作業系統指令都分別整合進去,也就是java版本在更迭的時候除了增加基本語法之外,還要在修改不同的作業系統底層實現,這樣子才能真正做到跨平臺執行。

所有的程式語言先會編譯成C,再編譯成彙編,才能在機器上執行?

跨平臺在嵌入式領域使用的比較多,如果用C++開發的程式碼可以在宿主機上直接執行,除錯完畢瞭然後再燒錄到嵌入式板卡里面去執行,畢竟直接在PC的linux上除錯程式碼,要比直接在板子裡除錯要方便的多,這就是跨平臺的好處,除了方便開發程式碼還極大方便除錯。

C語言在程式語言中的地位

雖然不是每種程式語言都要轉化成C語言再去執行,但很多程式語言的底層都是C語言來實現的,這是真實存在的事實,但還是有很多人覺得C語言已經過時了,起碼從招聘的簡章C語言的比例在下降,這個主要原因是國內程式設計師大部分都做著網際網路的工作,網際網路主要從事應用級開發比較多,所以一些整合化程式語言在國內比較能夠吃得開,像python,php,Java在國內都有著良好的生態基礎,這是國內軟體環境決定的。

所有的程式語言先會編譯成C,再編譯成彙編,才能在機器上執行?

C語言在很多基礎領域還是首選的程式語言,語法簡潔但靈活多樣,在實際功能的的時候效率高效能強,在很多領域還是第一程式語言,主要在通訊行業以及嵌入式領域還是C語言的主戰場。非常流行的人工智慧在底層很多功能實現也是基於C語言完成,只不過C語言的角色從前臺走向了幕後,但重要性並沒有因此而降低,即使選擇C語言作為入門的程式語言,在基礎過硬的情況下照樣能找到合適的工作,不要迷信C語言已經不行了之類的話語。

所有的程式語言先會編譯成C,再編譯成彙編,才能在機器上執行?

對於程式語言的編譯原理以及執行過程還是要多去涉獵,如果純正的高階程式語言可能很少去關係這些個原理,都是去操心如何架構等方面的問題,底層如何實現功能對於上層呼叫方式都有決定性因素,儘管很多人不推薦第一門程式語言選擇C語言,但從個人的角度出發,還是建議C語言作為入門程式語言,即使不是從事這方面的工作,起碼在從知識體系上還是有很大的好處,希望能幫到你。

推薦文章