码迷,mamicode.com
首页 > 编程语言 > 详细

编程语言的解析过程

时间:2015-09-06 17:44:28      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

示例代码:

1 if ( a == 10) {
2     printf("hoge\n");
3 } else {
4     printf("piyo\n");
5 }

 一般编程语言的语法处理(这与编译性语言或者是解释性语言无关),都会有如下的过程:

  1. 词法分析,将源代码分割为若干个记号(token)的处理;
    示例部分代码在执行完词法分析过程后,将被分割为如下的记号,
    技术分享
    执行词法分析的程序称为词法分析器(lexical analyzer),lex的工作就是根据词法规则自动生成词法分析器。
  2. 语法分析,即从记号构建分析树的处理,分析树也叫语法树,或者是抽象语法树;
    技术分享

    执行语法分析的程序称为解析器(parser),yacc就是根据语法规则自动生成解析器的程序。
  3. 语义分析,经过语法分析生成的分析树,并不包含数据类型等语义信息,因此在语义分析阶段,会检查程序中是否含有语法正确但是存在逻辑问题的错误。

编程语言的解析过程

标签:

原文地址:http://www.cnblogs.com/luochuanghero/p/4786453.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!