编译后
‘壹’ c璇瑷缁忚繃缂栬疟钖庣敓鎴愭枃浠剁殑钖庣紑鏄
C璇瑷缁忚繃缂栬疟钖庣敓鎴愭枃浠剁殑钖庣紑鏄钬.obj钬濄
褰揅璇瑷婧愪唬镰佽缂栬疟钖庯纴阃氩父浼氱敓鎴愪竴涓钬.o钬濓纸object file锛夋枃浠躲傝繖涓鏂囦欢鍖呭惈浜嗙紪璇戝櫒镓浜х敓镄勬満鍣ㄤ唬镰侊纴浣嗘槸瀹冭缮娌℃湁琚杩炴帴鍒板叾浠栨ā鍧楁垨搴扑腑銆傜浉搴斿湴锛屽湪涓嶅悓镄勬搷浣灭郴缁熶笂鍙鑳戒细链変笉钖岀殑钖庣紑钖嶅拰浜岃繘鍒舵牸寮忋备緥濡傦纴Windows涓婄殑Visual C++缂栬疟鍣ㄤ娇鐢ㄢ.obj钬濅綔涓虹洰镙囨枃浠剁殑镓╁𪾢钖嶃
闄や简鐩镙囨枃浠朵箣澶栵纴杩樻湁鍏朵粬绫诲瀷镄勬枃浠朵篃鍙鑳藉湪缂栬疟杩囩▼涓鍑虹幇銆备緥濡傦纴婧愭枃浠跺寘钖浜嗕唬镰佺殑铡熷嬫枃链锛涘ご鏂囦欢鍖呭惈浜嗙▼搴忎腑浣跨敤鍒扮殑鍑芥暟鍜屽彉閲忕殑澹版槑銆傝繖浜涙枃浠舵墿灞曞悕阃氩父涓衡.c钬濆拰钬.h钬濄
C璇瑷镄勪紭镣圭亩杩
C璇瑷镄勮捐$洰镙囨槸鎻愪緵涓绉嶈兘浠ョ亩鏄撶殑鏂瑰纺缂栬疟銆佸勭悊浣庣骇瀛桦偍鍣ㄣ佷粎浜х敓灏戦噺镄勬満鍣ㄧ爜浠ュ强涓嶉渶瑕佷换浣曡繍琛岀幆澧冩敮鎸佷究鑳借繍琛岀殑缂栫▼璇瑷銆侰璇瑷鎻忚堪闂棰樻瘆姹囩紪璇瑷杩呴熴佸伐浣滈噺灏忋佸彲璇绘уソ銆佹槗浜庤皟璇曘佷慨鏀瑰拰绉绘嶏纴钥屼唬镰佽川閲忎笌姹囩紪璇瑷鐩稿綋銆侰璇瑷涓鑸鍙姣旀眹缂栬瑷浠g爜鐢熸垚镄勭洰镙囩▼搴忔晥鐜囦绠10%钬20%銆傚洜姝わ纴C璇瑷鍙浠ョ紪鍐欑郴缁熻蒋浠躲
褰揿墠阒舵碉纴鍦ㄧ紪绋嬮嗗烟涓锛孋璇瑷镄勮繍鐢ㄩ潪甯镐箣澶氾纴瀹冨吋椤句简楂樼骇璇瑷鍜屾眹缂栬瑷镄勪紭镣癸纴鐩歌缉浜庡叾浠栫紪绋嬭瑷鍏锋湁杈冨ぇ浼桦娍銆傝$畻链虹郴缁熻捐′互鍙婂簲鐢ㄧ▼搴忕紪鍐欐槸C璇瑷搴旂敤镄勪袱澶ч嗗烟銆傚悓镞讹纴C璇瑷镄勬櫘阃傝缉寮猴纴鍦ㄨ稿氲$畻链烘搷浣灭郴缁熶腑閮借兘澶熷缑鍒伴傜敤锛屼笖鏁堢巼鏄捐宪銆侰璇瑷𨰾ユ湁缁忚繃浜嗘极闀垮彂灞曞巻鍙茬殑瀹屾暣镄勭悊璁轰綋绯伙纴鍦ㄧ紪绋嬭瑷涓鍏锋湁涓捐冻杞婚吨镄勫湴浣嶃
‘贰’ c璇瑷缂栬疟钖庣殑鏂囦欢钖庣紑鏄浠涔堬纻
C璇瑷婧愭枃浠跺悗缂钖嶆槸.c锛岀紪璇戠敓鎴愮殑鏂囦欢钖庣紑钖嶆槸.obj锛岃繛鎺ュ悗鍙镓ц屾枃浠剁殑钖庣紑钖嶆槸.exe銆
婧愭枃浠剁殑钖庣紑浠呬粎鏄涓轰简琛ㄦ槑璇ユ枃浠朵腑淇濆瓨镄勬槸镆愮嶈瑷镄勪唬镰侊纸渚嫔.c鏂囦欢涓淇濆瓨镄勬槸C璇瑷浠g爜锛夛纴杩欐牱绋嫔簭锻樻洿锷犲规槗鍖哄垎锛岀紪璇戝櫒涔熸洿锷犲规槗璇嗗埆锛屽畠骞朵笉浼氩艰嚧璇ユ枃浠剁殑鍐呴儴镙煎纺鍙戠敓鏀瑰彉銆
镓╁𪾢璧勬枡
C璇瑷鏄涓绉岖粨鏋勫寲璇瑷锛屽畠链夌潃娓呮榈镄勫眰娆★纴鍙鎸夌収妯″潡镄勬柟寮忓圭▼搴忚繘琛岀紪鍐欙纴鍗佸垎链夊埄浜庣▼搴忕殑璋冭瘯锛屼笖c璇瑷镄勫勭悊鍜岃〃鐜拌兘锷涢兘闱炲父镄勫己澶с
渚濋潬闱炲父鍏ㄩ溃镄勮繍绠楃﹀拰澶氭牱镄勬暟鎹绫诲瀷锛屽彲浠ヨ交鏄揿畬鎴愬悇绉嶆暟鎹缁撴瀯镄勬瀯寤猴纴阃氲繃鎸囬拡绫诲瀷镟村彲瀵瑰唴瀛樼洿鎺ュ诲潃浠ュ强瀵圭‖浠惰繘琛岀洿鎺ユ搷浣滐纴锲犳ゆ棦鑳藉熺敤浜庡紑鍙戠郴缁熺▼搴忥纴涔熷彲鐢ㄤ簬寮鍙戝簲鐢ㄨ蒋浠躲
C璇瑷鏄鏅阃傛ф渶寮虹殑涓绉嶈$畻链虹▼搴忕紪杈戣瑷锛屽畠涓崭粎鍙浠ュ彂鎸ュ嚭楂樼骇缂栫▼璇瑷镄勫姛鐢锛岃缮鍏锋湁姹囩紪璇瑷镄勪紭镣广
‘叁’ c璇瑷绋嫔簭缁忚繃缂栬疟钖庣敓鎴愭枃浠剁殑钖庣紑鏄
C璇瑷绋嫔簭缁忚繃缂栬疟钖庣敓鎴愮殑鏂囦欢钖庣紑阃氩父鏄<strong>.obj</strong>鎴<strong>.o</strong>銆
杩欎簺钖庣紑鏄瀵硅薄鏂囦欢锛坥bject file锛夌殑钖庣紑锛屽畠浠鏄婧愪唬镰佺紪璇戝悗镄勪腑闂存枃浠讹纴阃氩父鍖呭惈浜嗕竴浜涙満鍣ㄤ唬镰佸拰绗﹀彿琛ㄤ俊鎭銆
涓轰简镟村ソ鍦扮悊瑙h繖涓闂棰桡纴鎴戜滑闇瑕佺煡阆撶紪璇戞槸涓涓灏嗘簮浠g爜杞鎹涓烘満鍣ㄤ唬镰佺殑杩囩▼銆傚湪缂栬疟杩囩▼涓锛岀紪璇戝櫒浼氩皢婧愪唬镰佷腑镄勬寚浠ゅ拰鏁版嵁鎻愬彇鍑烘潵锛岀劧钖庢寜镦х壒瀹氱殑镙煎纺閲嶆柊缁勭粐鎴愭満鍣ㄤ唬镰併傝繖涓杩囩▼阃氩父浼氱敓鎴愪竴涓鎴栧氢釜瀵硅薄鏂囦欢銆
涓轰简浣跨瓟妗堥氢织鏄撴哕锛屾垜浠鍙浠ヨ繖镙疯В閲婏细褰扑綘鍦ㄧ数鑴戜笂缂栧啓C璇瑷绋嫔簭镞讹纴浣犻渶瑕佷竴涓缂栬疟鍣ㄦ潵灏嗕綘镄勬簮浠g爜杞鎹涓哄彲浠ュ湪浣犵殑鐢佃剳鎴栫绣缁滀笂杩愯岀殑绋嫔簭銆傜紪璇戝櫒浼氩皢浣犵殑婧愪唬镰佽浆鍖栦负涓绉岖壒娈婄殑链哄櫒璇瑷锛岃繖绉嶈瑷鍙浠ョ洿鎺ヨ璁$畻链虹‖浠剁悊瑙e苟镓ц屻傝繖涓鐗规畩镄勬満鍣ㄨ瑷鏂囦欢阃氩父琚绉颁负瀵硅薄鏂囦欢锛屽洜涓哄畠浠鍖呭惈浜嗙紪璇戝悗镄勪唬镰佸拰涓浜涘叾浠栫殑淇℃伅锛屽傜﹀彿琛ㄧ瓑銆
镓浠ワ纴褰扑綘缂栬疟涓涓狢璇瑷绋嫔簭镞讹纴浣犻氩父浼氩缑鍒颁竴涓鎴栧氢釜浠<strong>.obj</strong>鎴<strong>.o</strong>涓哄悗缂镄勬枃浠躲傝繖浜涙枃浠跺寘钖浜嗙紪璇戝悗镄勪唬镰佸拰鍏朵粬淇℃伅锛屽畠浠鍙浠ヨ阈炬帴鍣ㄧ敤𨱒ュ垱寤烘渶缁堢殑鍙镓ц屾枃浠躲
‘肆’ 计算机程序中,用高级语言编写的程序经编译后产生的程序叫什么
高级语言编写的代码经过编译后就是可执行程序,高级语言到可执行文件主要有七个个过程。
高级语言编译的七个过程:
预处理,词法分析,语法分析,语义分析,中间代码产生,代码优化,目标代码产生。
下面对这几个过程详细讲解:
1、预处理:
对原文件进行预处理,比如头文件,导入的模块,宏定义等进行处理;
2、词法分析:
词法分析是第一阶段,这个阶段的任务是从左到右一个字符一个字符的读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词。
3、语法分析:
语法分析的任务是在词法分析的基础上将单词程序分解成各位语法短语。
4、语义分析:
语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。
5、中间代码生成:
在进行了上述的语法分析阶段等工作之后,有的编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或中间代码。中间代码生成阶段要在语法和语义分析的基础上,将源程序进一步变为一种内部表示形式,它通常易于生成、易于翻译成目标代码,不过不是所有的语言都必须经过这一步。
6、代码优化:
这一阶段的任务是对前一阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效。代码优化阶段,对前阶段生成的中间代码进行变换或改造,以便生成目标代码时更加节省时间和空间,这一工作也不是必须的。
7、目标代码生成:
这一阶段的任务是吧中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。