[发明专利]基于流的范围界定有效
申请号: | 201880033532.1 | 申请日: | 2018-04-09 |
公开(公告)号: | CN110678839B | 公开(公告)日: | 2023-09-05 |
发明(设计)人: | G·比尔曼;B·戈茨;G·斯蒂尔 | 申请(专利权)人: | 甲骨文国际公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F11/36 |
代理公司: | 中国贸促会专利商标事务所有限公司 11038 | 代理人: | 周磊 |
地址: | 美国加*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 范围 界定 | ||
公开了用于基于流的范围界定的技术。相同级别代码段序列中的第一代码段封装第一较低级别词法范围。第一较低级别范围包括为相同级别代码段序列提供的范围界定。第一代码段包括条件和未初始化变量。如果第一代码段被执行,则使得条件被评估。如果条件被满足,则未初始化变量被初始化,并且使未初始化变量仅在第一较低级别词法范围内可用。如果第二代码段(a)引用未初始化变量,并且(b)在相同级别代码段序列中或在第一较低级别词法范围之外的第二较低级别词法范围中,则呈现指示未初始化变量在第二代码段的范围之外的错误消息。
权益要求;通过引用并入本文
本申请要求于2017年4月8日提交的美国临时专利申请No.62/483,342和于2018年4月6日提交的美国专利申请No.15/947,432的权益,这些申请通过引用并入本文。
申请人特此撤销在(一个或多个)母申请或其申请历史中的权利要求范围的任何声明,并告知USPTO本申请中的权利要求可能比(一个或多个)母申请中的任何权利要求更广泛。
技术领域
本公开涉及范围界定(scoping)变量。特别地,本公开涉及基于流的范围界定。
背景技术
在计算机编程中,变量的范围是其中变量可用于使用的代码区域。例如,特定变量可能在特定代码段或代码区域的范围中。如本文所使用的,“代码段”是范围界定规则适用于的语句、表达式或任何其它类型的代码段(或其一部分)。“代码区域”是块、方法、函数、类、程序包(packages)、模块、应用或包围一个或多个代码段的任何其它类型的代码区域。范围界定是确定一个或多个变量可用于在其中使用的(一个或多个)范围的处理。具体而言,在实施例中,范围界定确定代码中的(一个或多个)变量的(一个或多个)范围,其中一个代码段序列封装一个或多个其它代码段序列。不同的编程语言具有不同的规则用于范围界定变量。一般而言,存在两种类型的范围界定:动态范围界定和词法范围界定,如下面进一步详细描述的。
典型地,在动态范围界定中,变量在范围内,直到其中声明该变量的函数返回。例如,假设函数f()在一个代码段中声明了局部变量x,然后在随后的代码段中调用另一个函数g()。在运行时,x在声明x的代码段之后的f()中的所有代码段的范围内,无论在调用g()之前还是调用g()之后。但是,当从f()内调用g()时,x也在g()中的所有代码段的范围内,因为在调用g()时,f()尚未返回。换句话说,当从f()内调用g()时,g()的范围包括f()的范围。在典型的动态范围界定的编程语言中,如果g()声明也称为x的另一个局部变量,则g()的变量x覆盖f()’的变量x,直到g()返回。
典型地,在词法范围界定(也称为静态范围界定)中,变量的范围取决于其中声明该变量的词法环境,遵守特定编程语言的范围界定规则。在典型的词法范围界定的编程语言中,在方法中声明的变量被视为局部变量。例如,假设方法f()在一个代码段中声明了变量x,然后在后续代码段中调用了另一个方法g()。因为x对于f()是局部的,因此不必编译或执行应用就知道x不在g()中的任何代码段的范围内。换句话说,g()的范围不包括f()的范围。类似地,当使用方法中的代码段实例化对象时,新实例化的对象内的代码段的范围不包括实例化了对象的方法的范围。但是,方法中的块的范围典型地包括该方法中前面顶级代码段的范围。
典型地,变量的范围取决于其中声明该变量的代码区域。在方法中声明的变量可能在该方法内的后续代码段的范围内,但不在位于该方法外部的代码段的范围内,诸如相同类或另一个类中的不同方法中。在块内声明的变量可以在位于该块内的后续代码段的范围内,但不在位于该块外部的代码段的范围内。在一些面向对象的编程语言中,当在类中但在方法外部声明变量时,可以将关键字用作访问修饰符,以使变量可在类、子类、程序包或(一个或多个)应用级别可访问。例如,Java编程语言的版本包括访问修饰符public、protected和private。缺少访问修饰符可能意味着默认访问级别。例如,在类中但在方法的外部声明的变量,如果没有显式的访问修饰符,则只能由该类及其包含的程序包访问。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于甲骨文国际公司,未经甲骨文国际公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880033532.1/2.html,转载请声明来源钻瓜专利网。