COStream编译器的抽象语法树重构与优化
发布时间:2021-07-17 08:59
随着多核架构平台的发展,人们对数据和计算能力提出了更高的要求。COStream数据流编程语言作为一种高效的并行编程模型,能充分利用数据并行、任务并行和流水并行挖掘程序的并行性,具有速度快、功耗低、简单易用等特点。随着技术的发展,在COStream的迭代更新过程中,COStream出现了设计不灵活、难扩展、难维护、适用性低等问题。针对COStream编译器所面临的问题,设计并实现了COStream编译器的抽象语法树重构与优化。针对抽象语法树的结构特点,利用面向对象编程的思想对语法树结构进行优化设计,从词法分析、语法分析、接口调用适配和代码生成等阶段对COStream编译器进行重构,大大提高了语法树的设计灵活性和可扩展性。通过完善调试信息与错位定位功能,提供符号表管理、内存优化管理机制,提升了COStream的内存性能和编程友好性。针对COStream缺乏库支持的问题,提出了基于COStream编译系统的文法与库扩展流程规范,介绍数据流文法扩展基本方法,从本地库扩展和外部库扩展两个方面对COStream编译器进行库扩展,能有效的提升COStream的通用性和适用性。本课题以X86架构多核处...
【文章来源】:华中科技大学湖北省 211工程院校 985工程院校 教育部直属院校
【文章页数】:55 页
【学位级别】:硕士
【部分图文】:
词法分析器和语法分析器之间的交互如图2.2所示,在词法分析第一阶段,Flex工具采用扩展的正则表达式识别相
中 科 技 大 学 硕 士 学 位 符号组成,它们是语法的“单词”。符号由一。符号 error 代表错误恢复。由词法分析器产法分析器产生的符号被移交给语法分析器做语,规则左部定义的符号被称为非终结符。科斯范式( Backus-Naur Form,BNF)的规则对.5所示,在语法构建阶段, COStream 文法入口on.unit 表示文法入口,translation.unit 可以进行.unit 由 declaration 声明、普通 function 声明和 m 源程序顶层可由全局变量定义、函数定义以
图 2.6 表达式规约巴科斯范式和运算符优先级定义树结构设计项目工程中,语法树的结构设计采用了大量复杂的嵌套数据类型结构导致在语义检查、常量传播以及代码生成阶段对抽象语法树性和语义不明。因此,我们利用面向对象的思想、多态机制与 S支持,设计了一种新型的抽象语法树结构,大大提高了程序的可和可维护性,减小项目的更新迭代和维护成本。树结构设计 2.7 所示为原工程抽象语法树结构图,Node 类包含节点类型、定结构,其 union 结构是所有语法树节点类的集合,对于所有的语类作为其子成员,其节点之间的耦合度高,在对语法树进行访问造成一定程度的语义不明,此种语法树结构缺乏一定的层次关系。
【参考文献】:
期刊论文
[1]CCodeExtractor:一种针对C程序自动化的函数提取方法[J]. 张其良,张昱,周坤. 计算机科学. 2017(04)
[2]基于抽象语法树和多态机制的复杂条件语句自动重构研究[J]. 刘伟,胡志刚,刘宏韬. 电子科技大学学报. 2014(05)
[3]COStream:一种面向数据流的编程语言和编译器实现[J]. 张维维,魏海涛,于俊清,李鹤,黎昊,杨秋吉. 计算机学报. 2013(10)
[4]任务并行编程模型研究与进展[J]. 王蕾,崔慧敏,陈莉,冯晓兵. 软件学报. 2013(01)
[5]基于K-最近邻的C克隆代码重构方法[J]. 冯江辉,王甜甜,苏小红,马培军. 智能计算机与应用. 2011(03)
[6]使用抽象语法树和静态分析的克隆代码自动重构方法[J]. 于冬琦,彭鑫,赵文耘. 小型微型计算机系统. 2009(09)
硕士论文
[1]基于COStream的HEVC并行编码方法研究[D]. 莫斌生.华中科技大学 2017
[2]基于数据流的图像特征值提取与索引构建方法研究[D]. 肖硕.华中科技大学 2015
本文编号:3287863
【文章来源】:华中科技大学湖北省 211工程院校 985工程院校 教育部直属院校
【文章页数】:55 页
【学位级别】:硕士
【部分图文】:
词法分析器和语法分析器之间的交互如图2.2所示,在词法分析第一阶段,Flex工具采用扩展的正则表达式识别相
中 科 技 大 学 硕 士 学 位 符号组成,它们是语法的“单词”。符号由一。符号 error 代表错误恢复。由词法分析器产法分析器产生的符号被移交给语法分析器做语,规则左部定义的符号被称为非终结符。科斯范式( Backus-Naur Form,BNF)的规则对.5所示,在语法构建阶段, COStream 文法入口on.unit 表示文法入口,translation.unit 可以进行.unit 由 declaration 声明、普通 function 声明和 m 源程序顶层可由全局变量定义、函数定义以
图 2.6 表达式规约巴科斯范式和运算符优先级定义树结构设计项目工程中,语法树的结构设计采用了大量复杂的嵌套数据类型结构导致在语义检查、常量传播以及代码生成阶段对抽象语法树性和语义不明。因此,我们利用面向对象的思想、多态机制与 S支持,设计了一种新型的抽象语法树结构,大大提高了程序的可和可维护性,减小项目的更新迭代和维护成本。树结构设计 2.7 所示为原工程抽象语法树结构图,Node 类包含节点类型、定结构,其 union 结构是所有语法树节点类的集合,对于所有的语类作为其子成员,其节点之间的耦合度高,在对语法树进行访问造成一定程度的语义不明,此种语法树结构缺乏一定的层次关系。
【参考文献】:
期刊论文
[1]CCodeExtractor:一种针对C程序自动化的函数提取方法[J]. 张其良,张昱,周坤. 计算机科学. 2017(04)
[2]基于抽象语法树和多态机制的复杂条件语句自动重构研究[J]. 刘伟,胡志刚,刘宏韬. 电子科技大学学报. 2014(05)
[3]COStream:一种面向数据流的编程语言和编译器实现[J]. 张维维,魏海涛,于俊清,李鹤,黎昊,杨秋吉. 计算机学报. 2013(10)
[4]任务并行编程模型研究与进展[J]. 王蕾,崔慧敏,陈莉,冯晓兵. 软件学报. 2013(01)
[5]基于K-最近邻的C克隆代码重构方法[J]. 冯江辉,王甜甜,苏小红,马培军. 智能计算机与应用. 2011(03)
[6]使用抽象语法树和静态分析的克隆代码自动重构方法[J]. 于冬琦,彭鑫,赵文耘. 小型微型计算机系统. 2009(09)
硕士论文
[1]基于COStream的HEVC并行编码方法研究[D]. 莫斌生.华中科技大学 2017
[2]基于数据流的图像特征值提取与索引构建方法研究[D]. 肖硕.华中科技大学 2015
本文编号:3287863
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3287863.html