我想知道什么是编译,编译时会发生什么?我的意思是,是的,您按编译或在控制台中输入,但它在“后台”实际上做了什么?
一、编译器"lexes" http://en.wikipedia.org/wiki/Lexical_analysis来源。这意味着它将源转换为一系列“令牌”。标记是对编译器有意义的字母、数字和符号的序列。
接下来,编译器"parses" http://en.wikipedia.org/wiki/Parsing第一步中的标记序列。这意味着编译器会检查以确保源代码符合规则(grammar http://en.wikipedia.org/wiki/Formal_grammar)的编程语言。
接下来,编译器执行句法分析 http://en.wikipedia.org/wiki/Syntax_analysis创建源的表示以确定源的语义。这是编译器将构建一个语法树 http://en.wikipedia.org/wiki/Parse_tree.
最后,编译器将generate http://en.wikipedia.org/wiki/Code_generation_%28compiler%29捕获目标表示中源的语义的输出(可以是机器代码、中间语言,例如微软的CIL http://en.wikipedia.org/wiki/Common_Intermediate_Language,或其他编程语言)。
有关简要详细信息,请参阅维基百科 http://en.wikipedia.org/wiki/Compiler。对于血淋淋的细节,请参阅龙之书 http://dragonbook.stanford.edu/(每个计算机科学专业的学生都应该学习这本书)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)