編程語言取決於編譯器嗎
一般用軟體編程後,需要將該軟體寫的程序翻譯成機器懂的代碼才能運行,這個翻譯的過程就是編譯。
不同的編程語言需要不同的編譯器,但有些編譯器可以同時支持多種編程語言,比如Visual Studio C++。
除了編譯外,這些編譯器還提供集成開發、調試環境,可以用於測試程序和排除其中錯誤。
Ⅱ 關於編程語言和編程工具
編程語言是一種語法標准、規范;
編程工具首先實現的是編譯器,它將語言描述轉譯成計算機可執行的程序代碼。而後是一輔助工具,比如友好的界面,良好的編譯錯誤提示等。
Ⅲ exe是pc的軟體文件,,是由什麼編程的呢 java編程的文件和這個有什麼不同呢
就是兩種編程語言,運行在不同的操作系統上,不過java是跨平台的,可以在windows上運行也可以在linux上運行,至於exe文件怎麼生成,這么來說吧,編程語言和編譯器不是一回事,exe可以用c語言開發,也可以用vb開發,現在還出來e語言。取決於編譯器。
Ⅳ C語言和編譯器的關系
c語言,只是一個程序設計語言。不是理論,不是思想,不是體系結構。只是語言。
C語言的語法不一致並不是編譯器導致的。而是語言自然發展導致的。編譯器只是支持某種標準的c語言。
並且c語言現在也有標准了,ansi c。不同語法的問題可以不用關心。因為你基本上接觸不到另外一種語法。而且越新的編譯器,支持越好。
Ⅳ C語言工作原理
作為一種編程語言,本身是談不上工作原理的,實際上C語言所有的語法,正是C語言編譯器的工作原理或者工作機制的具體實現。要細致的討論起來是不可能,但是作為C語言程序員,必須了解這個大致的流程。一個程序,從C語言源碼,到系統可執行的文件,一般經歷四個過程。
1、預處理階斷,這個階斷是文本處理階斷,有預處理器來完成,會將源碼中的帶"#"開頭的預處理命令進行相應的處理,在Linux上C語言的預處理器程序是cp命令。
2、編譯階斷,這個階斷是有C語言編譯階斷,在Linux上C語言的編譯器是cc命令,它將C語言源碼轉換成匯編指令。
3、匯編階斷,這個階斷是匯編編譯階斷,在Linux上C語言的匯編器是as命令,這個階斷會將匯編指令編譯成二進制機器碼。
4、鏈接階斷,這個階斷是會將匯編階斷生成的機器碼目標文件,裝載成一個系統可執行的文件,在Linux平台以ELF格式進行組裝,在Windows平台上以PE格式進行組裝。在Linux平台上的鏈接器命令為ld,在windows平台上的鏈接器命令為linker。
Ⅵ 為什麼高級語言編程需要編譯器
語言是人定義的,舉個簡單的例子
你創造個編譯器定義語句
「我實現A+B」,在編譯器裡面你事先定義了這個句子等價於C語言的
int
C=A
+
B;再由C語言通過類似的方法轉換成匯編語言,這樣就把高級語言一步步處理成計算機能執行的每步。打個比方。一棟房子很高,頂樓就是高級語言,樓梯就是編譯器,底層就是計算機能識別的操作。比如JAVA就是用C寫的,其樓層比C高。一般來說,同等演算法條件下C語言執行更快。關於樓梯的原理(編譯器),你想了解的話你的看編譯原理相關書籍,上面涉及很多數學知識,包括很多狀態轉化,詞法分析,語義分析。比如int
C=A+B中如何識別INT是什麼東西。「=」的意義等問題。說實話,如果你不是計算機專業,理解這個有困難的。對於一般人來說,不用從事相關工作的話,知道大概這個是幹嘛的就行了。比如你蓋個房子,你需要扳手,難道你要先學采鐵礦學冶煉學製作扳手的方法?。。
Ⅶ 每個編程語言都有不同的編譯器嗎
是的,在編程的世界裡面,對於每一種邊緣都需要使用不同的編譯器,因為他們的編碼的形式和規則都是不一樣的,希望可以幫到你
Ⅷ 編程語言的開發環境是不是就是編譯器
不是。雖然經常整合到一起。
Ⅸ 程序語言,操作系統,編譯器三者之間有何關系
匯編語言的編譯器很多,像MASM,NASM,TASM,gas等等,編譯器不一定用什麼語言來寫,像pascal最初的時候編譯器本身是用匯編和pascal語言寫的,但大部分編譯器是用C語言來寫的.windows向來封閉,不知道是用什麼寫的,應該是用C吧。C是一種編程語言,windows是一種操作系統,二者沒有直接關系。C的各個版本的不同在編譯器對C語言的擴充和處理上,而不在操作系統上,同樣是在windows平台上,TC和VC就不一樣。
這三者的關系,程序語言可以用來寫操作系統和編譯器,操作系統用來編譯器運行,編譯器用來編譯程序語言,編出來的東西可以是操作系統和編譯器。
Ⅹ 請問編程語法規則,是不是根據不同編譯器來定的
不,一個語言的語法是早就確定好的,它有一個統一標准——例如 ANSI C。
不同編譯器可能有些許不同,比如有的編譯器a=b=c結果很可能不一樣(所以我們很少這么用
但是大體上,一個語言的編譯器得出的結果是一樣的,是根據語法規則做出編譯器而非編譯器確定語法規則。
zhengshu a=0,編譯器肯定不認,理由是沒有這個type;但是你可以通過typedef自定義任意的類型。
int是一種type,而type varlist;是聲明變數的語法(int a; char b;)
你寫了int a=0;那麼這時編譯器做的就是在內存中開出一個能存int數據的空間,然後把0給填進去,再記錄下這塊內存的地址,並記住這個地址叫做a。至於分析代碼什麼的,就是編譯器的事情了。
——以上。