[发明专利]使用嵌入式解释器类型和变量的基于解释器的程序语言翻译器有效
申请号: | 201080015827.X | 申请日: | 2010-03-26 |
公开(公告)号: | CN102365621A | 公开(公告)日: | 2012-02-29 |
发明(设计)人: | D·R·谢里登 | 申请(专利权)人: | 奥普塔姆软件股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F17/20;G06F9/06 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 钱孟清 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 使用 嵌入式 解释 类型 变量 基于 程序语言 翻译器 | ||
发明领域
本发明涉及编程语言的自动翻译。
背景
编程语言的基本模型是根据语法所规范的符号集合,该基本模型根据语言 的语义规则被解析并翻译成可执行形式。以这种形式,在每个输入结构指向输 出表示中的特定结构的意义上,语言是“文字”。即,过程规范产生可执行过 程规范,并且结构或类型或类规范产生用于访问存储器中的该结构或类型或类 的元素的存储器模板(偏移集合)。
存在避免重复规范并识别公共处理序列和数据结构的各种方式。具体而 言,出现在多个位置的公共子处理序列可通过对公共子例程的调用来替代,该 公共子例程执行那个公共处理序列。出现在多个表达式中的公共子表达式还可 被析出为赋值给本地变量的表达式或者析出为返回子表达式的值的单独函数。 类似地,公共数据结构可用公共类型/类或结构规范来指定,其中数据成员按照 该公共类型来指定。面向对象的语言允许使用这些不同类型继承的基本类型来 识别并指定不同类型之间的共性,从而有效地共享基本类型数据成员以及成员 函数的定义和实现。
然而,可产生包括通过这些共享机制不能处理的差异的逻辑共性。具体而 言,一数据结构实现的两个规范可以是相同的,但要存储在该数据结构中的对 象的类型除外。例如,散列表的两种实现可只在各自可存储的对象的类型方面 有所不同。类似地,两种不同的计算平台的处理序列可以是相同的,而只在正 传递给调用的常量的名称方面有所不同。
有可能通过在运行时执行包括自动运行时检查的动作来处理一些这样的 情况。例如,常量可被改变成变量,其中该变量具有在运行时根据目标平台自 动设置的值。类似地,散列表可具有基本类型(可能是所谓的“空”基本类型 指针)并且执行实际上存储在表中以确保类型安全的类型的运行时检查。然而, 这种方法招致只在运行时发现问题的风险。它还招致执行实际上在翻译时已知 的并且由此逻辑上是不必要的各个方面的运行时检查的成本。最后,对于诸如 Verilog生成和嵌入式软件之类的一些情况,执行运行时检查可能是不可行的。 例如,路由器实现可能需要端口模块的N次实现,每次实现根据系统参数而稍 有不同,但在翻译时而非运行时被静态地例示。
这些问题的一种早期解决方法是添加所谓的宏预处理器,该宏预处理器 (预)处理语言输入并且随后关于所得经变换输入调用语言翻译器本身。该宏 处理器允许指定由宏处理器所识别的结构,从而使它修改输入源作为文本变 换。例如,C/C++预处理器是提供命名常量、宏(内联过程)、条件编译和文 件蕴含的宏处理器。然而,这种方法在实践中有若干问题。具体而言,文本变 换可产生非法结果和很难的出错消息、以及引入更难于捉摸的错误。它还可使 软件调试困难,因为输入源没有准确地反映适当地向语言翻译器提供了什么。
最近,类型参数化的类型和过程已被包括在语言中,因此只在所使用的类 型或常量方面有所不同的公共代码被指定一次,随后针对每个特定类型例示。 C++模板机制是一个示例。然而,C++类型名没有语义特性。它只是一个绑定 到类的类型参数。具体而言,C++类型的例示可导致只在链接时发现而不是由 翻译器发现的错误。C#和Java的类属是相似的,不同之处在于它们允许为这些 参数指定一些约束或不变量。
另一种方法是支持对语言中的基本语言结构的重新定义,该重新定义经常 被称为元编程。例如,语言可允许程序员指定对诸如函数调用运算符之类的基 本运算符的修订定义。然而,这种方法有效地创建了新语言,从而使其他程序 员难以理解软件。它还未解决诸如条件编译、文件蕴含等关键的实践需求。
因此,提供用于在翻译时处理逻辑共性的机制将是本领域的进步,这些机 制相对于传统方法提供了通用性和易用性的经改进组合。
概述
在本方法中,编程语言被扩展成具有嵌入式解释类型(EIT),这些EIT 定义在翻译时要解析的对象和变量。具有这些EIT之一的类型的变量或数据元 被称为嵌入式解释变量(EIV)。在翻译时解释(即,执行)包含EIV的控制 结构。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奥普塔姆软件股份有限公司,未经奥普塔姆软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201080015827.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种肘臂拉伸训练装置
- 下一篇:室内多功能综合健身机