當前位置:首頁 » 編程軟體 » 編程編譯器分類

編程編譯器分類

發布時間: 2024-06-10 14:18:39

A. C++的編譯器都有哪些

kDevelop、Anjuta、Code Blocks、Visual Mingw、Ideone、Eclipse CDT、Compilr、Code Lite、Netbeans C++、DevC++。

B. C++緙栬瘧鍣ㄦ湁鍝浜涳紵

1銆乬cc

GCC錛圙NU Compiler Collection錛孏NU緙栬瘧鍣ㄥ椾歡錛夋槸鐢盙NU寮鍙戠殑緙栫▼璇璦璇戝櫒銆侴NU緙栬瘧鍣ㄥ椾歡鍖呮嫭C銆丆++銆 Objective-C銆 Fortran銆丣ava銆丄da鍜孏o璇璦鍓嶇錛屼篃鍖呯板敜鎷浜嗚繖浜涜璦鐨勫簱錛堝俵ibstdc++錛宭ibgcj絳夈傦級

GCC鐨勫垵琛鋒槸涓篏NU鎿嶄綔緋葷粺涓撻棬緙栧啓鐨勪竴嬈劇紪璇戝櫒銆侴NU緋葷粺鏄褰誨簳鐨勮嚜鐢辮蔣浠躲傛ゅ勶紝鈥滆嚜鐢扁濈殑鍚涔夋槸瀹冨皧閲嶇敤鎴風殑鑷鐢便

2銆乴lvm+Clang

LLVM鏄鏋勬灦緙栬瘧鍣(compiler)鐨勬嗘灦緋葷粺錛屼互C++緙栧啓鑰屾垚錛岀敤浜庝紭鍖栦互浠繪剰紼嬪簭璇璦緙栧啓鐨勭▼搴忕殑緙栬瘧鏃墮棿(compile-time)銆侀摼鎺ユ椂闂(link-time)銆佽繍琛屾椂闂(run-time)浠ュ強絀洪棽鏃墮棿(idle-time)錛屽瑰紑鍙戣呬繚鎸佸紑鏀撅紝騫跺吋瀹瑰凡鏈夎剼鏈銆

LLVM璁″垝鍚鍔ㄤ簬2000騫達紝鏈鍒濈敱University of Illinois at Urbana-Champaign鐨凜hris Lattner涓繪寔寮灞曘2006騫碈hris Lattner鍔犵洘Apple Inc.騫惰嚧鍔涗簬LLVM鍦ˋpple寮鍙戜綋緋諱腑鐨勫簲鐢ㄣ侫pple涔熸槸LLVM璁$瑧楂樺嚡鍒掔殑涓昏佽祫鍔╄呫

3銆乄atcom C/C++

Watcom C/C++ 緙栬瘧鍣ㄣ乄atch Fortran 緙栬瘧鍣 緇忓凡鍦ㄤ笉鍏跺厛鍓嶆墍灞炲叕鍙窼ybase鍞鍗, 鑰岃 SciTech 杞浠跺叕鍙 浣滀負 Open Watcom 寮婧愬寘 鍙戣屻傜被浼間簬鍏朵粬鐨 寮婧愮紪璇戝櫒(渚嬪 [GCC])欏圭洰錛學atcom C浠g爜灝忚屼究鎼猴紝 鍏剁紪璇戝櫒鍚庣(浠g爜鐢熸垚鍣)鐨勭洰鏍囩爜鍙鍙樸

璇ョ紪璇戝櫒鍙鍦―OS銆丱S/2銆乄indows絳夋搷浣滅郴緇熶笂榪愯岋紝騫剁敓鎴愬悇縐嶅彲榪愯岀殑(涓嶅繀鏄璇ユ搷浣滅郴緇熺殑)浠g爜銆傝ョ紪璇戝櫒鏀鎸丯ovell NetWare鐨 NLM 鐩鏍囩爜銆傜洰鍓嶆h繘琛 涓 Linux銆乵odern BSD (渚嬪侳reeBSD) 鎿嶄綔緋葷粺 閲嶅畾鐩鏍囩爜錛屼互渚垮湪 x86銆丳owerPC 鍙娿鍏跺畠澶勭悊鍣ㄤ笂榪愯屻

Open Watcom C/C++ 鐨1.4鐗堜簬2005騫12鏈堝彂琛岋紝閲囩敤 Linux x86 涓哄疄楠岀洰鏍, 鏀鎸丯T銆丱S/2絳塰ost騫沖彴鏇炬湁鏌愯寮冪疆鐨凲NX鐗堟湰錛屼絾鍏剁紪璇戞墍欏葷殑搴撳苟鏈寮婧愬彂琛屻傚綋鍓嶆渶榪戠殑紼沖畾鐗堟槸1.9鐗堬紝鍦2010騫6鏈堝彂琛屻

4銆丏igital Mars

DigitalMars鏄涓嬈鵑珮鎬ц兘鐨勭紪璇戝櫒錛屽姛鑳藉寘鍚錛屽揩閫熺紪璇/閾炬帴鏃躲佸己澶х殑浼樺寲鎶鏈銆丆ontract璁捐°佸畬鏁寸殑璧勬簮搴撱佹祻瑙圚TML鏂囨。錛屽弽蹇典貢奼囩紪銆佸簱銆佽祫婧愮紪璇戝櫒絳夈傚懡浠よ屽強GUI鐗堟湰銆佹暀紼嬨佷唬鐮佺ず渚嬨佸湪綰挎洿鏂般佹爣鍑嗘ā鏉垮簱絳夌瓑銆

5銆丮SVC緋誨垪

涓嶸isual Studio闆嗘垚鍙戝竷錛屽井杞鑷宸辯殑緙栬瘧鍣錛孷S鏄涓涓鍩烘湰瀹屾暣鐨勫紑鍙戝伐鍏烽泦錛屽畠鍖呮嫭浜嗘暣涓杞浠剁敓鍛藉懆鏈熶腑鎵闇瑕佺殑澶ч儴鍒嗗伐鍏鳳紝濡俇ML宸ュ叿銆佷唬鐮佺℃帶宸ュ叿銆侀泦鎴愬紑鍙戠幆澧(IDE)絳夌瓑銆

鎵鍐欑殑鐩鏍囦唬鐮侀傜敤浜庡井杞鏀鎸佺殑鎵鏈夊鉤鍙幫紝鍖呮嫭Microsoft Windows銆乄indows Mobile銆乄indows CE銆.NET Framework銆.NET Compact Framework鍜孧icrosoft Silverlight 鍙奧indows Phone銆

C. C璇璦鍏ラ棬錛岀敤浠涔堢紪璇戝櫒姣旇緝濂斤紵

姝ュ叆C璇璦鐨勪笘鐣岋紝瀵繪壘浣犵殑鏈浣崇紪璇戝櫒涓嶪DE浼欎即


緙栫▼涔嬭礬濮嬩簬閫夋嫨錛屽逛簬鍒濆﹁呰岃█錛岄夋嫨涓嬈懼悎閫傜殑緙栬瘧鍣ㄥ拰闆嗘垚寮鍙戠幆澧冿紙IDE錛夊挨涓洪噸瑕併傝╂垜浠娣卞叆鎺㈣ㄥ嚑涓澶囧彈鎺ㄥ磭鐨勯夐」錛屽府浣犺交鏉捐搗姝ャ


緙栬瘧鍣ㄧ瘒


1. Tiny C Compiler (TCC): 璁╂柊鎵嬪叆闂ㄧ殑涓嶄簩涔嬮夛紝TCC浠ユ儕浜虹殑緙栬瘧閫熷害钁楃О錛屾棤闇鎷呭咖鎬ц兘褰卞搷錛屽畠浠ョǔ瀹氬拰楂樻晥钁楃О錛屾槸鍒濆﹁呯殑緇濅匠璧風偣銆


2. GNU C Compiler (GCC): 鉶界劧涓嶆槸涓繪祦錛屼絾GCC鍥犳敮鎸佷紬澶氱壒鎬ц屽囧彈灝濊瘯錛屽敖綆″瓨鍦ㄤ竴浜涘巻鍙查仐鐣欓棶棰橈紝浣嗗畠鍦ㄧ壒瀹氬満鏅涓嬩粛鍊煎緱涓璇曘


3. Microsoft Visual C++ Compiler (MSVC): 浣滀負Windows騫沖彴涓婄殑鑰佺墝鐜嬭咃紝MSVC鍑鍊熷氬勾鐨勬妧鏈縐緔錛屽挨鍏舵槸浠嶣orland鎸栨潵鐨勫洟闃燂紝濡備粖鍦ㄧǔ瀹氭у拰鍏煎規т笂琛ㄧ幇鍑鴻壊錛屾槸涓嶪DE鎼閰嶇殑棣栭夈


4. LLVM/Clang: 楂樼涔嬮夛紝鏁堢巼鍜岄熷害騫墮噸錛岀壒鍒閫傚悎榪芥眰楂樻ц兘鐨勫紑鍙戣咃紝Visual Studio鏂扮増鏈涔熸敮鎸佸叾瀹夎咃紝濡傛灉浣犺拷奼傛瀬鑷存ц兘錛孋lang鏄涓涓嶉敊鐨勯夋嫨銆


IDE綃


1. Visual Studio: 鏃犻渶榪囧氳禈榪幫紝Visual Studio鏃犵枒鏄疘DE涓鐨勭繕妤氾紝2017鐗堟湰錛圴isual Studio 2017錛夋敮鎸丆++17錛岃櫧鐒舵湁鏃舵洿鏂板甫鏉ュ皬闂棰橈紝浣嗗逛簬鍒濆﹁呭拰Windows鐢ㄦ埛錛岀ぞ鍖虹増鐨勫厤璐圭増鏈鏄寮虹儓鎺ㄨ崘鐨勩


2. CLion: 鉶界劧鏀惰垂錛屼絾鐟曚笉鎺╃憸錛岃法騫沖彴鏀鎸佷嬌寰桵ac鐢ㄦ埛涔熻兘浜鍙楋紝鐩歌緝浜嶸S鐣ラ婁竴絳癸紝浣嗘暣浣撴ц兘浼樼銆


3. Eclipse: 鉶界劧瀹夎呰繃紼嬪彲鑳界箒鐞愶紝浣嗕綔涓烘浘緇忕殑Java涓誨姏IDE錛岀幇鏀鎸丆/C++錛屽挨鍏舵槸鎼閰峂ingw x64緙栬瘧鍣錛孍clipse浠嶇劧鍊煎緱鎺ㄨ崘銆


4. Code::Blocks: 閫傚悎瀛︽牎鏁欏︼紝寮婧愪笖鏀鎸佸氱嶇壒鎬э紝浣嗗規柊鎵嬫潵璇達紝鍏墮敊璇鎻愮ず鍙鑳戒笉澶熸槑紜錛岄櫎闈炴湁鐗規畩闇奼傦紝鍚﹀垯涓嶆槸棣栭夈


5. Notepad++: 鉶界劧鑳藉彉鎴愮畝鍗旾DE錛屼絾鐩告瘮鍏朵粬閫夐」錛屾帹鑽愮▼搴﹁緝浣庯紝闄ら潪浣犵壒鍒鍠滄㈠叾瀹氬埗鍖栥


6. Visual Studio Code: VS鐨勮法騫沖彴鐗堟湰錛屽厤璐逛笖鍔熻兘寮哄ぇ錛岃櫧鐒舵湁灝戣稿崱欏匡紝浣嗗逛簬Linux鐢ㄦ埛鎴朚ac鐨勮交搴﹀紑鍙戣咃紝瀹冩槸涓涓嶉敊鐨勯夋嫨銆


7. Qt Creator: 綆媧佷笖鏀鎸丵t搴旂敤寮鍙戱紝閫傚悎鏈変竴瀹氱粡楠岀殑寮鍙戣咃紝浣嗗瑰垵瀛﹁呮潵璇達紝閰嶇疆榪囩▼鍙鑳界暐鏄懼嶆潅銆


8. Dev-C++: 瀵逛簬鍠滄VC6鐣岄潰鐨勫嶅彜媧撅紝Dev-C++浠ョ畝鍗曡憲縐幫紝浣嗗姛鑳界浉瀵硅緝灝戙


9. C4DroidCPPDroid: 鍊懼悜浜庣Щ鍔ㄥ紑鍙戱紝鎵嬫満鍜屽鉤鏉誇笂鐨凜璇璦IDE錛屽挨鍏墮傚悎鍦ㄧЩ鍔ㄨ懼囦笂緙栫▼銆


緇撹


鍦╓indows涓婏紝灝界GCC鍙鑳介渶瑕侀濆栭厤緗錛屼絾涓嶅簲璁╅厤緗甀DE鎴愪負瀛︿範鐨勯噸鐐廣傞夋嫨涓嬈句笌浣犵殑鐩鏍囧拰闇奼傜浉鍖歸厤鐨勭紪璇戝櫒鍜孖DE錛屽皢鏈夊姪浜庝綘鏇翠笓娉ㄤ簬璇璦鏈韜錛屼負浣犵殑C璇璦涔嬫棶濂犲畾鍧氬疄鍩虹銆

D. 緙栬瘧鍣ㄦ湁鍝浜涜蔣浠剁紪璇戝櫒鏈夊摢浜

鍏充簬緙栬瘧鍣ㄦ湁鍝浜涜蔣浠訛紝緙栬瘧鍣ㄦ湁鍝浜涜繖涓寰堝氫漢榪樹笉鐭ラ亾錛屼粖澶╂潵涓哄ぇ瀹惰В絳斾互涓婄殑闂棰橈紝鐜板湪璁╂垜浠涓璧鋒潵鐪嬬湅鍚э紒
1銆佺洰鍓嶆渶嫻佽岀殑C璇璦緙栬瘧鍣ㄦ湁浠ヤ笅鍑犵嶏細GNU Compiler Collection 鎴栫О GCCGCC錛圙NU Compiler Collection錛孏NU緙栬瘧鍣ㄥ椾歡錛夛紝鏄鐢 GNU 寮鍙戠殑緙栫▼璇璦緙栬瘧鍣ㄣ
2銆佸畠鏄浠GPL璁稿彲璇佹墍鍙戣岀殑鑷鐢辮蔣浠訛紝涔熸槸 GNU璁″垝鐨勫叧閿閮ㄥ垎銆
3銆丟CC鍘熸湰浣滀負GNU鎿嶄綔緋葷粺鐨勫畼鏂圭紪宀╁巻搴嗚瘧鍣錛岀幇宸茶澶у氭暟綾籙nix鎿嶄綔緋葷粺錛堝侺inux銆丅SD銆丮ac OS X絳夛級閲囩撼涓烘爣鍑嗙殑緙栬瘧鍣錛孏CC鍚屾牱閫傜敤浜庡井杞鐨刉indows銆
4銆丟CC鏄鑷鐢辮蔣浠惰繃紼嬪彂灞曚腑鐨勮憲鍚嶄緥瀛愶紝鐢辮嚜鐢辮蔣浠跺熀閲戜細浠GPL鍗忚鍙戝竷銆
5銆2銆丮icrosoft C 鎴栫О MS CMicrosoft C 鏄痗璇璦鐨勪竴縐岻DE錛堥泦鎴愬紑鍙戠幆澧冿級錛屽父瑙佺殑榪樻湁Microsoft Visual C++錛孊orland C++錛學atcom C++ ,Borland C++ 錛孊orland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ 錛孡ccwin32 C Compiler 3.1,High C,Turbo C絳夌瓑......3銆丅orland Turbo C 鎴栫О Turbo CTurbo C鏄緹庡浗Borland鍏鍙哥殑浜у搧錛孊orland鍏鍙告槸涓瀹朵笓闂ㄤ粠鐑傛棶浜嬭蔣浠跺紑鍙戙佺爺鍒剁殑澶у叕鍙搞
6銆佽ュ叕鍙哥浉緇ф帹鍑轟簡涓濂 Turbo緋誨垪杞浠, 濡俆urbo BASIC, Turbo Pascal, Turbo Prolog, 榪欎簺杞浠跺緢鍙楃敤鎴鋒㈣繋銆
7銆佹墿灞曡祫鏂欙細C緙栬瘧鐨勬暣涓榪囩▼寰堝嶆潅錛屽ぇ鑷村彲浠ュ垎涓轟互涓嬪洓涓闃舵碉細棰勫勭悊闃舵靛湪璇ラ樁孌典富瑕佸畬鎴愬規簮浠g爜鐨勯勫勭悊宸ヤ綔錛屼富瑕佸寘鎷瀵瑰畯瀹氫箟鎸囦護錛屽ご鏂囦歡鍖呭惈鎸囦護錛岄勫畾涔夋寚浠ゅ拰鐗規畩瀛楃︾殑澶勭悊錛屽傚瑰畯瀹氫箟鐨勬浛鎹浠ュ強鏂囦歡澶翠腑鎵鍖呭惈鐨勬枃浠朵腑棰勫畾涔変唬鐮佺殑鏇挎崲絳夛紝鎬諱箣榪欐ヤ富瑕佸畬鎴愪竴浜涙浛鎹㈠伐浣滐紝杈撳嚭鏄鍚屾簮鏂囦歡鍚涔夌浉鍚屼絾鍐呭逛笉鍚岀殑鏂囦歡銆
8銆2銆佺紪璇戙佷紭鍖栭樁孌電紪璇戝氨鏄灝嗙涓闃舵靛勭悊寰楀埌鐨勬枃浠墮氳繃璇嶆硶璇娉曞垎鏋愮瓑杞鎹涓烘眹緙栬璦銆
9銆佷紭鍖栧寘鎷瀵逛腑闂翠唬鐮佺殑浼樺寲錛屽傜矖鎻″垹闄ゅ叕鍏辮〃杈懼紡錛屽驚鐜浼樺寲絳夛紱鍜屽圭洰鏍囦唬鐮佺殑鐢熸垚榪涜岀殑浼樺寲錛屽傚備綍鍏呭垎鍒╃敤鏈哄櫒鐨勫瘎瀛樺櫒瀛樻斁鏈夊叧鍙橀噺鐨勫礆紝浠ュ噺灝戝唴瀛樿塊棶嬈℃暟銆
10銆3銆佹眹緙栭樁孌靛皢奼囩紪璇璦緲昏瘧鎴愭満鍣ㄦ寚浠ゃ
11銆4銆侀摼鎺ラ樁孌甸摼鎺ラ樁孌電殑涓昏佸伐浣滄槸灝嗘湁鍏崇殑鐩鏍囨枃浠惰繛鎺ヨ搗鏉ワ紝鍗沖皢鍦ㄤ竴涓鏂囦歡涓寮曠敤鐨勭﹀彿鍚岃ョ﹀彿鍦ㄥ彟澶栦竴涓鏂囦歡涓鐨勫畾涔夎繛鎺ヨ搗鏉ワ紝浣垮緱鎵鏈夌殑鐩鏍囨枃浠舵垚涓轟竴涓鑳藉熻鎿嶄綔緋葷粺瑁呭叆鎵ц岀殑緇熶竴鏁翠綋銆
12銆 鍙傝冭祫鏂欐潵婧愶細鐧懼害鐧劇-gcc 錛圙NU緙栬瘧鍣ㄥ椾歡錛夊弬鑰冭祫鏂欐潵婧愶細鐧懼害鐧劇-Microsoft C鍙傝冭祫鏂欐潵婧愶細鐧懼害鐧劇-Turbo C銆

E. 典型的編譯器可以劃分成幾個邏輯階段

這是我們今天的作業,

典型的編譯器可以劃分成七個主要的邏輯階段,分別是詞法分析器、語法分析器、語義分析器、中間代碼生成器、獨立於機器的代碼優化器、代碼生成器、依賴於機器的代碼優化器。各階段的主要功能:

(1)詞法分析器:詞法分析閱讀構成源程序的字元流,按編程語言的詞法規則把它們組成詞法記號流。

(2)語法分析器:按編程語言的語法規則檢查詞法分析輸出的記號流是否符合這些規則,並依據這些規則所體現出的該語言的各種語言構造的層次性,用各記號的第一元建成一種樹形的中間表示,這個中間表示用抽象語法的方式描繪了該記號流的語法情況。

(3)語義分析器:使用語法樹和符號表中的信息,依據語言定義來檢查源程序的語義一致性,以保證程序各部分能有意義地結合在一起。它還收集類型信息,把它們保存在符號表或語法樹中。

(4)中間代碼生成器:為源程序產生更低級的顯示中間表示,可以認為這種中間表示是一種抽象機的程序。

(5)獨立於機器的代碼優化器:試圖改進中間代碼,以便產生較好的目標代碼。通常,較好是指執行較快,但也可能是其他目標,如目標代碼較短或目標代碼執行時能耗較低。

(6)代碼生成器:取源程序的一種中間表示作為輸入並把它映射到一種目標語言。如果目標語言是機器代碼,則需要為源程序所用的變數選擇寄存器或內存單元,然後把中間指令序列翻譯為完成同樣任務的機器指令序列。

(7)依賴於機器的代碼優化器:試圖改進目標機器代碼,以便產生較好的目標機器代碼。

F. 編譯器有哪幾部分構成.編譯原理

1. 詞法分析

詞法分析器根據詞法規則識別出源程序
中的各個記號(token),每個記號代表一類單詞(lexeme)。源程序中常見的記號可以歸為幾大類:關鍵字、標識符、字面量和特殊符號。詞法分析器
的輸入是源程序,輸出是識別的記號流。詞法分析器的任務是把源文件的字元流轉換成記號流。本質上它查看連續的字元然後把它們識別為「單詞」。

2. 語法分析

語法分析器根據語法規則識別出記號流中的結構(短語、句子),並構造一棵能夠正確反映該結構的語法樹。

3. 語義分析

語義分析器根據語義規則對語法樹中的語法單元進行靜態語義檢查,如果類型檢查和轉換等,其目的在於保證語法正確的結構在語義上也是合法的。

4. 中間代碼生成

中間代碼生成器根據語義分析器的輸出生成中間代碼。中間代碼可以有若干種形式,它們的共同特徵是與具體機器無關。最常用的一種中間代碼是三地址碼,它的一種實現方式是四元式。三地址碼的優點是便於閱讀、便於優化。

熱點內容
用公司伺服器搭建網站 發布:2024-11-26 21:42:00 瀏覽:356
忘記密碼魅族手機如何清除數據 發布:2024-11-26 21:34:17 瀏覽:155
達內php視頻 發布:2024-11-26 21:32:09 瀏覽:555
編譯器分析 發布:2024-11-26 21:13:01 瀏覽:831
存儲過程execute 發布:2024-11-26 21:11:02 瀏覽:255
石器時代合成腳本 發布:2024-11-26 20:57:07 瀏覽:939
漏油器密碼怎麼改密碼 發布:2024-11-26 20:30:11 瀏覽:14
linux編碼命令 發布:2024-11-26 20:23:13 瀏覽:801
密碼加密工具 發布:2024-11-26 20:23:06 瀏覽:692
如何破解加密的wifi 發布:2024-11-26 20:10:29 瀏覽:431