zoukankan      html  css  js  c++  java
  • 谈谈编译原理和其在WEB开发中的应用1

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

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

    词法分析

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

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

    下一篇:

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

  • 相关阅读:
    【2021 ECUG Con】聚势而来,与你相约花开时
    为 Nginx 添加 HTTP 基本认证(HTTP Basic Authentication)
    centos6 yum 源失效 404
    [nsis]安装包反编译
    Web安全测试学习笔记-DVWA-盲注(使用sqlmap)
    Shellcodeloader免杀过火绒
    C#创建快捷方式-转载自ConExpress
    C#运行新线程,也可打开网页
    C#判断指定文件是否存在-转载mmgx(仅为方便找一下)
    C# 文件夹创建方法
  • 原文地址:https://www.cnblogs.com/afxcn/p/1379903.html
Copyright © 2011-2022 走看看