CN1525317A - 在标记中用于定义和使用子级说明的***和方法 - Google Patents

在标记中用于定义和使用子级说明的***和方法 Download PDF

Info

Publication number
CN1525317A
CN1525317A CNA03136764XA CN03136764A CN1525317A CN 1525317 A CN1525317 A CN 1525317A CN A03136764X A CNA03136764X A CN A03136764XA CN 03136764 A CN03136764 A CN 03136764A CN 1525317 A CN1525317 A CN 1525317A
Authority
CN
China
Prior art keywords
sub level
definition
compilation
mark
readable medium
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA03136764XA
Other languages
English (en)
Other versions
CN100454244C (zh
Inventor
S����Ī����
S·拉莫尼
�Ү��
R·A·雷尔耶
J·L·波格丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1525317A publication Critical patent/CN1525317A/zh
Application granted granted Critical
Publication of CN100454244C publication Critical patent/CN100454244C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4492Inheritance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明描述了一种***、方法和数据结构,能从在标记文件内的子级定义产生可执行汇编。根据本发明,子级定义是基于一种模式撰写的。该模式可以是基于XML的。该模式包括为子级定义名称的子级标记。该名称与为当可执行汇编执行示例的对象的类型有关。该模式进一步包括一个或多个标记,比如为指定一程序语言编译子级定义,指定从其派生出子级的超级,指定当对象成为示例时的执行操作,产生一事件定义和事件处理为该子级,指定当对象示例时在对象内性能成为一员。

Description

在标记中用于定义和使用子级 说明的***和方法
背景技术
当今,软件开发工具允许软件开发商有能力去利用一种或多种程序语言,比如C,C++,C#等类似的语言建立可执行部分。建立可执行部分的一个优点就是该部分一旦被建立,可以被其他软件程序再利用。建立可执行部分的另一优点是新部分可以轻易地从现有的部分扩充。
通常,部件通过子级扩充,这意味着从现有级派生出新级。这些级与子级采用一种程序语言来写。所写代码通常指源代码。对于传统运行时环境,软件开发工具将源代码编译成目标代码然后将众多目标代码联接在一起生成可执行的部分。然而,关于这些传统的运行时环境的问题之一是每种程序语言和每版程序语言需要不同的运行时环境。
为克服上述问题,一种新型的运行时环境被设定,能有效删除很多交叉语言接口和传统运行时环境的语言版本问题。在这种新型运行时环境,开发工具将源代码编译成一中间语言。在运行时过程中,运行时环境将中间语言编译成原始二进制可执行码。因此,新运行时环境将在运行时期间执行“联接型”处理。为了执行这“联接型”处理,对与正在运行的程序相连的部分,运行时环境读取信息(比如,图元数据)和访问IL汇编。图元数据包括类型、版本、资源等类似的说明。IL汇编可以是单一动态联接库(DLL),或者很多动态连接库和资源。
对于传统和新型的运行时环境,源代码采用一种程序语言来写。每一程序语言有它自己在运行时环境唯一的语法和特殊的应用程序接口(API)设置。软件开发商为写源代码,他们必须学习程序语言的语法和与运行时环境有关的应用程序接口。学习这些语法和应用程序接口是需要花费相当的时间并且有挑战性。另外,如果开发商希望采用很多程序语言的程序和/或不同的运行时环境,开发商必须记忆不同运行时环境下每种程序语言的语法和应用程序接口之间的相似及微小差别。
如果给出采用该部分的优点,就有必要使用一种更好的机制来建立、扩充和使用该部分。
发明概要
本发明涉及一种在标记中定义、扩充和利用子级说明的***和方法。本发明为开发商提供一种机制来采用一标记语言建立、扩充和使用该部分。这些部分包括可再用部分,应用用户接口,文件用户接口及其类似内容。该机制不需开发商懂得程序语言。反而,该机制允许开发商利用熟悉的标记语言,比如XML(可扩充的标记语言)来建立部件。因为XML很容易学并且在一般计算机程序界内正变得比较熟知,本发明提出相对传统程序语言的几个优点。一个优点是该部分可在标记文件内被定义,和其他的标记文本,来生成一个相当复杂的电子文件。另一优点是开发商无须知道或懂得任何程序语言为了生产可执行部分。
本发明的***、方法和数据结构能使得与子级相关的可执行部件可从写在标记文件内的子级定义而产生。依据本发明,子级定义是基于一模式撰写。该模式可以是基于XML的。该模式包括为子级定义名称的子级标记。该名称与为当可执行汇编执行示例的对象的类型有关。该模式进一步包括一个或多个标记,比如用于指定一程序语言来编译子级定义,用于指定从其派生出子级的超级,用于指定当对象成为示例时的执行操作,用于产生一事件定义和用于该子级的相关事件处理,并且用于指定当对象被示例时性能成为在对象内的一个域。
附图说明
图1示例可用在举例说明本发明的执行的规范计算设备;
图2举例说明开发***执行本发明一实施例的功能块图;
图3是实现本发明一实施例运行时环境的功能块图;
图4-6是示例在标记文件内标记的突出部分,举例说明依据本发明一实施例为断定子级的规范语法;
图7示例标记文件的突出部分,举例说明为从标记文件内采用子级的规范语法;
图8是一逻辑流程图,举例说明处理根据本发明实施例,编译声明定义子级;
图9是根据本发明一实施例的一逻辑功能图,举例说明运行时处理利用从标记文件内声称的子级;
图10举例说明代表性源代码的规范源代码表,可以由基于如图4-6示例的标记文件的如图2所示的标记编译程序产生。
优选实施例的详细说明
本发明涉及一种在标记中定义、扩充和利用子级说明的***和方法。本发明为开发商提供一种机制建立、扩充和利用采用标记语言的部件。该机制不需开发商懂得程序语言。反而,该机制允许开发商利用熟悉的标记语言,比如可扩充的标记语言(XML)来建立部件。
说明计算环境
图1示例可用在举例说明本发明的执行的规范计算设备。参照图1,在很基本的结构内,计算设备100典型地包括至少一处理单元102和***存储器104。依赖于计算设备100的精确结构和类型,***存储器104可以是可变的(比如RAM),不可变的(比如ROM,闪存等等)或者两者的一些组合。***存储器104典型地包括一操作***105,一个或多个程序模块,和程序数据107。例如程序模块106包括一浏览器应用,一财政管理应用,一文字处理器及其类似。此基本的结构说明在图1的108底线内的那些部分。
计算设备100可以有附加特点或者功能。比如,计算设备100也可以包括附加(可移和/或不可移)数据存储设备,比如,磁盘,光盘或者磁带等。此附加存储举例说明在如图1的可移存储109和不可移存储110。计算机存储介质可以包括被执行在任何用于存储信息的方法或者技术中,比如计算机可读指令,数据结构,程序块或者其它数据的可变和不可变,可移和不可移介质。***存储器104,可移存储109和不可移存储110都是计算机存储媒介的例子。计算机存储介质包括但不限于RAM,ROM,EEPROM,闪存或者其他存储技术,CD-ROM,数字通用光盘(DVD)或者其它光存储器,磁盒带,磁录音带,磁盘存储或者其他磁存储设备,或者任何其他能用来存储指定信息和能由计算设备100存取的介质。任何这些计算机存储媒介可以是设备100的组成部分。计算设备100也可以有输入设备112,比如键盘,鼠标,笔,声音输入装置,可触输入装置等。输出设备114也可以包括,比如显示器,扬声器,打印机等。这些设备在本领域已非常熟知,没必要在这赘述。
计算设备100也可以包括通信连接116,允许设备100与其他计算设备118通信,比如在网络中。通信连接116是通信媒介的一个例子。通信媒介可以典型地实施计算机可读指令,数据结构,程序块或者其他被调制的数据信号数据,比如载波或者其他传输装置并包括任何传送媒介的信息。术语“调制的数据信号”指信号具有一个或多个自身特征设定或者以在信号编码信息的方式改变。顺便提到示例,不是限定,通信媒介包括有线媒介,比如有线网络或者直接线相连,和无线媒介,比如声音的,射频的,红外的和其他无线媒介。这里所用的计算机可读媒介术语既包括存储媒介也包括通信媒介。
实施例说明
图2举例说明开发***执行本发明一实施例的功能块图。
该***包括标记编译程序202和分析程序204。标记编译程序202和分析程序204是软件模块(比如图1所示的程序模块106)设在计算设备中,例如图1所示的计算设备100。标记编译程序202输入标记文件206。在一实施例中,标记文件206是基于可扩充标记语言(XML)文件。简要地如图4-6说明并且下面将会详细描述的标记文件206,包括标记(未示出),指示子定义的部分。如在下文中详细描述的,标记指示子级和相关单元的存在。当遇到这些标记,补充编译程序202开始与分析程序204通信以建立子级。
在一实施例中,由分析程序204所提供的功能也可以提供在标记编译程序202内。在另一实施例中,由分析程序204所提供的功能可以提供用于在标记编译程序202内从一已存在的分析级派生出分析级。派生出的分析级可以包括功能优先于根据本发明定义的每一子级令牌(比如标记)。简要地在图10中说明并在下文中详细描述的优先功能,可以是一系列回叫功能的部分,信号首尾为与子级相关单元的定义。
分析程序204配置为在标记文件206内的分析程序子级定义。标记编译程序202简要地编译标记文件206内的内容。在一实施例中,标记编译程序202将内容转变为保存在被标识二进制文件208中被标识的二进制串。被标识的二进制文件208代表指定在补充文件206中的组成部分树。然而标记编译程序202可能不能将一些内容直接转变,这些内容可被传送到分析程序204。根据本发明定义在标记文件206的子级定义是这内容的一个例子。分析程序204识别一些性能、事件及其类似,在子级定义内并将这些与该术语有关的潜在信息传递到标记编译程序202。
当接收到潜在信息,标记编译程序202将记号添加到与子级定义有关的标记文件206上。标记编译程序202也可以产生代表性源代码212,从那里IL汇编210产生。IL汇编210包括为定义在标记文件206的子级(比如组成)的计算指令。在过去,这些IL汇编是利用软件开发工具产生的,它编译连接用纲领性语言写的源代码。本领域技术人员也知道,在另一实施例,标记编译程序202可以不产生被标记的二进制文件208的情况下产生IL汇编210。
由标记编译202产生的IL汇编210也可以被传统的程序开发工具再利用。另外,IL汇编210也可以在其他标记文件中再利用。在标记文件内再利用IL汇编210的能力在图7中举例说明并在那里描述它的连接。因此,本发明允许开发商有能力采用标记语言很容易建立和扩充组件。根据本发明,一旦一新组件被建立,该新组件呈现为好象利用传统程序语言建立的一样。因此,开发商采用本发明的机制和方法可以建立组件而无需学习语法和一种或多种细微差别的程序语言。
图3是实现本发明一实施例运行时环境的功能块图。
运行时环境包括运行时启动程序302,被标识的二进制阅读程序304,和被标识的二进制装载程序306。当运行时环境302接收到一用于加载特殊资源的请求(比如图2所示的标记文件206)时,运行时启动程序302访问一页面图表308。页面图表308识别标记文件206是否有编译版本(比如被标记的二进制文件208)。如果编译版本存在,运行时启动程序302与被标识的二进制装载程序306通信加载被标识的二进制文件208。在一实施例中,被标识的二进制文件208识别与被标识的二进制文件208相关的IL汇编(IL汇编210)。被标识的二进制装载程序306接着装载识别的IL汇编210。一旦部分或整个被标识的二进制文件208与相关的IL汇编被装载,被标记的二进制阅读程序304开始阅读被标记的二进制文件208和IL汇编210来产生在处理器中执行(如图1所示的处理单元102)的初始化指令。被标记的二进制阅读程序304可以访问图元数据310以便确定信息,比如类型,方法和事件等。一般说来,图元数据310包括有关方法,字段,性能和事件的信息。每个项目都有它自己的图元数据,能读取附加的细节。因此,采用图元数据310,被标记的二进制阅读程序304利用在运行时的反射以便有计划地确定在被标记二进制文件208内单元的信息。另外,如下文所描述的,依照本发明,在标记文件206内最初定义的子级可利用依照本发明产生的IL汇编210被直接地执行。
图4-6是示例在标记文件206内标记的突出部分,举例说明依据本发明一实施例为断定子级的规范语法。
图10举例说明代表性源代码的规范源代码表,标记编译程序202可以基于如图4-6所示的标记部分产生。在一实施例,标记编译程序202实际上可以产生包含有代表性源代码的文件。当开发商设置一调试标志时可发生。包含有代表性的源代码的文件接着允许开发商确定可能的在标记文件206文本内的问题或在标记编译程序202内的问题。在另一实施例,代表性代码可以不在文件内保存。对于此实施例,标记编译程序202可以产生可有也可没有第一代表性源代码的被标识二进制文件208和IL汇编210。
总之,图4-6系列逐量地描述了为根据本发明在标记内断定子级的很多方面。图4举例说明子级及其分层结构的规范语法。图5举例说明为子级定义识别程序,代码和指令程序的规范语法。图6是举例说明为子级定义性能和事件的规范语法。现在详细描述每个图。
图4举例说明子级及其分层结构的规范语法。标记的突出部分400(比如子级定义)包括超级标识402(比如,“按键”)。在下面的描述中,每个标识(比如超级标识402)有一个相应的结束标志。方便起见,结束标识在撰写说明中不明确指出,而在相关图中说明。标记400包括名称域属性404,名称域声明定义406和几个编译程序标识(比如标识408和410)。名称域属性404识别名称域(比如,“***.控制”)和在其上有超级(比如,按键)所在的汇编。名称域声明的定义406指示在标记400内的任何属性都包括前缀“def:”,代表编译程序需要执行编译操作的编译程序标志。
比如,标识408(在下文指示为语言标识408)指示编译程序利用分配到语言408标识的语言(比如,C#)来产生IL汇编。语言标志408可以有被指定的很多程序语言中的任何一种,比如,C,C++及其类似。该标识410(在下文指如def:级标记410)指示编译定义子级利用指定为def:级标识410的名称414(比如,吾键)。该def:级标识410也可以包括子级名称域412,识别应该与新级有关的名称域(比如,“MyControlLIb”)。因此,图4,开发商断定名称为“吾键”的新级,扩充在“***.控制”名称域的“吾键”级。新子级将与“MyControlLIb”名称域有关。
在图4所例的标记400内,一单元声明标识420(比如,“图象”)被定义。因为一特定名称域在单元声明标识420内没有定义,名称域属性404也定义与单元声明标识420有关的单元(比如,“图象”)位置。单元声明标识420包括一单元421和一源属性422。源属性422包括一特性424(比如,“源”)和值426(比如,“幸福脸.jpg”)。因为单元声明标识420是在用于子级的子级定义内被子级定义为“吾键”,当子级被举例时,与单元声明标识420有关的单元将被举例说明。另外,与单元声明标识420有关的单元包括在新子级的子收集内,换句话说,子级是与单元声明标识420有关单元的家长。因此,本领域技术人员知道标记400允许开发商去表达分层结构,用一种方式允许编译程序产生单元树,起根于正被定义的子级(比如,“吾键”)。
图5举例说明为子级定义识别程序,代码和指令程序的规范语法。标记500的突出部分包括上面所述的标记400和为定义识别程序,代码和指令程序的标记。为阅读方便,在图4示例的参照数字和上述部分没有在图5示出,除非有助于描述新的方面。在图5中单元声明标识420进一步包括属性比如标识符属性520和事件属性526。标识符属性520包括标识符特性521(比如,“ID”)和标识符值523(比如,“img1”)。标识符属性520示例一规范机制为根据本发明为子级定义识别程序。
事件属性526包括事件触发527(比如“数据装载”)和事件值529(比如,“加载中”)。当事件触发527发生时,事件触发527指定被监视的事件且事件值529指定执行的方法。事件值529与方法530有关(比如“加载“功能)。方法530可使用程序语言撰写。方法530可涉及在标记500内定义的级与子级的示例。当方法530在标记文件内使用程序语言写时,方法530与代码标识540有关。代码标识540允许开发商添加片段代码到子级定义主体上。在一实施例,代码可跟随代码标识540并是一可呼叫方法或者事件处理器。在标记500中,比如,加载功能530作为用于通过图象控制引起的数据装载事件的事件处理。其他片段代码也可以加到子级定义主体,比如图5所示的自定义初始化功能550。
500标记也可以包括指令程序标记542。指令程序标记542允许开发商撰写补充为子级所产生的缺省指令的补充指令。在一实施例中,补充指令程序是由产生的缺省指令程序执行的最后行为。补充指令程序可以包含在指令时间影响子级行为的代码。开发商可以在补充指令程序中呼叫超级指令。如图5所示的补充指令呼叫自定义初始化550,它是用户定义的私人方法。
图6举例说明定义子级特性和事件的规范语法。标记600的突出部分包括如上所述的标记400和500以及为定义子级特性和事件的标记。为阅读方便,图4-5举例说明的并如上描述的参照数字不在图6中示出,除非有助于新方面的描述。
标记600包括特性标识610,它允许特性在子级中被定义。该特性作为众多子级中的一员。特性标识610可以包括一个或多个属性,比如名称属性612,类型属性614,缺省值属性616,和标志属性618,名称属性612指定特性的名称。在一实施例,名称是灵感格式并且运行时启动程序对所用名称的字符没有限制的。对注册名称的所有者,名称必须是唯一的。类型属性614指定特性值的类型。该类型包括固有的,用户定义的,结构,级,接口,可例举的,及其类似。当性能被例举时,缺省值属性616指定分配值。当性能被举例时,标志属性618指定由外包产生的方法类型。该标志可以有控制性能特点的能力,比如只读,子单元可继承性,私有及其类似。
标记600也包括事件标识620。事件标识620允许事件定义在子级。事件标识620可以包括属性,比如名称属性622,路径属性624,标识属性626及其类似。名称属性622指定指代该事件的字符串。当xml文件使用子级时,该xml文件使用该字符串缚上定义代码的合适应用开发商。路径属性624指定一方法,确定升起事件的树单元。标识属性626指定与事件有关的其他特征。比如,为标记600,标记编译程序将产生能够事件呼叫DblClick的代码并包括与事件有关的信息,比如支持的行程安排,标识及其类似。本领域技术人员知道与该属性有关的名称和数值可以被改进在不脱离本发明的范围下。
标记600也可以包括事件处理声明630。事件处理声明630有与事件处理有关的改进632,比如公共/私有,代表,返回类型及其类似。在图6,事件处理声明630声明当相关事件发生时,被称作事件处理(比如方法)  (比如“DblClickEventHandler”)。
其他标志也可以在标记文件内定义。比如,跟标志(比如,“def:Library”)可以被用来通知编译程序和/或者分析程序来在各自文件定义子级,在一个文件和其他子级定义该子级及其类似。名称域可以声明商业单元,在根标志定义的所有级及其类似。
图7示例标记文件的突出部分,举例说明为从标记文件内采用子级的规范语法。标记700包括根单元702(比如,流程板单元),缺省名称域声明704,名称域定义前缀706和单元708。大家知道单元708可以参考自定义部分,它是采用上面指定的语法建立的。缺省名称域声明704不用前缀为标志指定缺省名称域。在示例的标记700,缺省名称域声明704指“***.控制”名称域。名称域定义前缀706指定可以找到的自定义部分或单元的位置。在示例的标记700,名称域定义前缀706指“MyControlLib”。单元708包括级名称710(比如,“MyControlLib”),识别程序712和文本串714。级名称710指为该单元所举例说明的级。识别程序712指单元并包括名称(比如,“ID”)和数值(比如,“button1”)。在运行时(比如,“button1”),该数值成为示例的级名称710的名称。
所举实施例的一般操作
图8是一逻辑流程图,举例说明一处理800根据本发明实施例,编译声明定义子级。举例的标记如图4-6所示,还有如图10的代表性源代码,用来在与图8相连中描述处理800。因为容易辨认,在比较图10与标记600后,本发明允许复杂子级声明产生不需要开发商理解所画线的程序语言。在图10中的代表性代码是C#源代码。然而,根据本发明,标记编译程序可以利用任何程序语言产生有代表性的代码。
处理800从801块开始,其中标记程序编译标记文件并遇到有子级定义的标记。标记编译程序可以确定具有由任何机制被遭遇的子级定义,比如没有辨认标记为任何其他形式,辨认一子级标志(比如,def:级)及其类似。比如,在标记400,标记编译程序可以处理几种状态在遇到子级标记之前(比如def:级标识410),能识别子级定义。在另一实施例,在其他状态前子级标记可以被遇到,比如当子级没有指定一基地级(比如,按纽)。一般说来,子级标记可以出现在任何地方,一单元标记能出现在标记内。一旦标记识别为具有子级定义,处理在块802处继续。
在块802处,子级标记被处理。参照图4所描述的,子级标记(也可参照def:级标记410)被分配一名称414,也可以包括子级名称域412。基于这一信息,代表性的代码,比如图10第1行,可以产生汇编。另外,有分配名称的级产生,比如图10第5行所示。第5行将扩充为其他产生代码,一旦附加状态(比如名称域和超级)处理了。如子级标记处理部分,处理识别子级是否从任一级(即超级)扩充并得到与超级相关信息。在图4中,正产生的子级“吾键”是从如定义超级标记402“按纽”。因此,图10第5行包括代表性代码,从所示的按纽扩充为吾键。
另外,子级缺省指令程序产生。再说,在处理附加状态中,这缺省指令程序可以扩充附加的代表性代码。图10第23-23和26行对应于所产生的代表性代码。然而,“this._Initialize_This()”是在处理另一状态之后添加的代码将在下文描述。
在块804处,检索标记的下一状态。下一状态可以是子级标记状态之前亦可是之后,该状态依赖于在子级定义内子级标记状态的位置。一旦检索到下一状态,处理在判决块806继续。
在判决块806处,做出确定是否该状态定义一级。如前所提到的,本发明允许陈述性表达层级。在一实施例,定义另一级(即单元)的状态是将发生在子级标记状态后的子级的后代。此时,假设目前状态没有定义级,处理在块808继续。
在块808处,处理该状态。在子级定义内有各种各样的状态会发生。这些状态可以以不同的顺序发生。涉及每一状态类型的处理将在下文详细描述。然而,一般说来,处理的每一状态将导致子级定义附加代表性代码的产生。一旦其中一种状态在块808被处理,处理在判决块810继续。
在判决块810处,做出确定是否任一状态保持处理为子级定义。如果这有另一状态,通过块804-808返回处理环路并处理该状态。一旦子级定义内的所有的状态被处理过,处理从判决块810至块802继续。
在块812处,在上述处理产生的代表性代码被用来为子级定义产生IL汇编。开发商可以指定在一个或多个编译程序标记状态(块820)纲领性语言来用,当产生代表性编码时,也可指定哪一个存储在子级定义的汇编文件及其类似。一旦该IL汇编或者IL汇编组产生,处理完成。如前面所提到的,上述产生的汇编现在可用来执行,利用传统的程序语言,利用根据本发明的标记状态及诸如此类。
汇编表现为采用纲领性的语言撰写的。
回到判决块806,如果状态开始一新级(比如单元)定义,那么处理在块814处继续。在块814处,与新级有关的状态被处理,采用为每一状态在块808内的处理直到与新级有关的所有状态被处理。比如,在图5,状态520,526,422为新级“图象”被处理。图象接着是子级“吾键”的后代。处理在块804继续,继续处理与子级有关的状态。
现在,回到块808,用于状态(块820-832)的每一个别类型的处理可以发生在描述的子级定义内。在块820,编译程序标记状态被处理。一般说来,编译程序标记状态提供信息给标记编译程序有关汇编是如何被产生的。比如,在图4,语言标记408是编译程序标记状态,当产生代表性代码时,通知标记编译程序采用程序语言。在图4,语言标记408被赋予C#,因此,在图10举例说明的代表性代码是C#源代码。
在块822,定义名称域的状态被处理。那么这些名称域包括在代表性代码,比如如图10第2和3行所示。
在块824,为一级定义一识别程序(id)的状态被处理。在标记文件内的任何ID属性,标记编译程序产生一字域为相关级。产生的该字域类型与定义的ID属性级的相同。比如,在图5,当与图象级有关的状态处理时,一ID属性520被遇到。因此,如图10第7行所示,标记编译程序将为吾键级产生代表性代码,有一字域被定义为:
私人***.控制.图象.img1;
在运行时期间,字域初始化为在InitComponent()初始化组成方法产生的相应类型(比如,图象)的情况。结果,在吾键级中的任何编码可以通过该级通过ID值访问在其单一层级中的任何其他单元情况。字域的初始化过程如图10第37行所示。
在块826处,定义级性能的状态被处理。对于在标记文件内被定义的任何性能,标记编译程序产生用于性能的代表性的源代码并且如果需要则注册该性能。比如,在图6中,标记600包括具有各种各样属性612-618的性能标记610。性能标记610将通知标记编译程序为该性能性能标记610的跟踪状态。属性612-618接着被作为性能状态读出。标记编译程序将为“列表”性能产生代表性代码来注册如图10第9-12行所示的吾键级性能。标记编译程序也将产生如图10第28-30行所示定义性能的代表性代码。第28-30行举例说明如何名称属性612成为代表性代码的性能名称并类型属性614成为代表性代码的性能类型。
在一实施例中,通过要求类型转换程序为性能类型处理产生用于性能值的代码,执行代码在运行时利用反射和转变实际对象性能类型情况的数据串。在另一实施例,处理800为性能要求类型转换以使得到实际对象值并转换该值为一举例说明程序对象。该举例说明程序对象包括充足的信息因此标记编译程序能反映该对象来产生代表性代码,它能产生该值类型的新情况,如指定在相关性能标记的属性。在图19第28-30行举例说明列表性能如何在运行时通过分配的列表性能值设定吾键的情况。被分配值可以在标记(如图7所示)陈述性地指定或者利用任何程序语言纲领性地指定。
在块828中,定义级的事件状态被处理。对于事件状态,标记编译程序为事件产生代表性代码。事件可以在标记内利用各种各样的机制定义,比如如图5所示的事件属性526和如图6所示的事件标记620。首先,描述利用事件属性的机制。该事件属性包括事件触发和事件值。与事件相应的事件触发和与方法相应的事件值当事件触发发生时被执行。参照图5,事件值529(“装载中”)被添加为如图10第38-40行代表性代码定义“这.装载中”的事件处理一样的新***.控制.数据装载的事件处理。事件触发527(“数据装载”)被添加为象图10第38行代表性代码定义添加处理第一参数事件一样的新***.控制.数据装载的事件处理。添加处理的其他参数可以采用缺省值或者可以在标记文件内指定。
现在描述采用事件标记620的机制。事件标记620包括一事件名称属性或者其他属性。被分配给事件名称属性的名称被注册为事件。比如,参照图6,“Db1Click”是被分配给事件名称属性的名称。因此,“Db1Click”是注册事件方法的第一参数,在图10第14-16行产生。再说注册事件方法的其他参数可以采用缺省值或者可以在标记文件利用其他属性指定。在运行时期间,根据一个实施例,事件被采用识别DB1点击事件处理类型的反射钩住并定在该方法。
在块830中,定义代码的状态被处理。定义代码的状态跟随编译程序标记状态(块820),比如代码标记。这些状态用一种程序语言来撰写并将以代表性代码出现。比如,图5举例说明方法530和初始自定义功能550。方法550和初始自定义功能各自呈现在图10第18-19和21行。
在块832,定义补充指令程序的状态被处理。又一次,定义补充指令程序的状态跟随编译程序标记状态(块820),比如指令程序标记。标记编译程序产生补充指令程序(在图10的this._Initialize_This())并在标记指令程序内添加该状态。比如,在图5,指令程序标记542之后的状态称为“CustomInit()”。因此,在图10第33行,补充编译程序将“CustomInit()”添加到在代表性源代码中的补充指令程序上。
本领域技术人员能懂得在不脱离本发明下,当处理块804-810时,块812可以增量地执行。另外,依赖分析程序204和标记编译程序202的执行功能,可以在处理800过程中在分析程序204和标记编译程序202之间有回叫信号。
图9是根据本发明一实施例的一逻辑功能图,举例说明运行时处理900利用从标记文件内声称的子级。如图7所示的示例标记被用来与图9描述的处理900相连接。处理900从块901开始,在那儿运行时启动程序接收特殊资源(比如,标记文件)请求并确定存在特殊资源的编译程序版本。比如,在图7,假定标记700没有被预先编译为被标记的二进制文件,当标记编译程序遇到单元708,标记编译程序将确定具有相关二进制文件和IL汇编的吾键级。这与标记的二进制有关文件包括标记的吾键级属性利用处理900将被处理。相关的二进制文件和IL汇编可以采用本发明产生。处理在块902继续进行。
在块902处,标记的二进制文件被装载。该标记的二进制文件可以被逐量地或者整个地装载。被标记的二进制文件可以识别与需要装载的被标记的二进制文件有关的IL汇编。参照图7,比如,与吾键级有关的IL汇编被装载。处理在块904处继续。
在块904处,从标记的二进制文件找回一标记。如前所述,在新运行时环境,产生的标记二进制文件独立于用来产生二进制文件的程序语言。因此,运行时环境可以不关心最初用来产生二进制文件的程序语言来处理标记的二进制文件。处理在块906处继续。
在判决块906处,做出是否找回的标记是一事件的决定。如果该标记不是一事件,处理在块908处继续。
在块908处,处理该标记。如前所述,该标记的处理不依赖于产生标记二进制文件的方式。换句话说,在标记的二进制文件的标记处理的标记从标记文件内陈述性地产生或者利用一程序语言将以同样的方式处理。因此,因为对本领域技术人员在标记的二进制文件内的标记处理是已知的,标记处理不需要在这里做赘述。处理在判决块910继续。
在判决块910处,做出是否在标记二进制文件内还有标记的决定。如果还有标记,处理还回到块904并做如前所述的处理。在另一方面,如果没有更多标记,处理结束并到末尾块。
回到判决块906,如果该标记是一事件,处理在块912继续。在块912,与标记二进制文件有关的元数据被装载。元数据包括类型、资源、方法及其类似的说明。处理在块914处继续。
在块914处,利用元数据和反射,处理找到为该事件的目标单元类型。这涉及访问元数据并通过每一字域确定类型。处理在块916处继续。
在块916处,对事件验证目标单元类型。这保证事件是有效事件。如果事件对目标单元类型不是有效事件,则产生差错。处理回到块918。
在块918处,反射被用到目标单元类型来得到接下来执行该事件的方法。执行该事件的方法涉及在有关IL汇编内执行代码。因此,参照图7,一旦吾键成为示例并该事件被找到,事件方法(“Dv1ClickEvent”)被附加。附加一事件处理(比如,Db1CllickEventHandler)到该事件(比如,Db1Click)。处理在判决块910继续并处理如前所述。
因此,如上所述,本发明提供机制在标记文件内声明定义子级并从标记文件内利用该子级。这允许开发商集中更多精力在利用组件的方法,而不担心如何执行用任何一种程序语言编写的组件。
以上详述,例子和数据提供一完整的生产和使用本发明部分的描述。不脱离本发明精神和范围下,本发明的很多实施例可以实现,本发明体现在下文的从属权利要求中。

Claims (39)

1.一种与计算机可读数据结构编码的计算机可读媒介,该数据结构包括:用于在标记文件内陈述性地定义子级定义的模式,该模式能被编译为可执行汇编,它示例在执行汇编之后子级定义内与定义子级有关的对象。
2.如权利要求1所述的计算机可读媒介,所述格式是基于该格式的可伸展标记语言(XML)。
3.如权利要求1所述的计算机可读媒介,所述格式包括定义名称的子级标记,该名称与示例对象的类型有关。
4.如权利要求1所述的计算机可读媒介,所述格式包括当编译子级定义时利用指定程序语言的语言标记。
5.如权利要求4所述的计算机可读媒介,所述格式进一步包括在标记文件描述代码的代码标记,该代码直接被编译为可执行汇编。
6.如权利要求5所述的计算机可读媒介,所述被直接编译的代码是给予语言标记内指定的程序语言语法。
7.如权利要求1所述的计算机可读媒介,所述格式包括一超级标记,从指定超级其派生出子级。
8.如权利要求7所述的计算机可读媒介,所述格式包括一超级名称域属性,指定超级在内的名称域。
9.如权利要求1所述的计算机可读媒介,所述格式包括一指定子级的子级标记。
10.如权利要求1所述的计算机可读媒介,所述格式包括一指令程序标记,当示例该对象时指定一或多个补充操作来执行。
11.如权利要求1所述的计算机可读媒介,所述格式包括一事件标记,指定变成与示例对象相关的一事件和一对应的事件处理程序。
12.如权利要求1所述的计算机可读媒介,所述格式包括一性能标记,指定一性能,当示例该对象时,该性能成为对象内的一员
13.如权利要求1所述的计算机可读媒介,所述格式包括一单元声明,指定子级的子单元。
14.一种具有用于产生子级的可执行汇编指令的计算机可读媒介,该指令包括:
在标记文件内识别子级定义,该子级定义定义一子级;
和产生基于该子级定义的汇编,该汇编可被执行以便产生与子级有关的对象示例。
15.如权利要求14所述的计算机可读媒介,所述识别子级定义包括分析子级标记,该子级标记包括为定义名称的子级名称属性,该名称与示例对象的类型有关。
16.如权利要求14所述的计算机可读媒介,所述基于子级定义产生的汇编包括可将子级定义编译为代表性的源代码编译为汇编。
17.如权利要求16所述的计算机可读媒介,所述为基于程序化语言的代表性源代码。
18.如权利要求14所述的计算机可读媒介,所述基于子级定义产生的汇编包括在子级定义内将代码编译为汇编,该代码可以被子级定义内的代码标记描述。
19.如权利要求14所述的计算机可读媒介,所述基于子级定义产生的汇编装置包括分析子级定义标记,包括定义从其派生出子级的超级,指定采用与程序语言有关语法的先天特征,编译语法为汇编的一部分。
20.如权利要求14所述的计算机可读媒介,所述基于子级定义产生的汇编包括分析指令程序标记,定义当示例对象时至少一补充操作执行,该补充操作是汇编的一部分。
21.如权利要求14所述的计算机可读媒介,所述基于子级定义产生的汇编包括分析事件标记,为子级产生一事件定义和与事件相对应的处理程序。
22.如权利要求14所述的计算机可读媒介,所述基于子级定义产生的汇编包括分析性能标记,当示例对象时,定义一性能为对象内的一员。
23.如权利要求14所述的计算机可读媒介,所述基于子级定义产生的汇编包括分析单元声明标记,识别子级的子单元。
24.一种用于产生可执行汇编的计算机执行方法,
该方法包括:在标记文件内识别子级定义,该子级定义定义一子级;
和产生基于该子级定义的汇编,该汇编可被执行以便产生与子级有关的对象示例。
25.如权利要求24所述的计算机执行方法,所述识别子级定义包括分析程序子级标记,该子级标记包括为定义名称的子级名称属性,该名称与示例对象的类型有关。
26.如权利要求24所述的计算机执行方法,所述基于子级定义产生的汇编包括分析子级定义标记包括定义从其派生出子级的超级,指定采用与程序语言有关语法的先天特征,编译语法为汇编的一部分。
27.如权利要求24所述的计算机执行方法,所述基于子级定义产生的汇编包括分析指令程序标记,定义当示例对象时至少一补充操作执行,该补充操作是汇编的一部分。
28.如权利要求24所述的计算机执行方法,所述基于子级定义产生的汇编包括分析事件标记,为子级产生一事件定义和与事件相对应的处理程序。
29.如权利要求24所述的计算机执行方法,所述基于子级定义产生的汇编包括分析性能标记,当示例对象时,定义一性能为对象内的一员。
30.一种用于从标记文件的子级定义产生汇编的计算机***,该***包括:
处理器;和
存储器,该存储器被分配给很多计算机可执行指令,该指令由处理器被装载到存储器用于执行,该计算机可执行指令操作方法包括:
在标记文件内识别子级定义,该子级定义定义一子级;
和产生基于该子级定义的汇编,该汇编可被执行以便产生与子级有关的对象示例。
31.如权利要求30所述的计算机执行方法,所述识别子级定义包括分析子级标记,该子级标记包括为定义名称的子级名称属性,该名称与示例对象的类型有关。
32.如权利要求30所述的计算机执行方法,所述基于子级定义产生的汇编包括分析指令程序标记,定义当示例对象时至少一补充操作执行,该补充操作是汇编的一部分。
33.如权利要求30所述的计算机执行方法,所述基于子级定义产生的汇编包括分析事件标记,为子级产生一事件定义和与事件相对应的处理程序。
34.如权利要求30所述的计算机执行方法,所述基于子级定义产生的汇编包括分析性能标记,当示例对象时,定义一性能为对象内的一员。
35.一种用于产生可执行汇编的计算机执行方法,该方法包括:
在标记文件内识别子级定义的装置,该子级定义定义一子级;
和产生基于该子级定义的汇编装置,该汇编可被执行以便产生与子级有关的对象示例。
36.如权利要求35所述的计算机执行方法,所述识别子级定义的装置包括分析子级标记的装置,该子级标记包括为定义名称的子级名称属性,该名称与示例对象的类型有关。
37.如权利要求35所述的计算机执行方法,所述基于子级定义产生的汇编装置包括分析子级定义标记装置,定义从其派生出子级的超级,指定采用与程序语言有关语法的先天特征的装置,及编译语法为汇编的一部分装置
38.如权利要求35所述的计算机执行方法,所述基于子级定义产生的汇编装置包括分析指令程序标记装置,定义当示例对象时至少一补充操作执行,该补充操作是汇编的一部分。
39.具有为子级产生可执行汇编指令的计算机可读媒介,该指令包括如权利要求35所述的方法。
CNB03136764XA 2003-02-28 2003-05-19 在标记中用于定义和使用子类说明的***和方法 Expired - Fee Related CN100454244C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/377,313 2003-02-28
US10/377,313 US7120618B2 (en) 2003-02-28 2003-02-28 System and method for defining and using subclasses declaratively within markup

Publications (2)

Publication Number Publication Date
CN1525317A true CN1525317A (zh) 2004-09-01
CN100454244C CN100454244C (zh) 2009-01-21

Family

ID=23488596

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB03136764XA Expired - Fee Related CN100454244C (zh) 2003-02-28 2003-05-19 在标记中用于定义和使用子类说明的***和方法

Country Status (15)

Country Link
US (1) US7120618B2 (zh)
EP (1) EP1452962B1 (zh)
JP (1) JP4806158B2 (zh)
KR (2) KR100889671B1 (zh)
CN (1) CN100454244C (zh)
AU (1) AU2003204197B2 (zh)
BR (1) BR0301738A (zh)
CA (1) CA2428558C (zh)
HK (1) HK1066616A1 (zh)
MX (1) MXPA03004411A (zh)
MY (1) MY136473A (zh)
NO (1) NO329240B1 (zh)
RU (1) RU2347269C2 (zh)
TW (1) TWI327701B (zh)
ZA (1) ZA200303680B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024074036A1 (en) * 2022-10-04 2024-04-11 International Business Machines Corporation Unknown object sub-class identification

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725884B2 (en) * 2003-02-28 2010-05-25 Microsoft Corporation System and method for compiling markup files
US7418659B2 (en) * 2003-02-28 2008-08-26 Microsoft Corporation System and method for declaring a resource within a markup document
US7890928B2 (en) * 2003-07-26 2011-02-15 Pilla Gurumurty Patrudu Mechanism and system for representing and processing rules
US20050154978A1 (en) * 2004-01-09 2005-07-14 International Business Machines Corporation Programmatic creation and access of XML documents
US20070136658A1 (en) * 2005-11-29 2007-06-14 International Business Machines Corporation Handling events in a descriptive context
US9128727B2 (en) * 2006-08-09 2015-09-08 Microsoft Technology Licensing, Llc Generation of managed assemblies for networks
US8380742B2 (en) * 2006-10-10 2013-02-19 Microsoft Corporation Integration of database reporting with ERP systems
US7765241B2 (en) * 2007-04-20 2010-07-27 Microsoft Corporation Describing expected entity relationships in a model
US8880564B2 (en) * 2007-10-11 2014-11-04 Microsoft Corporation Generic model editing framework
US7530060B1 (en) * 2008-01-08 2009-05-05 International Business Machines Corporation Methods and computer program product for optimizing binaries with coding style formalization
US9584877B2 (en) * 2011-06-16 2017-02-28 Microsoft Technology Licensing, Llc Light-weight validation of native images
US9015661B1 (en) 2011-06-23 2015-04-21 The Mathworks, Inc. Restricting class inheritance relationships
US9158505B2 (en) * 2014-01-09 2015-10-13 Microsoft Technology Licensing, Llc Specifying compiled language code in line with markup language code

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6083276A (en) * 1998-06-11 2000-07-04 Corel, Inc. Creating and configuring component-based applications using a text-based descriptive attribute grammar
US6342907B1 (en) 1998-10-19 2002-01-29 International Business Machines Corporation Specification language for defining user interface panels that are platform-independent
US6427228B1 (en) * 1999-05-12 2002-07-30 International Business Machines Corporation Combining a meta data file and java source code to dynamically create java classes and javabeans
US6732330B1 (en) * 1999-09-30 2004-05-04 International Business Machines Corporation Scripting language blocks to support multiple scripting languages in a single web page
GB0011426D0 (en) * 2000-05-11 2000-06-28 Charteris Limited A method for transforming documents written in different XML-based languages
US6941510B1 (en) * 2000-06-06 2005-09-06 Groove Networks, Inc. Method and apparatus for efficient management of XML documents
US6957394B1 (en) * 2000-12-01 2005-10-18 Microsoft Corporation Rendering controls of a web page according to a theme
US20020091818A1 (en) * 2001-01-05 2002-07-11 International Business Machines Corporation Technique and tools for high-level rule-based customizable data extraction
KR20020061888A (ko) * 2001-01-18 2002-07-25 박철만 엑스엠엘 응용프로그램의 개발방법
US20030037311A1 (en) * 2001-08-09 2003-02-20 Busfield John David Method and apparatus utilizing computer scripting languages in multimedia deployment platforms
US20040064825A1 (en) * 2002-09-30 2004-04-01 Timothy Lim Method and system for object system interoperability
US20040064826A1 (en) * 2002-09-30 2004-04-01 Timothy Lim Method and system for object system interoperability

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024074036A1 (en) * 2022-10-04 2024-04-11 International Business Machines Corporation Unknown object sub-class identification

Also Published As

Publication number Publication date
EP1452962B1 (en) 2018-01-24
RU2347269C2 (ru) 2009-02-20
ZA200303680B (en) 2004-08-13
CA2428558C (en) 2013-01-22
KR100889671B1 (ko) 2009-03-19
KR20040077410A (ko) 2004-09-04
KR100942322B1 (ko) 2010-02-12
NO20032232L (no) 2004-08-30
CN100454244C (zh) 2009-01-21
EP1452962A3 (en) 2007-01-10
KR20090024229A (ko) 2009-03-06
TW200416569A (en) 2004-09-01
NO20032232D0 (no) 2003-05-16
MY136473A (en) 2008-10-31
AU2003204197A1 (en) 2004-09-16
US20040172617A1 (en) 2004-09-02
US7120618B2 (en) 2006-10-10
EP1452962A2 (en) 2004-09-01
JP4806158B2 (ja) 2011-11-02
JP2004265371A (ja) 2004-09-24
NO329240B1 (no) 2010-09-20
TWI327701B (en) 2010-07-21
AU2003204197B2 (en) 2009-10-01
BR0301738A (pt) 2004-10-26
HK1066616A1 (en) 2005-03-24
MXPA03004411A (es) 2005-08-26
CA2428558A1 (en) 2004-08-28

Similar Documents

Publication Publication Date Title
KR101354803B1 (ko) 유형 추론 및 유형 지향 후기 바인딩
Gough et al. Compiling for the. Net Common Language Runtime
US7219330B2 (en) Extensible metadata
AU773319B2 (en) Instruction selection in a multi-platform environment
US6526570B1 (en) File portability techniques
CN1573693A (zh) 用于创建、管理和使用代码段的***和方法
CN110770698B (zh) 用于动态代码优化的差异静态分析
US20070028223A1 (en) Compiler supporting programs as data objects
CN1577268A (zh) 共享库***及构建该***的方法
CN1609764A (zh) 向输入法提供上下文的***和方法
CN1525317A (zh) 在标记中用于定义和使用子级说明的***和方法
CN1305609A (zh) 实现参数化类型与现有非参数化库兼容的方法
KR20050001472A (ko) 소프트웨어 개발 툴 생성 방법
US7716656B2 (en) Nullable and late binding
US20080141230A1 (en) Scope-Constrained Specification Of Features In A Programming Language
CN107562430B (zh) 一种针对移动π演算语言的文件处理功能的编译方法
JP2000347875A (ja) ファイル移植技術
CN100346304C (zh) 用于排列和解排列XML和Java中的数据类型的***和方法
CN1632761A (zh) 一种遍历和访问被测应用程序中对象的方法
CN116560667B (zh) 一种基于预编译延迟执行的拆分调度***及方法
Tutorial A Swift Tutorial
Brykin et al. New Generation of B Programming Language for Data Analysis Tasks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1066616

Country of ref document: HK

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1066616

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150427

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150427

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090121

Termination date: 20190519

CF01 Termination of patent right due to non-payment of annual fee