C编译程序的工作过程一般划分为哪几个阶段?

【答案】:C
编译程序的工作过程一般划分为五个阶段:词法分析、语法分析、语义分析、优化、目标代码生成。( 1 )词法分析:也就是从左到右一个一个的读入源程序,识别一个单词或符号,并进行归类。( 2 )语法分析: 在词法分析的基础上,将单词序列分解成各类语法短语,如“程序”,“语句”,“表达式”等。( 3 )语义分析:审查源程序是否有语义的错误,当不符合语言规范的时候,程序就会报错。( 5 )代码优化:这个阶段是对前阶段的中间代码进行变换或改造,目的是使生成的目标代码更为高效,即节省时间和空间。 ( 6 )目标代码生成:也就是把优化后的中间代码变换成指令代码或汇编代码。 词法分析和语法分析本质上都是对源程序的结构进行分析。

  • C缂栬瘧绋嬪簭鐨勫伐浣滆繃绋嬩竴鑸垝鍒嗕负鍝嚑涓樁娈?
    绛旓細銆愮瓟妗堛戯細C 缂栬瘧绋嬪簭鐨勫伐浣滆繃绋嬩竴鑸垝鍒嗕负浜斾釜闃舵锛氳瘝娉曞垎鏋愩佽娉曞垎鏋愩佽涔夊垎鏋愩佷紭鍖栥佺洰鏍囦唬鐮佺敓鎴銆傦紙 1 锛夎瘝娉曞垎鏋愶細涔熷氨鏄粠宸﹀埌鍙充竴涓竴涓殑璇诲叆婧愮▼搴忥紝璇嗗埆涓涓崟璇嶆垨绗﹀彿锛屽苟杩涜褰掔被銆傦紙 2 锛夎娉曞垎鏋愶細 鍦ㄨ瘝娉曞垎鏋愮殑鍩虹涓婏紝灏嗗崟璇嶅簭鍒楀垎瑙f垚鍚勭被璇硶鐭锛屽鈥滅▼搴忊濓紝鈥滆鍙モ濓紝鈥...
  • 鍦缂栬瘧杩囩▼涓,杩涜绫诲瀷鍒嗘瀽鍜屾鏌ユ槸(7)闃舵鐨勪竴涓富瑕宸ヤ綔銆
    绛旓細銆愮瓟妗堛戯細C 涓鑸殑缂栬瘧绋嬪簭宸ヤ綔杩囩▼鍖呮嫭璇嶆硶鍒嗘瀽銆佽娉曞垎鏋愩佽涔夊垎鏋愩佷腑闂翠唬鐮佺敓鎴愩佷唬鐮佷紭鍖栥佺洰鏍囦唬鐮佺敓鎴愶紝浠ュ強鍑洪敊澶勭悊鍜岀鍙疯〃绠$悊銆傝瘝娉曞垎鏋愰樁娈垫槸缂栬瘧杩囩▼鐨勭涓闃舵锛岃繖涓樁娈电殑浠诲姟鏄婧愮▼搴忎粠鍓嶅埌鍚庯紙浠庡乏鍒板彸锛夐愪釜瀛楃鍦版壂鎻忥紝浠庝腑璇嗗埆鍑轰竴涓釜鈥滃崟璇嶁濈鍙枫傝娉曞垎鏋愮殑浠诲姟鏄湪璇嶆硶鍒嗘瀽鐨...
  • 鍐C璇█绋嬪簭鐨勪竴鑸楠鏄庢牱鐨
    绛旓細缂栬瘧绋嬪簭鎶婁竴涓簮绋嬪簭缈昏瘧鎴愮洰鏍囩▼搴忕殑宸ヤ綔杩囩▼鍒嗕负浜斾釜闃舵锛璇嶆硶鍒嗘瀽銆佽娉曞垎鏋愩佽涔夋鏌ャ佷腑闂翠唬鐮佺敓鎴愩佷唬鐮佷紭鍖栥佺洰鏍囦唬鐮佺敓鎴銆備富瑕佹槸杩涜璇嶆硶鍒嗘瀽鍜岃娉曞垎鏋愶紝鍙堢О涓烘簮绋嬪簭鍒嗘瀽锛屽垎鏋愯繃绋嬩腑鍙戠幇鏈夎娉曢敊璇紝缁欏嚭鎻愮ず淇℃伅銆3銆侀摼鎺ャ傞摼鎺ユ槸灏嗙紪璇戜骇鐢熺殑鏂囦欢鍜岀郴缁熷簱杩炴帴瑁呴厤鎴愪竴涓彲浠ユ墽琛岀殑绋嬪簭銆傚悇绫...
  • C璇█婧愮▼搴忕殑缂栬瘧杩囩▼鍖呮嫭鍝笁涓樁娈
    绛旓細璇硶鍒嗘瀽闃舵锛鏈哄櫒閫氳繃璇嶆硶鍒嗘瀽锛屽皢鍗曡瘝搴忓垪鍒嗚В鎴愪笉鍚岀殑璇硶鐭锛岀‘瀹氭暣涓緭鍏ヤ覆鑳藉鏋勬垚璇硶涓婃纭殑绋嬪簭銆傝涔夊垎鏋愰樁娈碉細妫鏌ユ簮绋嬪簭涓婃湁娌℃湁璇箟閿欒锛屽湪浠g爜鐢熸垚闃舵鏀堕泦绫诲瀷淇℃伅 涓棿浠g爜鐢熸垚闃舵锛氬湪杩涜浜嗕笂杩扮殑璇硶鍒嗘瀽鍜岃涔夊垎鏋愰樁娈电殑宸ヤ綔涔嬪悗,鏈夌殑缂栬瘧绋嬪簭灏嗘簮绋嬪簭鍙樻垚涓绉嶅唴閮ㄨ〃绀哄舰寮 浠g爜浼樺寲锛...
  • 缂栬瘧绋嬪簭鍖呮嫭鍝嚑涓富瑕佺粍鎴愰儴鍒
    绛旓細缂栬瘧杩囩▼鍒嗕负鍒嗘瀽鍜岀患鍚堜袱涓儴鍒嗭紝骞惰繘涓姝ュ垝鍒嗕负璇嶆硶鍒嗘瀽銆佽娉曞垎鏋愩佽涔夊垎鏋愩佷唬鐮佷紭鍖栥佸瓨鍌ㄥ垎閰嶅拰浠g爜鐢熸垚绛夊叚涓浉缁х殑閫昏緫姝ラ銆傝繖鍏釜姝ラ鍙〃绀虹紪璇戠▼搴忓悇閮ㄥ垎涔嬮棿鐨勯昏緫鑱旂郴锛岃屼笉鏄椂闂村叧绯汇傜紪璇戣繃绋嬫棦鍙互鎸夌収杩欏叚涓昏緫姝ラ椤哄簭鍦版墽琛岋紝涔熷彲浠ユ寜鐓у钩琛屼簰閿佹柟寮忓幓鎵ц銆傚湪纭畾缂栬瘧绋嬪簭鐨勫叿浣撶粨鏋勬椂...
  • C绋嬪簭鐨寮鍙鍒嗕负鍝簺姝ラ,杩欎簺姝ラ鍙互鐪佺暐鎴栦簰鎹㈠悧?
    绛旓細C绋嬪簭鐨寮鍙涓鑸鍙互鍒嗕负浠ヤ笅鍑犱釜姝ラ锛氳鍒掗樁娈碉細瀵瑰笇鏈涚▼搴忚鍋氫粈涔堟湁涓涓竻鏅扮殑鎯虫硶锛岃冭檻绋嬪簭闇瑕佺殑淇℃伅锛岀▼搴忛渶瑕佽繘琛岀殑璁$畻鍜屾搷浣滐紝浠ュ強绋嬪簭搴旇鍚戜綘鎶ュ憡鐨勪俊鎭傝璁¢樁娈碉細鍐冲畾绋嬪簭瑕佸浣曞畬鎴愬畠锛岀敤鎴风晫闈㈠簲璇ユ槸鎬庝箞鏍风殑锛岀▼搴忓簲璇ュ浣曠粍缁囷紝鐩爣鐢ㄦ埛鏄皝锛屾湁澶氶暱鐨勬椂闂存潵瀹屾垚瀹炵幇杩欎釜绋嬪簭绛夌瓑銆傜紪鍐...
  • C璇█涓缂栬瘧绋嬪簭鏄妸婧愮▼搴忕炕璇戞垚浠涔堟枃浠?
    绛旓細绛旀鏄敊璇殑锛岀郴缁熷皢鐢熸垚鐩爣鏂囦欢锛岄塀銆傚洜涓篊璇█涓紪璇戠▼搴忔槸鎶婁竴涓簮绋嬪簭缈昏瘧鎴愮洰鏍囩▼搴忕殑宸ヤ綔杩囩▼銆傝繖涓杩囩▼鍒嗕负浜斾釜闃舵锛璇嶆硶鍒嗘瀽锛涜娉曞垎鏋愶紱璇箟妫鏌ュ拰涓棿浠g爜鐢熸垚锛涗唬鐮佷紭鍖栵紱鐩爣浠g爜鐢熸垚銆傚湪璇硶鍒嗘瀽杩囩▼涓彂鐜版湁璇硶閿欒锛岀粰鍑烘彁绀轰俊鎭紝娌℃湁閿欒鍒欑敓鎴愮洰鏍囨枃浠躲侰璇█閫氳繃姹囩紪鎶婃眹缂栬瑷浠g爜...
  • C璇█鏂囦欢鐨缂栬瘧涓庢墽琛岀殑鍥涗釜闃舵骞跺垎鍒弿杩
    绛旓細Linux绯荤粺涓嬬殑gcc(GNU C Compiler)鏄疓NU鎺ㄥ嚭鐨勫姛鑳藉己澶с佹ц兘浼樿秺鐨勫骞冲彴缂栬瘧鍣,鏄疓NU鐨勪唬琛ㄤ綔鍝佷箣涓銆俫cc鏄彲浠ュ湪澶氱纭綋骞冲彴涓婄紪璇戝嚭鍙墽琛绋嬪簭鐨瓒呯骇缂栬瘧鍣,鍏舵墽琛屾晥鐜囦笌涓鑸殑缂栬瘧鍣鐩告瘮骞冲潎鏁堢巼瑕侀珮20%~30%銆 浣跨敤GCC缂栬瘧绋嬪簭鏃,缂栬瘧杩囩▼鍙互琚粏鍒嗕负鍥涗釜闃舵:鈼 棰勫鐞(Pre-Processing)鈼 缂栬瘧(Compiling...
  • C璇█涓,绋嬪簭鐨涓涓畬鏁寸殑杩愯杩囩▼鏄庢牱鐨?
    绛旓細1銆佷竴涓C璇█婧愮▼搴忓彲浠ョ敱涓涓垨澶氫釜婧愭枃浠剁粍鎴愩2銆佹瘡涓簮鏂囦欢鍙敱涓涓垨澶氫釜鍑芥暟缁勬垚銆3銆佷竴涓簮绋嬪簭涓嶈鐢卞灏戜釜鏂囦欢缁勬垚锛岄兘鏈変竴涓笖鍙兘鏈変竴涓猰ain鍑芥暟锛屽嵆涓诲嚱鏁般傛槸鏁翠釜绋嬪簭鐨鍏ュ彛銆4銆佹簮绋嬪簭涓彲浠ユ湁棰勫鐞嗗懡浠わ紙鍖呮嫭include 鍛戒护锛宨fdef銆乮fndef鍛戒护銆乨efine鍛戒护锛夛紝棰勫鐞嗗懡浠閫氬父搴旀斁鍦ㄦ簮...
  • 缂栬瘧绋嬪簭鐨鍚勯樁娈甸兘娑夊強鍒颁粈涔
    绛旓細棰勫鐞嗭紝璇嶆硶鍒嗘瀽锛屾枃娉曞垎鏋愶紝鐢熸垚涓棿浠g爜锛岀敓鎴愮洰鏍囦唬鐮併1銆侀澶勭悊锛氬鍏ユ簮绋嬪簭骞朵繚瀛橈紙C鏂囦欢锛夈2銆佺紪璇戯細灏嗘簮绋嬪簭杞崲涓虹洰鏍囨枃浠讹紙Obj鏂囦欢锛夈3銆侀摼鎺ワ細灏嗙洰鏍囨枃浠剁敓鎴愪负鍙墽琛屾枃浠讹紙EXE鏂囦欢锛夈
  • 扩展阅读:程序员一般要学多久 ... 程序编译的六个过程 ... c编译的四个过程 ... 1955年划分阶级成分 ... c++和python先学哪个 ... 编译程序包括哪些基本过程 ... 编程一般要学多久 ... c编译过程的五个阶段 ... c编译程序是选择题 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网