[发明专利]计算环境中翻译表达式有效
| 申请号: | 200680023180.9 | 申请日: | 2006-06-27 |
| 公开(公告)号: | CN101208690A | 公开(公告)日: | 2008-06-25 |
| 发明(设计)人: | 克雷格·W.·斯坦菲尔 | 申请(专利权)人: | 起元软件有限公司 |
| 主分类号: | G06F17/28 | 分类号: | G06F17/28 |
| 代理公司: | 隆天国际知识产权代理有限公司 | 代理人: | 郑小军;郑特强 |
| 地址: | 美国马*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 计算 环境 翻译 表达式 | ||
背景技术
本发明涉及在计算环境中翻译表达式(expression)。
在外壳脚本语言(例如,ksh)中,可以使用前缀(例如,$)来引用在外壳脚本中的参数。在ksh中,动态环境保持之前定义的参数值。在运行外壳脚本或者赋值命令行表达式时,所引用的参数根据其在动态环境中的参数值而被绑定。在某些情况下,当以脚本语言创建脚本时,使用适合脚本语言的引用语法(quoting syntax)对于在脚本运行时保留字面值(literal value)和抑制引用的表达式中参数的绑定都是非常有用的。也可以使用其它机制来将参数绑定为预定值,例如宏展开(macro expansion)。
发明内容
在总的方案中,本发明旨在提供一种用于翻译表达式的方法,以及相应的软件和系统。所述方法包括接受以第一语法表示的第一表达式,所述表达式包括使用第一语法表示字符串值(string value)的第一字符序列;识别用于表示该表达式的第二语法;以及以表示第一表达式的第二语法生成第二表达式,包括以第一字符序列生成第二字符序列,使得所述第二字符序列使用第二语法表示字符串值。
本发明这一方案包括一个或者多个下列特征:
第一表达式包括多个可执行语句。
第一表达式包括命令行输入。
第一字符序列包括被绑定到所引用值的参数。
使用第一字符序列生成第二字符序列包括:绑定参数到所引用的值;以及根据第二语法的引用语法来生成包括所引用的值的所述第二字符序列。
第一字符序列包括包围参数的分隔符。
分隔符包括预定前缀,所述预定前缀包括其后带有引用符号的美元符号。
分隔符包括预定后缀,所述预定后缀包括引用符号。
第一字符序列包括包围字符串值表示方式的分隔符。
字符串值包括在该第一语法中用以表明参数引用的字符。
使用所述第一字符序列生成第二字符序列包括抑制字符串值中的参数绑定。
选择与计算语言兼容的所述第二语法,例如ksh、java、DML、C或SQL。
所述第二语法包括用于解释字符序列的规则。
识别第二语法包括基于在第一字符序列前的标志符来识别语法。
在总的方案中,本发明旨在提供一种用于赋值表达式的方法,以及相应的软件和系统。所述方法包括:接受存储参数定义的一个或者多个数据结构;识别所述表达式中所引用的一个或者多个参数;基于所存储的定义为每个所识别的参数确定值;以及将所确定的参数值存储在绑定环境中。
本发明这一方案包括一个或者多个下列特征:
绑定环境存储所识别参数的值以及存储对于赋值所识别的参数所必需的参数值,并且该绑定环境不必存储在所述一个或者多个数据结构中存储有其定义的全部参数的值。
该方法还包括利用绑定到来自绑定环境的值的所引用的参数来执行表达式。
表达式是程序或者脚本的一部分。
表达式包括命令行输入。
本发明的多个方案可以包括一个或者多个以下优点:
数据处理环境可以包括元数据,例如数据转换的定义或者记录格式(例如,以数据操作语言所写的)。具有依据在运行时获得的字面值定义的动态元数据是有用处的。根据所识别的语法翻译目标表达式不仅能够获得字面值,而且能够以适合所识别的语法的方式引用的字面值。而且,为了尊重(honor)用于所识别的语法的引用惯例,一些字面值可以在目标表达式的赋值中被保留。
计算系统可以在绑定环境中存储参数值。在赋值表达式(例如,在外壳脚本中的表达式或者命令行表达式)时,根据绑定环境中的参数值来绑定所引用的参数。存在与在绑定环境中保持参数值有关联的开销。为了避免必须保持绑定环境具有(例如,在参数及其定义的列表中)已定义的每个参数的值,计算系统可以扫描表达式以确定只用于实际在该表达式中所引用的参数的值和其值对于赋值所引用的参数是必须的参数的值。本发明的其它特征和优点,可以通过以下描述以及所属权利要求变得清楚。
附图说明
图1是表示计算环境和目标环境之间互动的框图。
图2是用于翻译表达式的计算环境的框图。
图3是示出数据仓库中,用于参数分配的存储区域的内容的框图。
图4是示出在本地存储器中绑定环境的内容的框图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于起元软件有限公司,未经起元软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680023180.9/2.html,转载请声明来源钻瓜专利网。





