[发明专利]用于多核的C语言扩充及编译系统支持方法无效

专利信息
申请号: 201010140826.X 申请日: 2010-04-07
公开(公告)号: CN101794230A 公开(公告)日: 2010-08-04
发明(设计)人: 孙斌 申请(专利权)人: 孙斌
主分类号: G06F9/44 分类号: G06F9/44;G06F9/45
代理公司: 暂无信息 代理人: 暂无信息
地址: 200072 上海市*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 用于 多核 语言 扩充 编译 系统 支持 方法
【权利要求书】:

1.一种扩展C语言的方法,其特征是添加新的关键字,用新的关键字区别不同的处理器核,使得每一段程序都对应具体的处理器核。为了能够保证与现有C语言的兼容性,我们定义默认处理器为处理器0。上述C语言扩充方法的具体步骤为:

a.  在C语言体系下,保持现有C语言所有关键字;

b.  添加新的关键字,保证其与其他关键字不重合,并且能够代表不同的处理器核,在此,我们选用了MCU、PUB作为新的关键字,其代表设置不同的处理器核;

c.  参照现有C语言一般格式,设计该关键字在C语言中的使用方法。根据现有C语言语法格式,我们设计了MCU、PUB关键字使用方法。

  d.为保证与现有C语言程序的兼容性,设置默认处理器编号为0,即当处理器为单核处理器时,其默认处理器核编号即为0。对程序而言,当程序并未如上述c项在定义后作关键字定义时,我们默认所有定义变量、函数、中断定位在处理器0中。

  e.在现有C语言编译原理的基础上,添加对这两个关键字进行处理的前置编译程序。

  f、添加现有的C语言编译程序,在前置编译程序之后,对分类后的程序进行C语言编译。

2.根据权利要求1所述的保留C语言所有关键字的方法为:

保留C语言所有关键字的方法是保留编译系统对C语言关键字的支持,为此,我们采用了保留原有C语言编译系统的方法,而将本发明所涉及的第e项前置编译程序作为前置独立程序放置在传统编译系统之前。

   当程序中没有’MCU’或者’PUB’关键字时,经过前置编译程序时,对其不作处理。生成与原文件一致的文件然后送传统C语言编译程序进行处理,结果是可以保持对传统C语言的兼容性。

3.根据权利要求1所述的添加新关键字的方法为:

在本发明所涉及的第e项前置编译程序中,对新添加的关键字进行词法、语法、语义预处理,并按照这些关键字对程序所涉及的定义变量、定义函数等进行分类,形成中间文件,并将这些文件作为传统编译系统的输入文件,通过传统编译系统进行处理。

在本发明中,采用’MCU’标示不同的处理器核专属变量、函数和中断等,采用’PUB’标示共享变量、函数和中断。

4.根据权利要求1所述的关键字在C语言中的使用方法设计如下:

1)、MCU关键字可以置于所有定义语句后面,在其后面为相应的处理器编号:

(a) 变量定义;置于该定义变量后面,标示该变量为某一处理器的专有变量。如:

inta1MCU1;//’int’为变量类型,’a1’为变量名称,‘MCU’为关键字,                                //‘1’表示该变量类型存储在处理器核1中

(b) 函数定义:置于该函数定义后面,标示该函数定位在某一处理器的程序存储区中,并且在该处理器中执行。如:

voidfunction1MCU1;//’void’为函数返回值类型,’function1’为//函数名称,‘MCU’为关键字,’1’表示该函数存储在处理器核1所属程序//存储空间中,并由处理器核1执行

(c) 中断定义:置于该中断定义后面,标示该中断定位在某一处理器中,该中断由该处理器处理。如:

Voidinterrupt1MCU1;//’void’为函数返回值类型,’interrupt1’

//为函数名称,‘MCU’为关键字,’1’表示该函数存储在处理器核1所属程//序存储空间中,该中断由处理器核1执行中断处理

     2)、PUB关键字针对存在公共存储区的处理器可以置于所有定义语句后面,在其后面为相应的公共存储区编号;

(a) 变量定义;置于该定义变量后面,标示该变量为某一公共存储区的专有变量。如:

inta1PUB1;//’int’为变量类型,’a1’为变量名称,‘MCU’为关键字,                                //‘1’表示该变量类型存储在公共存储区1中

(b) 函数定义:置于该函数定义后面,标示该函数定位在公共程序存储区中,并且可以由处理器任一处理器核中执行。如:

voidfunction1PUB1;//’void’为函数返回值类型,’function1’为//函数名称,‘PUB’为关键字,’1’表示该函数存储在公共存储区1中,可//以由任一处理器核执行

(c) 中断定义:置于该中断定义后面,标示该中断定位在公共存储区中,该中断可以由任一处理器处理。如:

Voidinterrupt1PUB1;//’void’为函数返回值类型,’interrupt1’

//为函数名称,‘PUB’为关键字,’1’表示该函数存储在公共存储区1中,该中断可以由任一处理器核执行。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于孙斌,未经孙斌许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010140826.X/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top