一种针对移动π演算语言的文件处理功能的编译方法与流程

文档序号:13421331阅读:162来源:国知局
一种针对移动π演算语言的文件处理功能的编译方法与流程

本发明属于移动通信、并发计算领域,涉及nomadicpict(移动π演算语言),特别涉及一种针对移动π演算语言的文件处理功能的编译方法。



背景技术:

π演算是在1991年由英国著名科学家,图灵奖获得者罗宾·米尔纳提出。其是一种用于描述和分析并发系统的演算模型。π演算推广了通信系统演算,允许在通信中传递通道的名字,使得π演算能够描述通信拓扑结构的动态改变,具有强大的表达能力,同时又继承了通信系统演算的简洁优美的语义理论——互模拟。π演算已经被应用到程序设计语言的设计、分布式系统的分析与验证等领域,产生了广泛的影响。pict(π演算语言)语言是一门单纯应用π演算的高级并发语言。π演算语言拥有自己独特的处理方式,并且非常贴近π演算思想。因为π演算中变量的值是不可以改变的,就不存在多个进程同时修改一个变量而导致“死锁”的问题,这就降低并发控制的成本,为并行提供了极大的方便。

由于π演算语言是最早描述π演算的基本语言,而nomadicpict(移动π演算语言)在继承了π演算语言的基础上并对其进行了扩展,使得与移动代理之间的通信与位置无关。但移动π演算语言的编译系统与π演算语言的编译系统相比缺少了文件处理功能。而π演算语言系统中的文件处理功能是以内联c函数的方式实现的,可移植性并不好,并且移动π演算语言的虚拟机并不支持解释执行c程序,所以无从借鉴。

当算法涉及到例如海量数据、图像数据、地理信息数据时,数据一般不会写在程序中,会借助文件来进行处理,而且如果移动π演算语言的编译系统直接在程序中处理大量数据,由于运行内存是有限的,从而会导致内存溢出,程序无法运行。在同样状况下,c程序也会借助文件来处理大量数据,所以当与c语言对比,证明移动π演算语言并行方面的优越性时,需要满足对照实验的条件,所以必须有文件处理功能。而且文件处理功能是与使用者交互最直接的功能,对于数据的处理也更加灵活,程序代码也更加简洁规范。π演算语言正处于发展中,许多目前π演算语言的研究人员手动输入大量数据,十分繁琐;并且算法一旦涉及到海量数据,即便非常耗时地手动去输入海量数据,程序也极有可能导致内存溢出、卡住无法运行。所以急需一种针对移动π演算语言的文件处理功能的编译方法,才能更有效地解决这些问题,进一步推动π演算及其编程语言的推广和发展。



技术实现要素:

本发明的目的在于针对上述现有编译器的不足,提供一种针对移动π演算语言的文件处理功能的编译方法。

本发明的目的是通过以下技术方案实现的:

一种针对移动π演算语言的文件处理功能编译方法,包括以下步骤:

a、编写库文件

在移动π演算语言标准库中,编写文件处理功能的源文件及npict文件(使用移动π演算语言编写的文件);

b、编译npict文件

在终端中编写命令,编译执行步骤a中编写的npict文件,生成运行时系统可执行的中间代码文件;

c、修改运行时系统文件

使用中间代码语言中的文件通道技术,编写与步骤a中npict文件中各功能对应的底层代码,并进行相应的异常处理;

d、生成可执行程序

删除相应的源文件编译的模块接口和模块实现的已编译字节码对象文件,删除当前可执行文件,重新编译整个npict底层编译器相关文件,生成最终可执行程序。

步骤a,所述编写库文件具体包括以下步骤:

创建源文件,文件中定义该文件类名称、文件相关函数声明、函数功能说明、文件相关内联函数声明、函数调用缩写;创建与源文件对应的npict文件。

步骤b,所述编译npict文件具体包括以下步骤:

在移动π演算语言标准库中打开终端,输入相应编译命令并执行,生成运行时系统可执行的中间代码文件。

步骤c,所述文件通道分为只读、只写、追加、二进制模式、文本模式。

步骤c,所述修改运行时系统文件具体包括以下步骤:

c1、在运行时系统文件中编写与该文件类对应指令;

c2、在运行时系统文件中编写文件写相关功能底层代码;

c3、在运行时系统文件中编写文件读相关功能底层代码;

c4、在运行时系统文件中编写各功能对应异常处理程序。

步骤c2,所述文件写相关功能包括文件通道类型解析,基本类型数据的文本模式写相关功能、二进制模式写相关功能,文件当前写位置的查找和设置,写文件通道冲刷,计算写文件大小。

步骤c3,所述文件读相关功能包括文件通道类型解析,基本类型数据的文本模式读相关功能、二进制模式读相关功能,文件当前读位置的查找和设置,计算读文件大小。

步骤d,所述编译npict文件具体包括以下步骤:

将被改动的源文件编译的模块接口和模块实现的已编译字节码对象文件删除,删除以前的可执行文件,在该文件目录下打开终端,运行编译命令,重新生成源文件编译的模块接口、模块实现的已编译字节码对象文件和最后的可执行程序。

与现有移动π演算语言编译系统相比,本发明的有益效果为:实现了相关文件处理功能,处理数据更加灵活

附图说明

图1为本发明一种针对移动π演算语言的文件处理功能编译方法的流程示意图;

图2为本发明中文件的写基本命令及实验结果图;

图3为本发明中文件的读基本命令及实验结果图;

图4为本发明中异构最早完成时间算法的文件数据读取算法图;

图5为本发明中异构最早完成时间算法实验结果部分截图;

图6为本发明中异常处理错误信息提示图。

具体实施方式

在一门程序设计语言中,文件处理功能是非常重要的组成部分。而且是与使用者交互最直接的功能,使得数据的处理更加灵活。当程序数据涉及到例如海量数据、图像数据、地理信息数据时,数据一般不会写在程序中,会借助文件来进行处理。而目前的移动π演算语言的编译系统缺少对文件相关方面的编译处理,如果移动π演算语言的编译系统直接在程序中处理大量数据,由于内存是有限的,从而会导致内存溢出,程序无法运行。而π演算正处于发展阶段,许多配套设施还不够完善,由于文件处理的相关功能的缺失,使得许多该领域的研究者遇到瓶颈,所以急需一种针对移动π演算语言的文件处理功能的编译方法,才能进一步推动π演算语言的发展。

本发明提供一种针对移动π演算语言的文件处理功能编译方法,通过在移动π演算语言标准库中,编写文件处理功能的源文件及npict文件,定义文件类及相关函数,使用文件通道技术,在运行时系统编写与标准库系统文件对应的底层代码。本发明针对移动π演算语言的文件处理功能编译方法包括编写库文件、编译npict文件、修改运行时系统文件、生成可执行程序,其流程示意图参阅图1。

一种针对移动π演算语言的文件处理功能编译方法,包括以下步骤:

a、编写库文件

在移动π演算语言标准库中,编写文件处理功能的源文件及npict文件;

b、编译npict文件

在终端中编写命令,编译执行步骤a中编写的npict文件,生成运行时系统可执行的中间代码文件;

c、修改运行时系统文件

使用中间代码语言中的文件通道技术,编写与步骤a中npict文件中各功能对应的底层代码,并进行相应的异常处理;

d、生成可执行程序

删除相应的源文件编译的模块接口和模块实现的已编译字节码对象文件,删除当前可执行文件,重新编译整个npict底层编译器相关文件,生成最终可执行程序。

步骤a,所述编写库文件具体包括以下步骤:

创建源文件,文件中定义该文件类名称、文件相关函数声明、函数功能说明、文件相关内联函数声明、函数调用缩写;创建与源文件对应的npict文件。

步骤b,所述编译npict文件具体包括以下步骤:

在移动π演算语言标准库中打开终端,输入相应编译命令并执行,生成运行时系统可执行的中间代码文件。

步骤c,所述文件通道分为只读、只写、追加、二进制模式、文本模式。

步骤c,所述修改运行时系统文件具体包括以下步骤:

c1、在运行时系统文件中编写与该文件类对应指令;

c2、在运行时系统文件中编写文件写相关功能底层代码;

c3、在运行时系统文件中编写文件读相关功能底层代码;

c4、在运行时系统文件中编写各功能对应异常处理程序。

步骤c2,所述文件写相关功能包括文件通道类型解析,基本类型数据的文本模式写相关功能、二进制模式写相关功能,文件当前写位置的查找和设置,写文件通道冲刷,计算写文件大小。

步骤c3,所述文件读相关功能包括文件通道类型解析,基本类型数据的文本模式读相关功能、二进制模式读相关功能,文件当前读位置的查找和设置,计算读文件大小。

步骤d,所述编译npict文件具体包括以下步骤:

将被改动的源文件编译的模块接口和模块实现的已编译字节码对象文件删除,删除以前的可执行文件,在该文件目录下打开终端,运行编译命令,重新生成.mli源文件编译的模块接口、模块实现的已编译字节码对象文件和最后的可执行程序。

实施例1:基本读写功能实验

针对移动π演算语言的文件处理功能编译方法,本发明还给出了文件读写功能的一种基本实现。文件处理最重要的功能便是按使用者的需求存储写入文件以及对文件中的内容按需进行读取。其中本发明中文件的写基本功能包括:写入一个字符,写入字符串,将字符串按需截取部分写入文件,写入一个8位整数(与ascii码对应),以二进制格式(4字节)写入一个整数,根据需求定位到当前写位置,返回当前写位置,返回当前写入文件的大小(字符数)。文件写基本功能测试及实验结果参阅附图2,可以看到每一项功能都正常运行,并且得到了预期的结果。

实验结果表明该种针对移动π演算语言的文件处理功能编译方法能够成功地实现文件的写基本功能,本发明所提供的文件写基本功能足够使用者灵活地按需存储写入文件。

本发明中文件的读基本功能包括:读取一个字符,读取一行字符串,从给定位置读取一定长度的字符存储到缓冲字符串中并返回实际读取的字符数,从给定位置读取一定长度的字符存储到缓冲字符串,读取一个8位整数(与ascii码对应),读取一个二进制格式(4字节)整数,根据需求定位到当前读位置,返回当前读位置,返回当前读取文件的大小(字符数)。文件写基本功能测试及实验结果参阅附图3,可以看到每一项功能都正常运行,并且得到了预期的结果。

实验结果表明该种针对移动π演算语言的文件处理功能编译方法能够成功地实现文件的读基本功能,本发明所提供的文件读基本功能足够使用者灵活地按需读取文件。

通过以上实验结果,表明本发明针对移动π演算语言的文件处理功能编译方法能够成功地通过编译,实现移动π演算语言中文件的读写基本功能。并且对文件读写处理提供了丰富的方法,足够满足用户的需求,使用户能够更加灵活地处理文件。

实施例2:海量数据运行测试

由于π演算语言本身就是一门并行语言,以并行方式处理海量数据提高运行效率是其非常重要的目标之一。而目前的移动π演算语言的编译系统是缺少文件处理功能的,一旦涉及到许多大数据的相关算法,海量节点的并行作业任务调度算法等等,这些算法涉及到的海量数据如果直接写到程序中会造成内存溢出,程序卡住无法运行。并且将所有的数据写到程序中,程序代码便显得冗长,并且不方便阅读。所以实现了文件处理功能便可以更加灵活地处理数据,程序代码便于阅读,更加规范。而且可与c语言涉及到文件的算法进行对照,从而证明移动π演算语言在并行方面的优越性。

本实验中,对使用大量数据节点的并行作业任务调度的经典算法异构最早完成时间算法用移动π演算语言来实现。将节点相关数据和处理器相关数据分别存到文件中,然后参阅图4,使用文件处理功能,将文件中的数据按需依次循环读入从而构成我们需要的链表等数据结构,然后编写异构最早完成时间算法,并给予相应的并行处理情况下进行任务调度。

实验结果部分截图参阅图5,程序正常运行,运行结果与预期吻合。由此表明,本发明针对移动π演算语言的文件处理功能编译方法能够对海量数据通过文件进行处理,并且没有对已有功能的使用造成任何影响。

实施例3:针对移动π演算语言的文件处理功能编译方法的健壮性

一门良好的程序设计语言的编译系统应该具有良好的健壮性。当程序在遇到异常的情况下还能运行或者给予用户友好的提示。所以本发明针对移动π演算语言的文件处理功能编译方法提供了相关的异常处理和错误提示,可以更好地帮编程者理清思绪,也帮助代码增强了可读性,方便了维护者的阅读和理解。

所以例3针对文件读写处理功能的异常状况予以测试,例如无效的文件名,写方法未指定有效的字符串,所读位置达到文件末尾,读入缓冲字符串未指定有效的字符串等功能,测试结果参阅图6。

实验结果表明本发明有效地实现了移动π演算语言的文件处理功能,并且对文件处理功能可能的异常状况进行相应的异常处理,给出友好的错误提示,具有良好的健壮性。从而可以更有效地处理海量数据,与用户更加直接地进行交互,灵活地处理数据,弥补了目前领域中对移动π演算语言文件处理功能的缺失,继而进一步推动π演算及其编程语言的推广和发展。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1