编译器自动代码虚拟化
    1.
    发明公开

    公开(公告)号:CN108369499A

    公开(公告)日:2018-08-03

    申请号:CN201580085075.7

    申请日:2015-12-04

    IPC分类号: G06F8/41

    CPC分类号: G06F8/437 G06F8/311 G06F8/443

    摘要: 本发明涉及一种代码虚拟化系统(100),所述系统(100)包括:i)至少一个数据源(102);以及ii)虚拟器(101),用于与至少一个数据源(102)耦合且用于:通过定义虚拟化参数识别代码虚拟化的范围;根据定义的虚拟化参数,通过将每个常数传递到多态函数,虚拟化常数;根据定义的虚拟化参数,通过多态嵌入,虚拟化类型定义和/或类型用法;以及根据定义的虚拟化参数,通过创建动态代理以及通过将方法调用的接收者对象包装进创建的动态代理,将方法调用虚拟化为功能调用。

    针对外部数据源的静态类型检查

    公开(公告)号:CN102222012B

    公开(公告)日:2016-03-16

    申请号:CN201110100148.9

    申请日:2011-04-13

    IPC分类号: G06F9/45

    CPC分类号: G06F8/437

    摘要: 在交互编辑环境中执行针对外部数据源的静态类型检查。可以向用户提供对于外部数据的与对内部静态、类型化数据所提供的体验相同的丰富编辑体验。提供可扩展编译器,使得用户或第三方可以将类型检查工具扩展到任何外部数据源。提供可扩展语言服务,使得用户或第三方可以扩展语言服务以提供外部数据的一致的且当前的静态视图。可扩展编译器和语言服务允许语言扩展插入类型检查过程。这使得编译器和语言服务能够提供扩展点,该扩展点允许编辑器的扩展并且允许语言服务静态地呈现动态信息。

    在编译过程中表示和检查程序组件的一致性的可扩展类型系统

    公开(公告)号:CN100474252C

    公开(公告)日:2009-04-01

    申请号:CN200480018112.4

    申请日:2004-05-21

    申请人: 微软公司

    IPC分类号: G06F9/45

    CPC分类号: G06F8/437

    摘要: 提供了用于各种形式的中间语言校验的一致性的类型表示、类型检查器和编译器。在编译器中对编程语言进行类型检查是通过取一个或多个规则集作为对类型检查器的输入来实现的,类型检查器基于多个准则中的任一个或两个或多个的组合来选择一个或多个规则集。它们之中有编译阶段、源语言、体系结构以及进行类型检查的语言中存在的类型化级别。语言然后使用所选择的一个或多个规则集来进行类型检查。规则集可包括对应于强类型检查的一个规则集、对应于弱类型检查的一个规则集、以及对应于表示类型检查的一个规则集。作为替换,可提供具有基于先前提到的准则的的任一个,或两个或多个的组合从一较大的规则集在运行时选择一个或多个规则集的类型检查器的编译器。

    计算机中源代码到目标代码的转换方法和系统

    公开(公告)号:CN108139892A

    公开(公告)日:2018-06-08

    申请号:CN201580083897.1

    申请日:2015-10-15

    IPC分类号: G06F8/36 G06F8/41 G06F8/51

    摘要: 本发明涉及计算机中源代码到目标代码的转换方法(200)。所述源代码的属性由源代码类型系统决定,所述源代码类型系统包含应用于所述源代码的构成成分的规则的集合,所述方法包含:定义(201)类型封装,以将目标代码类型系统的类型导入所述源代码类型系统;虚拟化(202)所述类型封装以得到虚拟化表示,从而在至少一个评估模式下评估所述虚拟化表示;具体化(203)所述类型封装的所述虚拟化表示为所述至少一个评估模式中的特定评估模式,从而基于所述特定评估模式提供所述源代码的中间表示;利用与所述中间表示的新节点类型关联的新对象扩展(204)所述源代码的所述中间表示;以及基于所述源代码的扩展后的中间表示生成(205)所述目标代码。

    一种检查多语言定义的方法和装置

    公开(公告)号:CN107203405A

    公开(公告)日:2017-09-26

    申请号:CN201710484534.X

    申请日:2017-06-23

    发明人: 王凯

    IPC分类号: G06F9/45

    CPC分类号: G06F8/437

    摘要: 本文公布一种检查多语言定义的方法和装置,该方法包括:对待检查的前端代码文件进行压缩;根据预先设置的多语言定义变量规则在压缩后的前端代码文件中查找多语言定义变量;根据查找到的多语言定义变量与该前端代码文件对应的已定义的键(Key)值输出检查结果,以完成对多语言定义的检查。本发明实施例实现了对多语言定义的自动化检查,提高了软件开发效率。

    用于类型化程序设计语言的名称绑定可扩展性

    公开(公告)号:CN102236573A

    公开(公告)日:2011-11-09

    申请号:CN201110122773.3

    申请日:2011-05-04

    申请人: 微软公司

    IPC分类号: G06F9/45

    CPC分类号: G06F8/437

    摘要: 本发明涉及用于类型化程序设计语言的名称绑定可扩展性。提供插入编译器(例如F#)以及相关联的语言服务的方法的体系结构。所述语言组件定义允许任何组件插入服务的标准插件机制,并且提供名称绑定和类型解析服务。所述编译器和语言服务利用了被定义为(例如以为了插入系统必须实现的接口和类的形式)提供编译时间和设计时间扩展的协议。所述体系结构提供了定义用户化协议以与编译器的名称绑定机制交互的能力。这一协议的使用不仅使得编译成功,并且还提供诸如用于快速信息的名称查找和值查找等的丰富的IDE服务。此外,还支持提供静态类型信息以满足类型化的程序设计语言的需求的能力。