美文网首页
程序解析总论

程序解析总论

作者: 谦之 | 来源:发表于2018-10-08 21:10 被阅读12次

    万物皆有模式,程序也是如此。

    一个程序如何从代码编写完成一直到执行完成,可以归结为一系列的组件,而每一种组件则可以基于不同的业务使用不同的行为方法,我们称之为模式。

    从下图看到语言执行的整个过程:

  下面简要介绍下每个部分的作用:

    翻译器:翻译器读入字符文本(代码)生成不同语言的输出,其实就是我们耳熟能详的编译器或者汇编器,是将代码转化其他语言的一种程序,如C++编译器就是一种翻译器,其将C++转化成机器语言,并直接执行机器码;

    解释器:通过读入文件、解码然后执行指令,跳过了产生输出这一环,如Java,直接将代码转化成指令在java虚拟机上执行,不产生作为中间介质的机器码;

    文件读取器:通过读入输入流,并对源代码建立数据结构。一般输入流是字符文本或者二进制是数据。通常可以作为源代码分析工具,特定格式配置文件读取器,方法调用分析等;

    语义分析器:用于高级语言的类型推导,语法制导翻译等,语义分析器不分析“这样做格式对不对”,而是分析这样做合不合逻辑;

    当然,每一类组件的设计,都可以用一类模式作为归属,在后续的文章中会分别介绍下列各个模式。作为总论,下面依次列出于设计不同组件的一系列模式:

文件读取器:

        1. 递归下降识别器 2. LL(1)递归下降词法分析器 3. LL(1)递归下降语法分析器 4.LL(K)递归下降语法分析器 5.回溯解析器 6.记忆解析器 7.谓词解析器

语义解析器:

        a.解析数据结构:8.解析树模式 9.同型解析树 10.规范化异型解析树 11.不规则异型解析树  

        b.遍历数据结构:12.内嵌式遍历器 13.外部访问者模式 14.树文法模式 15.模式匹配器 

        c.搜集数据信息:16.单作用域符号表 17.嵌套作用域符号表 18.数据聚集符号表 19.类符号表 

        d.静态类型检查:20.计算表达式类型 21.自动类型提升模式 22.检查类型安全 23.多态类型检查

    解释器模式:

        24.语法制导解释器模式 25.基于树解释器模式 26.字节码汇编器 27.栈解释器 28.寄存器解释器 

    翻译器模式:

        29.语法制导翻译器模式 30.基于规则的翻译器 31.领域驱动的翻译器

后续会分多篇介绍相关模式。

相关文章

  • 程序解析总论

    万物皆有模式,程序也是如此。 一个程序如何从代码编写完成一直到执行完成,可以归结为一系列的组件,而每一种组件则可以...

  • Boost程序库完全开发指南

    一、Boost程序库总论 二、时间与日期 timer库:timer,progress_timer,progress...

  • Towxml 3.0让微信小程序支持LaTex数学公式及yuml

    Towxml 是一个让小程序可以解析Markdown、HTML的解析库。能够使小程序完美解析Markdown内容。...

  • 倒计时78天

    上午听了模拟题解析和神经系统总论 下午整理了傲视天鹰的每日练习和肝癌,肝性脑病的复习,模拟题解析整理一部分 晚上傲...

  • 微信小程序05:wxParse组件,简单用法(html转换)

    资料 微信小程序使用wxParse解析html github:wxParse-微信小程序富文本解析自定义组件,支持...

  • 千图、千库、抖音去水印

    自己开发了一个程序、目前拥有的功能:千图解析、千库解析、抖音去水印 程序已经对接公众号、以及小程序记得搜索:今天吃...

  • 记一次多线程奇怪的现象

    做了一个数据交换的程序,程序中使用JAXB来进行xml文档的解析,上级要求程序可以配置解析的线程数量,以在高峰值的...

  • 6 无

    哇咔咔,让我们看看这个特殊品究竟内含啥呢。 程序正在解析,请稍候。破机器,要等多久呀。程序正在解析,请稍候...

  • 人生准则

    一、总论

  • 这个是正版知识产权重点

    知产题型 单选10 多选5 简答5 案例3(著作、商标、专利各一个) 知产重点 不涉及总论 争议点、程序基本没有 ...

网友评论

      本文标题:程序解析总论

      本文链接:https://www.haomeiwen.com/subject/fmxsaftx.html