编译程序的工作过程一般可以划分为哪5个基本阶段,还自始至终伴随进行哪两项工作? 高级语言的编译过程,经过哪几个步骤?

\u4ec0\u4e48\u662f\u7f16\u8bd1\u7a0b\u5e8f\uff1f

\u7f16\u8bd1\u7a0b\u5e8f\u6307\u5c06\u67d0\u4e00\u79cd\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\u5199\u7684\u7a0b\u5e8f\u7ffb\u8bd1\u6210\u7b49\u4ef7\u7684\u53e6\u4e00\u79cd\u8bed\u8a00\u7684\u7a0b\u5e8f\u7684\u7a0b\u5e8f, \u79f0\u4e4b\u4e3a\u7f16\u8bd1\u7a0b\u5e8f
\u7f16\u8bd1\u7a0b\u5e8f\u4e5f\u79f0\u4e3a\u7f16\u8bd1\u5668\uff0c\u662f\u6307\u628a\u7528\u9ad8\u7ea7\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\u4e66\u5199\u7684\u6e90\u7a0b\u5e8f\uff0c\u7ffb\u8bd1\u6210\u7b49\u4ef7\u7684\u673a\u5668\u8bed\u8a00\u683c\u5f0f\u76ee\u6807\u7a0b\u5e8f\u7684\u7ffb\u8bd1\u7a0b\u5e8f\u3002\u7f16\u8bd1\u7a0b\u5e8f\u5c5e\u4e8e\u91c7\u7528\u751f\u6210\u6027\u5b9e\u73b0\u9014\u5f84\u5b9e\u73b0\u7684\u7ffb\u8bd1\u7a0b\u5e8f\u3002
\u5b83\u4ee5\u9ad8\u7ea7\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\u4e66\u5199\u7684\u6e90\u7a0b\u5e8f\u4f5c\u4e3a\u8f93\u5165\uff0c\u800c\u4ee5\u6c47\u7f16\u8bed\u8a00\u6216\u673a\u5668\u8bed\u8a00\u8868\u793a\u7684\u76ee\u6807\u7a0b\u5e8f\u4f5c\u4e3a\u8f93\u51fa\u3002\u7f16\u8bd1\u51fa\u7684\u76ee\u6807\u7a0b\u5e8f\u901a\u5e38\u8fd8\u8981\u7ecf\u5386\u8fd0\u884c\u9636\u6bb5\uff0c\u4ee5\u4fbf\u5728\u8fd0\u884c\u7a0b\u5e8f\u7684\u652f\u6301\u4e0b\u8fd0\u884c\uff0c\u52a0\u5de5\u521d\u59cb\u6570\u636e\uff0c\u7b97\u51fa\u6240\u9700\u7684\u8ba1\u7b97\u7ed3\u679c\u3002
\u7f16\u8bd1\u7a0b\u5e8f\u7684\u5b9e\u73b0\u7b97\u6cd5\u8f83\u4e3a\u590d\u6742\uff0c\u8fd9\u662f\u56e0\u4e3a\u5b83\u6240\u7ffb\u8bd1\u7684\u8bed\u53e5\u4e0e\u76ee\u6807\u8bed\u8a00\u7684\u6307\u4ee4\u4e0d\u662f\u4e00\u4e00\u5bf9\u5e94\u5173\u7cfb,\u800c\u662f\u4e00\u591a\u5bf9\u5e94\u5173\u7cfb\uff0c\u540c\u65f6\u4e5f\u56e0\u4e3a\u5b83\u8981\u5904\u7406\u9012\u5f52\u8c03\u7528\u3001\u52a8\u6001\u5b58\u50a8\u5206\u914d\u3001\u591a\u79cd\u6570\u636e\u7c7b\u578b\uff0c\u4ee5\u53ca\u8bed\u53e5\u95f4\u7684\u7d27\u5bc6\u4f9d\u8d56\u5173\u7cfb\u3002

\u7531\u4e8e\u9ad8\u7ea7\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\u4e66\u5199\u7684\u7a0b\u5e8f\u5177\u6709\u6613\u8bfb\u3001\u6613\u79fb\u690d\u548c\u8868\u8fbe\u80fd\u529b\u5f3a\u7b49\u7279\u70b9\uff0c\u7f16\u8bd1\u7a0b\u5e8f\u5e7f\u6cdb\u5730\u7528\u4e8e\u7ffb\u8bd1\u89c4\u6a21\u8f83\u5927\u3001\u590d\u6742\u6027\u8f83\u9ad8\u3001\u4e14\u9700\u8981\u9ad8\u6548\u8fd0\u884c\u7684\u9ad8\u7ea7\u8bed\u8a00\u4e66\u5199\u7684\u6e90\u7a0b\u5e8f\u3002
\u6269\u5c55\u8d44\u6599\uff1a
\u7f16\u8bd1\u6d41\u7a0b\u5206\u4e3a\u4e86\u56db\u4e2a\u6b65\u9aa4:
1.\u9884\u5904\u7406\uff0c\u751f\u6210\u9884\u7f16\u8bd1\u6587\u4ef6\uff08.\u6587\u4ef6\uff09
2.\u7f16\u8bd1\uff0c\u751f\u6210\u6c47\u7f16\u4ee3\u7801\uff08.s\u6587\u4ef6\uff09
3.\u6c47\u7f16\uff0c\u751f\u6210\u76ee\u6807\u6587\u4ef6\uff08.o\u6587\u4ef6\uff09
4.\u94fe\u63a5\uff0c\u751f\u6210\u53ef\u6267\u884c\u6587\u4ef6
\u53c2\u8003\u8d44\u6599\uff1a\u7f16\u8bd1\u7a0b\u5e8f_\u767e\u5ea6\u767e\u79d1

\u5f00\u53d1C\u7a0b\u5e8f\u6709\u56db\u4e2a\u6b65\u9aa4\uff1a\u7f16\u8f91\u3001\u7f16\u8bd1\u3001\u8fde\u63a5\u548c\u8fd0\u884c\u3002

\u4efb\u4f55\u4e00\u4e2a\u4f53\u7cfb\u7ed3\u6784\u5904\u7406\u5668\u4e0a\u90fd\u53ef\u4ee5\u4f7f\u7528C\u8bed\u8a00\u7a0b\u5e8f\uff0c\u53ea\u8981\u8be5\u4f53\u7cfb\u7ed3\u6784\u5904\u7406\u5668\u6709\u76f8\u5e94\u7684C\u8bed\u8a00\u7f16\u8bd1\u5668\u548c\u5e93\uff0c\u90a3\u4e48C\u6e90\u4ee3\u7801\u5c31\u53ef\u4ee5\u7f16\u8bd1\u5e76\u8fde\u63a5\u5230\u76ee\u6807\u4e8c\u8fdb\u5236\u6587\u4ef6\u4e0a\u8fd0\u884c\u3002

1\u3001\u9884\u5904\u7406\uff1a\u5bfc\u5165\u6e90\u7a0b\u5e8f\u5e76\u4fdd\u5b58\uff08C\u6587\u4ef6\uff09\u3002

2\u3001\u7f16\u8bd1\uff1a\u5c06\u6e90\u7a0b\u5e8f\u8f6c\u6362\u4e3a\u76ee\u6807\u6587\u4ef6\uff08Obj\u6587\u4ef6\uff09\u3002

3\u3001\u94fe\u63a5\uff1a\u5c06\u76ee\u6807\u6587\u4ef6\u751f\u6210\u4e3a\u53ef\u6267\u884c\u6587\u4ef6\uff08EXE\u6587\u4ef6\uff09\u3002

4\u3001\u8fd0\u884c\uff1a\u6267\u884c\uff0c\u83b7\u53d6\u8fd0\u884c\u7ed3\u679c\u7684EXE\u6587\u4ef6\u3002


\u6269\u5c55\u8d44\u6599\uff1a
\u5c06C\u8bed\u8a00\u4ee3\u7801\u5206\u4e3a\u7a0b\u5e8f\u7684\u51e0\u4e2a\u9636\u6bb5\uff1a

1\u3001\u9996\u5148\uff0c\u5bf9\u6e90\u4ee3\u7801\u6587\u4ef6\u8fdb\u884c\u6d4b\u8bd5\u3002\u4ee5\u53ca\u76f8\u5173\u7684\u5934\u6587\u4ef6\uff0c\u6bd4\u5982Stdio\u3002H.CPP\u9884\u5904\u7406\u4e3a\u3002\u6211\u7684\u6587\u4ef6\u3002\u9884\u7f16\u8bd1\u3002\u8be5\u6587\u4ef6\u4e0d\u5305\u542b\u4efb\u4f55\u5b8f\u5b9a\u4e49\uff0c\u56e0\u4e3a\u6240\u6709\u5b8f\u90fd\u5df2\u5c55\u5f00\uff0c\u4e14\u5305\u542b\u7684\u6587\u4ef6\u5df2\u63d2\u5165\u3002\u6211\u63d0\u8d77\u3002



2\u3001\u7f16\u8bd1\u8fc7\u7a0b\u662f\u5bf9\u9884\u5904\u7406\u540e\u7684\u6587\u4ef6\u8fdb\u884c\u8bcd\u6cd5\u5206\u6790\u3001\u8bed\u6cd5\u5206\u6790\u3001\u8bed\u4e49\u5206\u6790\u548c\u4f18\u5316\uff0c\u751f\u6210\u76f8\u5e94\u7684\u6c47\u7f16\u4ee3\u7801\u6587\u4ef6\u3002\u8fd9\u4e2a\u8fc7\u7a0b\u901a\u5e38\u662f\u6574\u4e2a\u7a0b\u5e8f\u7684\u6838\u5fc3\u90e8\u5206\uff0c\u4e5f\u662f\u6700\u590d\u6742\u7684\u8fc7\u7a0b\u4e4b\u4e00\u3002



3\u3001\u6c47\u7f16\u7a0b\u5e8f\u4e0d\u76f4\u63a5\u8f93\u51fa\u53ef\u6267\u884c\u6587\u4ef6\uff0c\u800c\u662f\u8f93\u51fa\u76ee\u6807\u6587\u4ef6\u3002\u6c47\u7f16\u7a0b\u5e8f\u53ef\u4ee5\u8c03\u7528LD\u6765\u751f\u6210\u53ef\u8fd0\u884c\u7684\u53ef\u6267\u884c\u7a0b\u5e8f\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u60a8\u9700\u8981\u94fe\u63a5\u5230\u5927\u91cf\u6587\u4ef6\u4ee5\u83b7\u5f97\u6700\u7ec8\u53ef\u6267\u884c\u6587\u4ef6\u201ca.out\u201d\u3002



4\u3001\u5728\u94fe\u63a5\u8fc7\u7a0b\u4e2d\uff0c\u5176\u4ed6\u76ee\u6807\u6587\u4ef6\u4e2d\u5b9a\u4e49\u7684\u51fd\u6570\u8c03\u7528\u6307\u4ee4\u9700\u8981\u91cd\u65b0\u8c03\u6574\uff0c\u800c\u5176\u4ed6\u76ee\u6807\u6587\u4ef6\u4e2d\u5b9a\u4e49\u7684\u53d8\u91cf\u4e5f\u5b58\u5728\u540c\u6837\u7684\u95ee\u9898\u3002

\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1\uff0dc\u8bed\u8a00

1、编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;中间代码生成;代码优化;目标代码生成。

2、编译程序的工作过程一般自始至终伴随进行信息表管理和出错处理两项工作。

主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。

扩展资料:

解释程序是一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行用户程序时,它直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不产生目标程序,这是它和编译程序的主要区别。解释程序的工作过程如下:

1、由总控程序完成初始化工作。

2、依次从源程序中取出一条语句进行语法检查,如有错,输出错误信息;如果通过了语法检查,则根据语句翻泽成相应的指令并执行它。

3、检查源程序是否已经全部解释执行完毕,如果未完成则继续解释并执行下一条语句,直到全部语句都处理完毕。

参考资料来源:百度百科——编译程序

参考资料来源:百度百科——解释程序



参考下面的图做答吧:



  • C缂栬瘧绋嬪簭鐨勫伐浣滆繃绋嬪彲浠ュ垝鍒涓哄摢浜斾釜闃舵?
    绛旓細缂栬瘧绋嬪簭鐨勫伐浣滆繃绋嬩竴鑸垝鍒嗕负浜斾釜闃舵锛氳瘝娉曞垎鏋愩佽娉曞垎鏋愩佽涔夊垎鏋愩佷紭鍖栥佺洰鏍囦唬鐮佺敓鎴銆傦紙 1 锛夎瘝娉曞垎鏋愶細涔熷氨鏄粠宸﹀埌鍙充竴涓竴涓殑璇诲叆婧愮▼搴忥紝璇嗗埆涓涓崟璇嶆垨绗﹀彿锛屽苟杩涜褰掔被銆傦紙 2 锛夎娉曞垎鏋愶細 鍦ㄨ瘝娉曞垎鏋愮殑鍩虹涓婏紝灏嗗崟璇嶅簭鍒楀垎瑙f垚鍚勭被璇硶鐭锛屽鈥滅▼搴忊濓紝鈥滆鍙モ濓紝鈥滆〃杈惧紡鈥濈瓑銆傦紙...
  • 缂栬瘧绋嬪簭鐨勫伐浣滆繃绋嬩竴鑸彲浠ュ垝鍒涓哄摢5涓熀鏈樁娈,杩樿嚜濮嬭嚦缁堜即闅忚繘琛...
    绛旓細1銆佺紪璇戠▼搴忔妸涓涓簮绋嬪簭缈昏瘧鎴愮洰鏍囩▼搴忕殑宸ヤ綔杩囩▼鍒嗕负浜斾釜闃舵锛璇嶆硶鍒嗘瀽锛涜娉曞垎鏋愶紱涓棿浠g爜鐢熸垚锛涗唬鐮佷紭鍖栵紱鐩爣浠g爜鐢熸垚銆2銆佺紪璇戠▼搴忕殑宸ヤ綔杩囩▼涓鑸嚜濮嬭嚦缁堜即闅忚繘琛淇℃伅琛ㄧ鐞嗗拰鍑洪敊澶勭悊涓ら」宸ヤ綔銆備富瑕佹槸杩涜璇嶆硶鍒嗘瀽鍜岃娉曞垎鏋愶紝鍙堢О涓烘簮绋嬪簭鍒嗘瀽锛屽垎鏋愯繃绋嬩腑鍙戠幇鏈夎娉曢敊璇紝缁欏嚭鎻愮ず淇℃伅銆
  • 缂栬瘧杩囩▼鍙鍒嗕负鍑犱釜闃舵
    绛旓細绫讳技鍦帮紝鎴戜滑鍙互鎶婄紪璇戠▼搴忕殑宸ヤ綔杩囩▼鍒掑垎涓轰簲涓樁娈碉細璇嶆硶鍒嗘瀽銆佽娉曞垎鏋愩佽涔夊垎鏋愪笌涓棿浠g爜浜х敓銆佷紭鍖栧拰鐩爣浠g爜鐢熸垚銆傜涓闃舵锛氳瘝娉曞垎鏋 璇嶆硶鍒嗘瀽鐨勪换鍔℃槸锛氳緭鍏ユ簮绋嬪簭锛屽鏋勬垚婧愮▼搴忕殑瀛楃涓茶繘琛屾壂鎻忓拰鍒嗚В锛岃瘑鍒嚭涓涓釜鐨勫崟璇嶏紙浜︾О鍗曡瘝绗﹀彿鎴栫畝绉扮鍙凤級锛屽鍩烘湰瀛楋紙begin銆乪nd銆乮f銆乫or銆亀hile锛...
  • 瀵归珮绾ц瑷婧愮▼搴杩涜缂栬瘧鐨勮繃绋嬪彲浠鍒嗕负澶氫釜闃舵,鍒嗛厤瀵勫瓨鍣鐨勫伐浣鍦...
    绛旓細缂栬瘧绋嬪簭鐨勫伐浣滆繃绋嬪彲浠ュ垎涓鸿瘝娉曞垎鏋愩佽娉曞垎鏋愩佽涔夊垎鏋愩佷腑闂翠唬鐮佺敓鎴愩佷唬鐮佷紭鍖栥佺洰鏍囦唬鐮佺敓鎴愩佺鍙疯〃绠$悊鍜屽嚭閿欏鐞嗙瓑閮ㄥ垎锛屽涓嬪浘鎵绀恒傜洰鏍囦唬鐮佺敓鎴愭槸缂栬瘧鍣ㄥ伐浣滅殑鏈鍚庝竴涓樁娈点傝繖涓闃舵鐨勪换鍔℃槸鎶婁腑闂翠唬鐮佸彉鎹㈡垚鐗瑰畾鏈哄櫒涓婄殑缁濆鎸囦护浠g爜銆佸彲閲嶅畾浣嶇殑鎸囦护浠g爜鎴栨眹缂栨寚浠や唬鐮侊紝杩欎釜闃舵鐨勫伐浣滀笌鍏蜂綋鐨...
  • 鍦缂栬瘧杩囩▼涓,杩涜绫诲瀷鍒嗘瀽鍜屾鏌ユ槸( )闃舵涓涓富瑕宸ヤ綔銆
    绛旓細涓鑸紪璇戠▼搴忓伐浣滆繃绋嬪寘鎷瘝娉曞垎鏋愩佽娉曞垎鏋愩佽涔夊垎鏋愩佷腑闂翠唬鐮佺敓鎴愩佷唬鐮佷紭鍖栥佺洰鏍囦唬鐮佺敓鎴愶紝浠ュ強鍑洪敊澶勭悊鍜岀鍙疯〃绠$悊銆傝瘝娉曞垎鏋愰樁娈垫槸缂栬瘧杩囩▼绗竴闃舵锛岃繖涓樁娈典换鍔℃槸瀵规簮绋嬪簭浠庡墠鍒板悗锛堜粠宸﹀埌鍙筹級閫愪釜瀛楃鍦版壂鎻忥紝浠庝腑璇嗗埆鍑轰竴涓釜鈥滃崟璇嶁濈鍙枫傝娉曞垎鏋愪换鍔℃槸鍦ㄨ瘝娉曞垎鏋愬熀纭涓婏紝鏍规嵁璇█璇硶瑙勫垯灏...
  • 缂栬瘧绋嬪簭宸ヤ綔杩囩▼
    绛旓細缂栬瘧绋嬪簭鐨勫伐浣滆繃绋娑夊強婧愮▼搴忕殑鍒嗘瀽鍜岀洰鏍囩▼搴忕殑鐢熸垚銆傞鍏堬紝绋嬪簭浼氳繘琛屾簮浠g爜鐨勬鏌ワ紝灏嗗叾鍒嗚В涓哄熀鏈垚鍒嗭紝濡傛爣璇嗙銆佺被鍨嬪拰杩愮畻绗︾瓑銆傚湪杩欎釜闃舵锛岀紪璇戝櫒浼氬垱寤虹鍙疯〃锛屽瓨鍌ㄦ簮绋嬪簭涓殑鏍囪瘑绗﹀強鍏跺睘鎬э紝濡傚彉閲忋佹暟缁勩佺粨鏋勭瓑鐨勭绫诲拰绫诲瀷锛屼互鍙婄洰鏍囩▼搴忔墍闇鐨勯澶栦俊鎭傚父鏁拌〃鍒欒褰曟簮绋嬪簭涓殑甯告暟鍙婂叾鍦...
  • 鎸夋枃浠剁敤閫旀潵鍒缂栬瘧绋嬪簭鏄
    绛旓細1. 缂栬瘧杩囩▼锛氱紪璇戠▼搴忕殑宸ヤ綔娴佺▼閫氬父鍖呮嫭璇嶆硶鍒嗘瀽銆佽娉曞垎鏋銆佽涔夊垎鏋愩佷腑闂翠唬鐮佺敓鎴愩佷唬鐮佷紭鍖栧拰鐩爣浠g爜鐢熸垚绛夋楠ゃ傚湪璇嶆硶鍒嗘瀽闃舵锛岀紪璇戠▼搴忎細璇嗗埆婧愪唬鐮佷腑鐨勫崟璇嶅拰绗﹀彿锛涘湪璇硶鍒嗘瀽闃舵锛屽畠浼氭鏌ヤ唬鐮佺殑璇硶缁撴瀯鏄惁姝g‘锛涘湪璇箟鍒嗘瀽闃舵锛岀紪璇戠▼搴忎細妫鏌ヤ唬鐮佺殑鎰忎箟骞跺鐞嗕笌涓婁笅鏂囩浉鍏崇殑鍐呭锛涗腑闂翠唬鐮佺敓鎴...
  • 楂樼骇璇█绋嬪簭缂栬瘧杩囩▼鍒嗕负鑻ュ共闃舵,鍒嗛厤瀵勫瓨鍣ㄥ睘浜( )闃舵宸ヤ綔銆
    绛旓細姹囩紪璇█鎴栨満鍣ㄨ瑷)銆傜紪璇戠▼搴忓伐浣滆繃绋嬪彲浠ュ垎涓璇嶆硶鍒嗘瀽銆佽娉曞垎鏋銆佽涔夊垎鏋愩佷腑闂翠唬鐮佺敓鎴愩佷唬鐮佷紭鍖栧拰鐩爣浠g爜鐢熸垚6涓樁娈碉紝浠ュ強鍑洪敊澶勭悊鍜岀鍙疯〃绠$悊銆傚叾涓紝涓棿浠g爜鐢熸垚鍜屼唬鐮佷紭鍖栭樁娈典笉鏄繀闇銆傜洰鏍囦唬鐮佺敓鎴愭椂鎵嶈冭檻涓庡叿浣撴満鍣ㄧ浉鍏冲鐞嗭紝瀵勫瓨鍣ㄥ垎閰嶅浜庝唬鐮佺敓鎴愰樁娈靛伐浣溿
  • 缂栬瘧绋嬪簭鍖呮嫭鍝嚑涓富瑕佺粍鎴愰儴鍒
    绛旓細缂栬瘧杩囩▼鍒嗕负鍒嗘瀽鍜岀患鍚堜袱涓儴鍒嗭紝骞惰繘涓姝ュ垝鍒嗕负璇嶆硶鍒嗘瀽銆佽娉曞垎鏋銆佽涔夊垎鏋愩佷唬鐮佷紭鍖栥佸瓨鍌ㄥ垎閰嶅拰浠g爜鐢熸垚绛夊叚涓浉缁х殑閫昏緫姝ラ銆傝繖鍏釜姝ラ鍙〃绀虹紪璇戠▼搴忓悇閮ㄥ垎涔嬮棿鐨勯昏緫鑱旂郴锛岃屼笉鏄椂闂村叧绯汇傜紪璇戣繃绋嬫棦鍙互鎸夌収杩欏叚涓昏緫姝ラ椤哄簭鍦版墽琛岋紝涔熷彲浠ユ寜鐓у钩琛屼簰閿佹柟寮忓幓鎵ц銆傚湪纭畾缂栬瘧绋嬪簭鐨勫叿浣撶粨鏋勬椂...
  • 涓轰粈涔绋嬪簭瑕佸厛缂栬瘧,鎵嶈兘杩愯鍟?
    绛旓細褰撶紪鍐欏畬涓涓绋嬪簭鍚庯紝闇瑕侀鍏堣繘琛缂栬瘧锛岀劧鍚庡啀杩愯銆傚涓嬪浘鎵绀猴紝绋嬪簭缂栧啓瀹屾瘯鍚庯紝鐐瑰嚮宸ュ叿鏍忎腑鐨凟xecute,閫夋嫨compile(缂栬瘧锛夊鏋滄病鏈夐敊璇紝鍐嶉夋嫨Execute,閫夋嫨run锛堣繍琛)
  • 扩展阅读:程序员一般要学多久 ... 编译程序的主要工作是 ... 编程一般要学多久 ... 编译过程和解释过程图 ... 初学编程必背50个 ... c编译的四个过程 ... 不适合学编程的人 ... 编程需要学习哪些 ... 编译过程步骤 ...

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