首页 > 试题广场 >

编译程序分析源程序阶段依次为

[单选题]
编译程序分析源程序阶段依次为
  • 词法分析,语法分析,语义分析
  • 语法分析,语法分析,语义分析
  • 语义分析,语法分析,词义分析
  • 语法分析,语义分析,语法分析
1. 词法分析 - 想象你拿到一篇用高级语言写的文章(源程序),词法分析就像是一个文字识别器。它首先要把这篇文章中的字符流一个一个地看过去,把连续的字符组合成有意义的最小单元,也就是单词。 - 例如,在C语言中,它能识别出“int”是一个关键字,“num”可能是一个标识符(变量名),“10”是一个常量,“+”是一个运算符等。它只是机械地把这些基本单元找出来,并不关心这些单词组合在一起是不是符合语言的语法规则。 2. 语法分析 - 语法分析就像是一个语法检查员。它拿到词法分析得到的一堆单词后,会根据高级语言规定的语法规则来检查这些单词的排列是否正确。 - 比如在英语中,一个句子要有主语、谓语等基本结构。在编程语言中也有类似的规则。它会尝试把这些单词构建成一个类似树状的结构(语法树)。如果单词的排列不符合语法规则,就像一个句子缺少主语一样,语法分析就会发现错误。 3. 语义分析 - 语义分析则更深入一步,它在语法分析构建的语法树基础上,检查程序的语义是否正确。 - 比如它会检查变量是否已经声明过,使用的类型是否正确等。就像在英语中,虽然一个句子语法正确,但如果“我吃了石头”,从语义上来说是不合理的。在程序中也是如此,语义分析要确保程序的逻辑和意义是正确的。
发表于 2024-10-24 18:57:06 回复(0)
编译程序是一种将高级语言程序翻译成目标程序的系统软件,它对源程序的翻译过程分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成,以及符号表管理和出错处理。
 源程序可以被看成是一个字符串。
  • 词法分析是编译过程的第一阶段,其任务是对源程序从前到后(从左到右)逐个字符地扫描,从中识别出一个个的“单词”符号。
  • 语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”、“语句”、“程序”等。
  • 语义分析阶段主要检查源程序是否包含语义错误,并收集类型信息供后面的代码生成阶段使用。只有语法和语义都正确的源程序才能被翻译成正确的目标代码。

发表于 2021-02-15 15:06:40 回复(0)