谈谈编译原理和其在WEB开发中的应用1

      计算机相关专业的差不多都有学过编译原理吧?今天我班门弄刀,也谈谈我自己对编译原理的认识和理解。当然啦,我主要要谈的是编译器的前端的实现,后端的代码生成我目前还没有研究过。

      实现一个编译器有两大步骤:一是词法分析,二是语法分析。应对这两块有很多的工具是可以帮助我们进行这样的工作的(例如:flex、yacc等),但我要说的是怎么完全手工去实现它。语法分析的主要目的是把一个个的字符和字母之类的东西给识别为token,而语法分析的主要作用是去构建分析后的对象或是构建抽象语法树。下面我结合早一段时间开发的JSON的反序列化来聊聊整个的过程。

词法分析

      关于JSON的定义请参看http://www.json.org/,要实现JSON的分析,我们要确定其基本的定义,而它的定义相对比较简单,它只有 Object、Array、String、Number和Value五种形式。而根据这几种对象的表示的边界条件,我们知道我们要分析的字符主要有:'{', '}', '[', ']', ':', ',', '"'等,对这些的分析的实现代码如上。

  完整代码如下:/Files/afxcn/MiniJSON.rar

下一篇:

  谈谈编译原理和其在WEB开发中的应用2

原文地址:https://www.cnblogs.com/afxcn/p/1379903.html