一种计算机语言转换系统及其转换方法

文档序号:30515409发布日期:2022-06-25 03:10阅读:152来源:国知局
一种计算机语言转换系统及其转换方法

1.本发明涉及一种计算机程序c语言的转换,属于计算机语言程序领域,尤其涉及一种计算机语言转换系统及其转换方法。


背景技术:

2.随着科技的发展和人工智能时代的来临,计算机中程序发明具有越来越重要的地位。c语言程序发明是程序发明者的入门语言,它使学习者更能容易理解。c语言是一种通用的、面向过程的编程语言,可以进行多种方式进行程序的发明,广泛适用于系统与应用软件的开发。因其具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。
3.ft-matrix系列dsp是由国防科大计算机学院微电子所基于自主指令集,完全自主发明研发的可编程高性能微处理器。ft-matrix系列dsp在发明之初秉承着在保持传统dsp高性能低功耗特点的基础上,兼具适度通用性的发明理念,保持了传统dsp体系结构中的超长指令字(very long instruction word vliw)这一典型特征,同时采用了一系列面向通用应用的发明考量和体系结构技术,使得ft-matrix系列dsp兼具性能和通用性。而向量c语言正是ft-matrix dsp针对自身结构特点,在通用c语言编程方式的基础上进行了向量扩展支持,提供了一系列用于向量操作的内联函数接口,编译时可以通过编译器直接将内联函数映射成向量指令。该方式旨在通过程序员挖掘应用中存在的大量细粒度、同质、独立的数据操作,并基于向量化架构中多个浮点运算单元,将上述数据操作通过向量指令实现并发执行,从而显著提高应用性能。
4.由于ft-matric中的向量c语言是对c语言部分功能的拓展,所以可以通过在原c语言程序的基础上进行转换将其转换为可以在ft-matric中运行的向量c程序,从而加快应用性能。而为了便于程序员对于向量c程序的应用,本发明所述的一种可实现c语言程序转换为ft-matric dsp中向量c程序的方法便显得尤为重要。
5.公开该背景技术部分的信息仅仅旨在增加对本专利申请的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。


技术实现要素:

6.本发明的目的是克服现有技术中存在的计算机程序语言转换不便的问题,提供了一种计算机语言转换系统及其转换方法。
7.为实现以上目的,本发明的技术解决方案是:一种计算机语言转换系统,包括输入模块、检索模块、分割模块、词法分析模块、转换规则库模块、处理模块、存储模块;
8.所述输入模块的输出端与检索模块的输入端连接,输入模块的输出端与分割模块的输入端连接,检索模块与分割模块双向连接,分割模块的输出端与词法分析模块的输入端连接,检索模块的输出端与词法分析模块的输入端连接,词法分析模块的输出端与转换
规则库模块的输入端连接,转换规则库模块与数据库双向连接,转换规则库模块与存储模块双向连接,转换规则库模块的输出端与处理模块的输入端连接,处理模块与存储模块双向连接,存储模块与检索模块双向连接;
9.输入模块用于输入待转换的c语言内容,输入的内容存储于相对路径下的input.txt文件中,便于后续读取;
10.检索模块中用户选择待转换类型和目标转换类型,系统根据用户设置的转换类型,分别识别对应类型,并连接相应的语言规则库;
11.分割模块用于将输入待转换的内容进行分割比对,得到语句块;
12.词法分析模块用于识别待转换的c语言的语法结构,同时对分割后的语句块进行词义检查;
13.转换规则库模块用于将待转换的的c语言之间的转换规则导入数据库内;
14.处理模块用于依据转换规则库模块内的相应规则,按规则转换对应语言;
15.存储模块用于将处理模块转换过的语句存储于相对路径下的output.txt文件中转换完毕。
16.所述数据库包括两部分,一部分是待转化语句,另一部分目标转化语句,待转化语句与目标转化语句之间存在对应关系,当系统识别到待转化语句时,调取数据库中目标转化语句中与其对应的语句,显示在控制台上,并传输至存储模块。
17.所述检索模块中分别识别对应类型是指:预先设置指令集,指令集对待转换类型和目标转换类型进行识别,指令集识别后将对应数据库的标签,然后读取。
18.所述转换规则包括语句转换规则、字符转换规则或者标识符转换规则。
19.所述转换规则包括:假设x和y是变量,对于需要转化为向量类型的变量参照规则如下:
20.如果声明语句为unsigned short x,则转化为hvector unsigned short y;
21.如果声明语句为signed short x,则转化为hvector signed short y;
22.如果声明语句为unsigned int x,则转化为vector unsigned int y;
23.如果声明语句为signed int x,则转化为vector signed int y;
24.如果声明语句为float x,则转化为vector float y;
25.如果声明语句为double x,则转化为lvector double y。
26.所述转换规则还包括:假设src1、src2和src3是标准向量符号,e代表一个常量或变量,参照规则如下:
27.如果表达式为e,则转化为向量c语句e;
28.如果表达式为src1+src2,则转化为向量c语句vec_add(src1,src2);
29.如果表达式为src1-src2,则转化为向量c语句vec_sub(src1,src2);
30.如果表达式为src1*src2,则转化为向量c语句vec_mul(src1,src2);
31.如果表达式为src1*src2+src3,则转化为向量c语句vec_mula(src1,src2,src3);
32.如果表达式为src1*src2-src3,则转化为向量c语句vec_mulb(src1,src2,src3);
33.如果表达式为src1=src2,则转化为向量c语句src1=src2;
34.如果表达式为src1==src2,则转化为向量c语句vec_eq(src1,src2);
35.如果表达式为src1》src2,则转化为向量c语句vec_fcmpg(src1,src2);
36.如果表达式为src1《src2,则转化为向量c语句vec_it(src1,src2);
37.如果表达式为src1&src2,则转化为向量c语句vec_and(src1,src2);
38.如果表达式为src1|src2,则转化为向量c语句vec_or(src1,src2);
39.如果表达式为src1^src2,则转化为向量c语句vec_xor(src1,src2);
40.如果表达式为~src1,则转化为向量c语句vec_neg(src 1);
41.如果表达式为abs(src1),则转化为向量c语句vec_abs(src1);
42.如果表达式为(src1》src2)?src1:src2,则转化为向量c语句vec_max(src1,src2);
43.如果表达式为(src1》src2)?src2:src1,则转化为向量c语句vec_min(src1,src2)。
44.所述分割比对,得到语句块是指:首先对文件进行读取操作,将文件内容读取到缓存区内,然后在代码中调用split()函数以选取分隔符为界限将总体字符串分割为一个个小语句块,最后对小语句块进行数据库匹配和转换。
45.一种计算机语言转换系统的转换方法,包括以下步骤:
46.步骤一、将待转化c语言程序输入input.txt文件中;
47.步骤二:将该input.txt文件导入分割模块和检索模块,获得文件字符序列和转换类型;
48.步骤三:将该字符序列导入词法分析模块中,将其识别为c语言程序;
49.步骤四:在识别的c语言程序的首行添加“#include"c6x-c.h"”语句,然后将其导入转换模块;
50.步骤五:转换模块将待转换的语句匹配得出识别语句,并按照规则进行语句转换,得到向量c语言程序;
51.步骤六:将转化完毕的向量c语言程序输出到output.txt文件中,转换完毕。
52.所述转换模块将待转换的语句匹配得出识别语句,并按照规则进行语句转换是指:将待转换的语句在数据库中进行匹配,若匹配成功则进行转换,若匹配不成功则保持不变,继续对下一个进行匹配,重复上述过程直至匹配成功。
53.所述并按照规则进行语句转换包括以下任意一种:
54.第一种:
55.假设x和y是变量,对于需要转化为向量类型的变量参照规则如下:
56.如果声明语句为unsigned short x,则转化为hvector unsigned short y;
57.如果声明语句为signed short x,则转化为hvector signed short y;
58.如果声明语句为unsigned int x,则转化为vector unsigned int y;
59.如果声明语句为signed int x,则转化为vector signed int y;
60.如果声明语句为float x,则转化为vector float y;
61.如果声明语句为double x,则转化为lvector double y;
62.从原c语言程序中将待转换的语句从上至下进行语句识别,标记出可识别语句,并按照规则进行语句转换;
63.第二种:
64.假设src1、src2和src3是标准向量符号,e代表一个常量或变量,参照规则如下:
65.如果表达式为e,则转化为向量c语句e;
66.如果表达式为src1+src2,则转化为向量c语句vec_add(src1,src2);
67.如果表达式为src1-src2,则转化为向量c语句vec_sub(src1,src2);
68.如果表达式为src1*src2,则转化为向量c语句vec_mul(src1,src2);
69.如果表达式为src1*src2+src3,则转化为向量c语句vec_mula(src1,src2,src3);
70.如果表达式为src1*src2-src3,则转化为向量c语句vec_mulb(src1,src2,src3);
71.如果表达式为src1=src2,则转化为向量c语句src1=src2;
72.如果表达式为src1==src2,则转化为向量c语句vec_eq(src1,src2);
73.如果表达式为src1》src2,则转化为向量c语句vec_fcmpg(src1,src2);
74.如果表达式为src1《src2,则转化为向量c语句vec_it(src1,src2);
75.如果表达式为src1&src2,则转化为向量c语句vec_and(src1,src2);
76.如果表达式为src1|src2,则转化为向量c语句vec_or(src1,src2);
77.如果表达式为src1^src2,则转化为向量c语句vec_xor(src1,src2);
78.如果表达式为~src1,则转化为向量c语句vec_neg(src 1);
79.如果表达式为abs(src1),则转化为向量c语句vec_abs(src1);
80.如果表达式为(src1》src2)?src1:src2,则转化为向量c语句vec_max(src1,src2);
81.如果表达式为(src1》src2)?src2:src1,则转化为向量c语句vec_min(src1,src2);
82.从原c语言程序中将待转换的语句从上至下进行语句识别,标记出可识别语句,并按照规则进行语句转换。
83.与现有技术相比,本发明的有益效果为:
84.1、本发明一种计算机语言转换系统及其转换方法中,转换规则库模块用于将目标语言之间的转换规则导入数据库内,通过系统内部的转换规则库模块,巧妙利用了数据库的特点,可以通过在数据库中添加新的转换规则,来完善语言转换的功能,具有较好的可迭代性;还可以通过在数据库中开辟新的语言类型,实现多种语言之间的转换,只要输入足够的转换规则,对计算机程序的任何语言都可以进行转换。因此,本发明语言转换更加的方便快捷,适配性更好,可以针对个语言进行转换使用。
85.2、本发明一种计算机语言转换系统及其转换方法中,输入模块与检索模块连接,检索模块与分割模块连接,分割模块与词法分析模块连接,词法分析模块与转换规则库模块连接,转换规则库模块与数据库连接,转换规则库模块与处理模块连接,处理模块与存储模块连接,系统稳定、处理逻辑简单,整体上采用了逐层递进的逻辑关系,然后对于第三方理解和运用以及后续的优化难度都会较小。因此,本发明系统稳定、处理逻辑简单,对后续的优化提供了极大的便利。
附图说明
86.图1是本发明的系统框图。
87.图2是本发明的流程图。
具体实施方式
88.以下结合附图说明和具体实施方式对本发明作进一步详细的说明。
89.参见图1至图2,一种计算机语言转换系统,包括输入模块、检索模块、分割模块、词法分析模块、转换规则库模块、处理模块、存储模块;
90.所述输入模块的输出端与检索模块的输入端连接,输入模块的输出端与分割模块的输入端连接,检索模块与分割模块双向连接,分割模块的输出端与词法分析模块的输入端连接,检索模块的输出端与词法分析模块的输入端连接,词法分析模块的输出端与转换规则库模块的输入端连接,转换规则库模块与数据库双向连接,转换规则库模块与存储模块双向连接,转换规则库模块的输出端与处理模块的输入端连接,处理模块与存储模块双向连接,存储模块与检索模块双向连接;
91.输入模块用于输入待转换的c语言内容,输入的内容存储于相对路径下的input.txt文件中,便于后续读取;
92.检索模块中用户选择待转换类型和目标转换类型,系统根据用户设置的转换类型,分别识别对应类型,并连接相应的语言规则库;
93.分割模块用于将输入待转换的内容进行分割比对,得到语句块;
94.词法分析模块用于识别待转换的c语言的语法结构,同时对分割后的语句块进行词义检查;
95.转换规则库模块用于将待转换的的c语言之间的转换规则导入数据库内;
96.处理模块用于依据转换规则库模块内的相应规则,按规则转换对应语言;
97.存储模块用于将处理模块转换过的语句存储于相对路径下的output.txt文件中转换完毕。
98.所述数据库包括两部分,一部分是待转化语句,另一部分目标转化语句,待转化语句与目标转化语句之间存在对应关系,当系统识别到待转化语句时,调取数据库中目标转化语句中与其对应的语句,显示在控制台上,并传输至存储模块。
99.所述检索模块中分别识别对应类型是指:预先设置指令集,指令集对待转换类型和目标转换类型进行识别,指令集识别后将对应数据库的标签,然后读取。
100.所述转换规则包括语句转换规则、字符转换规则或者标识符转换规则。
101.所述转换规则包括:假设x和y是变量,对于需要转化为向量类型的变量参照规则如下:
102.如果声明语句为unsigned short x,则转化为hvector unsigned short y;
103.如果声明语句为signed short x,则转化为hvector signed short y;
104.如果声明语句为unsigned int x,则转化为vector unsigned int y;
105.如果声明语句为signed int x,则转化为vector signed int y;
106.如果声明语句为float x,则转化为vector float y;
107.如果声明语句为double x,则转化为lvector double y。
108.所述转换规则还包括:假设src1、src2和src3是标准向量符号,e代表一个常量或变量,参照规则如下:
109.如果表达式为e,则转化为向量c语句e;
110.如果表达式为src1+src2,则转化为向量c语句vec_add(src1,src2);
111.如果表达式为src1-src2,则转化为向量c语句vec_sub(src1,src2);
112.如果表达式为src1*src2,则转化为向量c语句vec_mul(src1,src2);
113.如果表达式为src1*src2+src3,则转化为向量c语句vec_mula(src1,src2,src3);
114.如果表达式为src1*src2-src3,则转化为向量c语句vec_mulb(src1,src2,src3);
115.如果表达式为src1=src2,则转化为向量c语句src1=src2;
116.如果表达式为src1==src2,则转化为向量c语句vec_eq(src1,src2);
117.如果表达式为src1》src2,则转化为向量c语句vec_fcmpg(src1,src2);
118.如果表达式为src1《src2,则转化为向量c语句vec_it(src1,src2);
119.如果表达式为src1&src2,则转化为向量c语句vec_and(src1,src2);
120.如果表达式为src1|src2,则转化为向量c语句vec_or(src1,src2);
121.如果表达式为src1^src2,则转化为向量c语句vec_xor(src1,src2);
122.如果表达式为~src1,则转化为向量c语句vec_neg(src 1);
123.如果表达式为abs(src1),则转化为向量c语句vec_abs(src1);
124.如果表达式为(src1》src2)?src1:src2,则转化为向量c语句vec_max(src1,src2);
125.如果表达式为(src1》src2)?src2:src1,则转化为向量c语句vec_min(src1,src2)。
126.所述分割比对,得到语句块是指:首先对文件进行读取操作,将文件内容读取到缓存区内,然后在代码中调用split()函数以选取分隔符为界限将总体字符串分割为一个个小语句块,最后对小语句块进行数据库匹配和转换。
127.一种计算机语言转换系统的转换方法,包括以下步骤:
128.步骤一、将待转化c语言程序输入input.txt文件中;
129.步骤二:将该input.txt文件导入分割模块和检索模块,获得文件字符序列和转换类型;
130.步骤三:将该字符序列导入词法分析模块中,将其识别为c语言程序;
131.步骤四:在识别的c语言程序的首行添加“#include"c6x-c.h"”语句,然后将其导入转换模块;
132.步骤五:转换模块将待转换的语句匹配得出识别语句,并按照规则进行语句转换,得到向量c语言程序;
133.步骤六:将转化完毕的向量c语言程序输出到output.txt文件中,转换完毕。
134.所述转换模块将待转换的语句匹配得出识别语句,并按照规则进行语句转换是指:将待转换的语句在数据库中进行匹配,若匹配成功则进行转换,若匹配不成功则保持不变,继续对下一个进行匹配,重复上述过程直至匹配成功。
135.所述并按照规则进行语句转换包括以下任意一种:
136.第一种:
137.假设x和y是变量,对于需要转化为向量类型的变量参照规则如下:
138.如果声明语句为unsigned short x,则转化为hvector unsigned short y;
139.如果声明语句为signed short x,则转化为hvector signed short y;
140.如果声明语句为unsigned int x,则转化为vector unsigned int y;
141.如果声明语句为signed int x,则转化为vector signed int y;
142.如果声明语句为float x,则转化为vector float y;
143.如果声明语句为double x,则转化为lvector double y;
144.从原c语言程序中将待转换的语句从上至下进行语句识别,标记出可识别语句,并按照规则进行语句转换;
145.第二种:
146.假设src1、src2和src3是标准向量符号,e代表一个常量或变量,参照规则如下:
147.如果表达式为e,则转化为向量c语句e;
148.如果表达式为src1+src2,则转化为向量c语句vec_add(src1,src2);
149.如果表达式为src1-src2,则转化为向量c语句vec_sub(src1,src2);
150.如果表达式为src1*src2,则转化为向量c语句vec_mul(src1,src2);
151.如果表达式为src1*src2+src3,则转化为向量c语句vec_mula(src1,src2,src3);
152.如果表达式为src1*src2-src3,则转化为向量c语句vec_mulb(src1,src2,src3);
153.如果表达式为src1=src2,则转化为向量c语句src1=src2;
154.如果表达式为src1==src2,则转化为向量c语句vec_eq(src1,src2);
155.如果表达式为src1》src2,则转化为向量c语句vec_fcmpg(src1,src2);
156.如果表达式为src1《src2,则转化为向量c语句vec_it(src1,src2);
157.如果表达式为src1&src2,则转化为向量c语句vec_and(src1,src2);
158.如果表达式为src1|src2,则转化为向量c语句vec_or(src1,src2);
159.如果表达式为src1^src2,则转化为向量c语句vec_xor(src1,src2);
160.如果表达式为~src1,则转化为向量c语句vec_neg(src 1);
161.如果表达式为abs(src1),则转化为向量c语句vec_abs(src1);
162.如果表达式为(src1》src2)?src1:src2,则转化为向量c语句vec_max(src1,src2);
163.如果表达式为(src1》src2)?src2:src1,则转化为向量c语句vec_min(src1,src2);
164.从原c语言程序中将待转换的语句从上至下进行语句识别,标记出可识别语句,并按照规则进行语句转换。
165.实施例1
166.一种计算机语言转换系统,包括输入模块、检索模块、分割模块、词法分析模块、转换规则库模块、处理模块、存储模块;
167.所述输入模块的输出端与检索模块的输入端连接,输入模块的输出端与分割模块的输入端连接,检索模块与分割模块双向连接,分割模块的输出端与词法分析模块的输入端连接,检索模块的输出端与词法分析模块的输入端连接,词法分析模块的输出端与转换规则库模块的输入端连接,转换规则库模块与数据库双向连接,转换规则库模块与存储模块双向连接,转换规则库模块的输出端与处理模块的输入端连接,处理模块与存储模块双向连接,存储模块与检索模块双向连接;
168.输入模块用于输入待转换的c语言内容,输入的内容存储于相对路径下的input.txt文件中,便于后续读取;
169.检索模块中用户选择待转换类型和目标转换类型,系统根据用户设置的转换类型,分别识别对应类型,并连接相应的语言规则库;
170.分割模块用于将输入待转换的内容进行分割比对,得到语句块;
171.词法分析模块用于识别待转换的c语言的语法结构,同时对分割后的语句块进行词义检查;
172.转换规则库模块用于将待转换的的c语言之间的转换规则导入数据库内;
173.处理模块用于依据转换规则库模块内的相应规则,按规则转换对应语言;
174.存储模块用于将处理模块转换过的语句存储于相对路径下的output.txt文件中转换完毕,每一次转换完毕后,转换后的语句需要一个存储来进行存储和显示,将结果写入“output.txt“文件中。
175.所述数据库包括两部分,一部分是待转化语句,另一部分目标转化语句,待转化语句与目标转化语句之间存在对应关系,当系统识别到待转化语句时,调取数据库中目标转化语句中与其对应的语句,显示在控制台上,并传输至存储模块。
176.所述检索模块中分别识别对应类型是指:预先设置指令集,指令集对待转换类型和目标转换类型进行识别,指令集识别后将对应数据库的标签,然后读取。
177.所述转换规则包括语句转换规则、字符转换规则以及标识符转换规则。
178.所述转换规则包括:假设x和y是变量,对于需要转化为向量类型的变量参照规则如下:
179.如果声明语句为unsigned short x,则转化为hvector unsigned short y;
180.如果声明语句为signed short x,则转化为hvector signed short y;
181.如果声明语句为unsigned int x,则转化为vector unsigned int y;
182.如果声明语句为signed int x,则转化为vector signed int y;
183.如果声明语句为float x,则转化为vector float y;
184.如果声明语句为double x,则转化为lvector double y。
185.所述转换规则还包括:假设src1、src2和src3是标准向量符号,e代表一个常量或变量,参照规则如下:
186.如果表达式为e,则转化为向量c语句e;
187.如果表达式为src1+src2,则转化为向量c语句vec_add(src1,src2);
188.如果表达式为src1-src2,则转化为向量c语句vec_sub(src1,src2);
189.如果表达式为src1*src2,则转化为向量c语句vec_mul(src1,src2);
190.如果表达式为src1*src2+src3,则转化为向量c语句vec_mula(src1,src2,src3);
191.如果表达式为src1*src2-src3,则转化为向量c语句vec_mulb(src1,src2,src3);
192.如果表达式为src1=src2,则转化为向量c语句src1=src2;
193.如果表达式为src1==src2,则转化为向量c语句vec_eq(src1,src2);
194.如果表达式为src1》src2,则转化为向量c语句vec_fcmpg(src1,src2);
195.如果表达式为src1《src2,则转化为向量c语句vec_it(src1,src2);
196.如果表达式为src1&src2,则转化为向量c语句vec_and(src1,src2);
197.如果表达式为src1|src2,则转化为向量c语句vec_or(src1,src2);
198.如果表达式为src1^src2,则转化为向量c语句vec_xor(src1,src2);
199.如果表达式为~src1,则转化为向量c语句vec_neg(src 1);
200.如果表达式为abs(src1),则转化为向量c语句vec_abs(src1);
201.如果表达式为(src1》src2)?src1:src2,则转化为向量c语句vec_max(src1,src2);
202.如果表达式为(src1》src2)?src2:src1,则转化为向量c语句vec_min(src1,src2)。
203.分割模块主要是为了便于后面的处理模块,在输入的时候语句格式可能并不规范,这样就不好进行数据库的语句的比对,所以我们就对“input.txt“的内容进行操作,首先对文件进行读取操作,将文件内容读取到缓存区内,然后在代码中调用split()函数以选取分隔符为界限将总体字符串分割为一个个小语句块,最后对小语句块进行数据库匹配和转换。
204.实施例2:
205.实施例2与实施例1基本相同,其不同之处在于:
206.一种计算机语言转换系统的转换方法,包括以下步骤:
207.步骤一、将待转化c语言程序输入input.txt文件中。
208.步骤二:将该input.txt文件导入分割模块和检索模块,获得文件字符序列和转换类型。
209.步骤三:将该字符序列导入词法分析模块中,将其识别为c语言程序。
210.步骤四:在识别的c语言程序的首行添加“#include"c6x-c.h"”语句,然后将其导入转换模块。
[0211]“#include"c6x-c.h"”语句包含向量库(“c6x-c.h”)的头文件,因为向量c语言中的某些数据类型和函数,如hvector和vec_add(src1,src2)这些的在c语言库中是不存在的,所以必须要包含“c6x-c.h”头文件才可以使用。
[0212]
步骤五:转换模块将待转换的语句匹配得出识别语句,并按照规则进行语句转换,得到向量c语言程序。
[0213]
步骤六:将转化完毕的向量c语言程序输出到output.txt文件中,转换完毕。
[0214]
所述转换模块将待转换的语句匹配得出识别语句,并按照规则进行语句转换还包括,将待转换的语句在数据库中进行匹配,若匹配成功则进行转换,若匹配不成功则保持不变,继续对下一个进行匹配,重复上述过程直至匹配成功。
[0215]
所述并按照规则进行语句转换包括以下任意一种:
[0216]
第一种:
[0217]
假设x和y是变量,对于需要转化为向量类型的变量参照规则如下:
[0218]
如果声明语句为unsigned short x,则转化为hvector unsigned short y;
[0219]
如果声明语句为signed short x,则转化为hvector signed short y;
[0220]
如果声明语句为unsigned int x,则转化为vector unsigned int y;
[0221]
如果声明语句为signed int x,则转化为vector signed int y;
[0222]
如果声明语句为float x,则转化为vector float y;
[0223]
如果声明语句为double x,则转化为lvector double y;
[0224]
从原c语言程序中将待转换的语句从上至下进行语句识别,标记出可识别语句,并
按照规则进行语句转换;
[0225]
第二种:
[0226]
假设src1、src2和src3是标准向量符号,e代表一个常量或变量,参照规则如下:
[0227]
如果表达式为e,则转化为向量c语句e;
[0228]
如果表达式为src1+src2,则转化为向量c语句vec_add(src1,src2);
[0229]
如果表达式为src1-src2,则转化为向量c语句vec_sub(src1,src2);
[0230]
如果表达式为src1*src2,则转化为向量c语句vec_mul(src1,src2);
[0231]
如果表达式为src1*src2+src3,则转化为向量c语句vec_mula(src1,src2,src3);
[0232]
如果表达式为src1*src2-src3,则转化为向量c语句vec_mulb(src1,src2,src3);
[0233]
如果表达式为src1=src2,则转化为向量c语句src1=src2;
[0234]
如果表达式为src1==src2,则转化为向量c语句vec_eq(src1,src2);
[0235]
如果表达式为src1》src2,则转化为向量c语句vec_fcmpg(src1,src2);
[0236]
如果表达式为src1《src2,则转化为向量c语句vec_it(src1,src2);
[0237]
如果表达式为src1&src2,则转化为向量c语句vec_and(src1,src2);
[0238]
如果表达式为src1|src2,则转化为向量c语句vec_or(src1,src2);
[0239]
如果表达式为src1^src2,则转化为向量c语句vec_xor(src1,src2);
[0240]
如果表达式为~src1,则转化为向量c语句vec_neg(src 1);
[0241]
如果表达式为abs(src1),则转化为向量c语句vec_abs(src1);
[0242]
如果表达式为(src1》src2)?src1:src2,则转化为向量c语句vec_max(src1,src2);
[0243]
如果表达式为(src1》src2)?src2:src1,则转化为向量c语句vec_min(src1,src2)
[0244]
从原c语言程序中将待转换的语句从上至下进行语句识别,标记出可识别语句,并按照规则进行语句转换。
[0245]
还可以通过在数据库中导入新的语言类型,实现多种语言之间的转换,只要输入足够的转换规则,对计算机程序的任何语言都可以进行转换。
[0246]
以上所述仅为本发明的较佳实施方式,本发明的保护范围并不以上述实施方式为限,但凡本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1