CN102323772A - 用数据库运算符的状态机表达 - Google Patents

用数据库运算符的状态机表达 Download PDF

Info

Publication number
CN102323772A
CN102323772A CN2011100961043A CN201110096104A CN102323772A CN 102323772 A CN102323772 A CN 102323772A CN 2011100961043 A CN2011100961043 A CN 2011100961043A CN 201110096104 A CN201110096104 A CN 201110096104A CN 102323772 A CN102323772 A CN 102323772A
Authority
CN
China
Prior art keywords
function
state
state machine
input
data base
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.)
Pending
Application number
CN2011100961043A
Other languages
English (en)
Inventor
H·J·M·梅杰
D·A·马诺列斯库
J·范格格
J·W·戴尔
B·C·贝克曼
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 CN102323772A publication Critical patent/CN102323772A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/4498Finite state machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明描述了用数据库运算符的状态机表达。状态机可以使用数据库查询语言的事件驱动对象来表示。可以将来自数据库查询语言的绑定运算符用作状态转移函数,其中转移函数具有定义状态的副效应。对象可以用事件驱动表达式和运算符来操纵并且执行原本对于简单状态机而言复杂的操作。

Description

用数据库运算符的状态机表达
技术领域
本发明涉及系统设计,尤其涉及使用状态机的系统设计。
背景技术
状态机是用于设计实时系统和硬件的一种机制。虽然没有在软件中的多,但已经在硬件中开发并广泛地采用状态机理论和优化。
发明内容
状态机可以使用数据库查询语言的事件驱动对象来表示。可以将来自数据库查询语言的绑定运算符用作状态转移函数,其中转移函数具有定义状态的副效应。对象可以用事件驱动表达式和运算符来操纵并且执行原本对于简单状态机而言复杂的操作。
提供本发明内容以便以简化形式介绍将在以下的具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
附图说明
在附图中,
图1是示出可以使用数据库查询语言来执行状态机的设备的实施例的图示。
图2是示出用于使用数据库查询语言来表达状态机的方法的实施例的流程图示。
图3是示出在反馈机制中使用的有限状态机的实施例的图示。
图4是示出简单的有限状态机的实施例的图示。
具体实施方式
可以一般化关系数据库的概念并将其用来实现状态机。一般化的关系数据库概念可以允许来自关系数据库应用程序的增强的表达能力,以及允许使用状态机来实现关系数据库。
标准关系数据库可以由行的集合以及行的元组来表示,我们可以将行的集合定义为‘集合’,我们可以将行的元组定义为‘类’。
贯穿本文,使用符号M<T>来讨论集合,其中M表示集合而T表示存储在集合中的项的数据类型。为了使集合工作,存在若干公理:
::M<T>-空集
U::M><T>x M<T>→M<T>-两个集合的并集产生另一集合。
{_}::T→M<T>-将值注入到集合中。在这种情况下,可以创建单个元素或单元素集合。
在关系代数中使用若干公共运算符来对数据库执行操作:
σ::M<T>x(T→bool)→M<T>-从关系代数的过滤或选择操作。
函数(T→bool)是过滤函数。
π::M<T>x(T→S)→M<S>-投影或变换操作将集合从类型T变为类型S。
X::M<T>x M<S>→M<TxS>-一对集合可被变成对的集合。
定义了又一个运算符:
SelectMany(选择许多)::M<T>x(T→M<S>)→M<S>-来自关系代数的相关子查询。函数(T→M<S>)定义了如何将M<T>的元素分成S型元素的集合,随后被展平成S元素的集合。
可以使用SelectMany运算符来表达以上定义的以上关系代数操作中的任一个。
σ(as)=as.SelectMany(λa→P(a)?{a}:0)-使用函数P(a)从集合‘as’中过滤项‘a’。P(a)处理每一项λa,并创建单元素集合{a}或创建空集。随后将各项展平成带有与原始集合相同类型的新的集合或将其加入到新的集合中。
π(as)=as.SelectMany(λa→{F(a)})-通过应用函数F(a)来投影各项并创建单元素集合。随后将单元素集展平成带有与原始集合相同类型的新的集合或将其加入到新的集合中。
as X bs=as.SelectMany(λa→σλb→(a,b)(bs))-结合一对集合‘as’和‘bs’。
SelectMany中使用的函数可以是代码的任意表示。在某些情况下,函数可以是对象或在某些情况下可以是描述以及可执行函数。
通过使用以上的SelectMany符号,出现了多个一元体(monad):
集合M<_>对应于算符
运算符SelectMany对应于绑定
单元素集合{_}对应于返回或η
结合一元体取各集合的集合(a collection of collections)并将结果展平为单个集合。
μ::M<M<T>>→M<T>
结合一元体可以使用SelectMany来表示。
μtss=tss.SelectMany(λts→ts)
因此,数据库描述符和运算符可以被一般化为一元体。可以将数据库查询引擎的技术应用于更一般化的一元体概念。
Mealy机是有限状态机,它可以被一般化为一元体的概念。
Mealy机是由以下各项组成的6-元组(S,S0,∑,Λ,T,G):
状态的有限集(S)
开始状态或初始状态(S0),它是S的一个元素
被称为输入字母表的有限集(∑)
被称为输出字母表的有限集(Λ)
将状态和输入字母表映射到下一状态的转移函数(T:S x∑→S)
将每一状态和输入字母表映射到输出字母表的输出函数(G:S x∑→Λ)
Mealy机的函数可以如下表达,其中*指示各项的集合:
Next(下一个)::状态x输入→状态
Out(输出)::状态x输入→输出
Run(运行)::状态x输入*x((状态x输入→状态)x(状态x输入→输出))→(输出x状态)*
Run的表达式指示输入和状态的集合得到输出和状态的集合。
可以进一步一般化这些表达式,其中可以组合状态x输入→状态函数以及状态x输入→输出函数来创建产生输出对的单个函数:
状态x输入→输出x状态
输出可以是输出的集合。
状态x输入→输出*x状态
Mealy机Run表达式可以被重写为:
状态x输入*x(状态x输入→输出*x状态)→(输出x状态)*
在编程语言中,全局状态是隐式的,将以上表达式简化为:
输入*x(输入→输出*)→输出*
输入序列的集合,将输入转换为输出序列的函数得到输出序列。
该表达式可以使用.NET框架中的SelectMany来定义为:
IEnumerable(可枚举)<T>SelectMany(该IEnumerable<S>src(源),Func(函数)<S,IEnumerable<T>>选择器)
当选择器函数产生副效应时,可以使用该表达式来实现状态机。以上所述的Mealy机被示为有限状态机,但该表达式还可用于实现无限状态机。副效应函数可以是改变输入和输出参数以外(即,环境中的)的状态的任何函数。
可以在常规数据库语言系统中使用副效应函数来表达状态机。状态机的输入可以被认为是状态机可以处理的‘事件’。在处理事件时,可以更新状态并生成输出。
可以使用数据库查询语言处理器通过将查询输入定义为状态序列来表达状态机。可以使用变换函数将状态序列绑定到序列输入以创建输出事件流。当变换函数具有副效应时,那些副效应在对输入事件流作出响应时可以定义状态机的状态。
在某些情况下,输入类型可以与输出类型不同。当且仅当N<T>→M<T>时以下语句保持为真:
M<I>x(I→N<O>)→M<O>
类似地,当且仅当M<N<O>>→N<O>时以下语句保持为真:
M<I>x(I→N<O>)→N<O>
在某些实施例中,输入可以被创建为推或拉输入。拉输入可以请求输入并在处理输入之前可以等待直到接收到输入。在推输入中,状态机可以在任意时刻接收输入并且在其到达后处理输入。
本说明书通篇中,在所有附图的描述中,相似的附图标记表示相同的元素。
在将元素称为被“连接”或“耦合”时,这些元素可以直接连接或耦合在一起,或者也可以存在一个或多个中间元素。相反,在将元素称为被“直接连接”或“直接耦合”时,不存在中间元素。
本发明主题可被具体化为设备、系统、方法、和/或计算机程序产品。因此,本发明的部分或全部能以硬件和/或软件(包括固件、常驻软件、微码、状态机、门阵列等)来具体化。此外,本发明可以采用其上包含有供指令执行系统使用或结合其使用的计算机可使用或计算机可读程序代码的计算机可使用或计算机可读存储介质上的计算机程序产品的形式。在本文的上下文中,计算机可使用或计算机可读介质可以是可包含、存储、通信、传播、或传输程序以供指令执行系统、装置或设备使用或结合其使用的任何介质。
计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、电磁、红外、或半导体系统、装置、设备或传播介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由指令执行系统访问的任何其它介质。注意,计算机可使用或计算机可读介质可以是其上打印有程序的纸张或其它合适的介质,因为程序可以经由例如对纸张或其它介质的光学扫描而电子地捕获,随后如有必要被编译、解释,或以其它合适的方式处理,并随后存储在计算机存储器中。
通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。术语“已调制数据信号”可以被定义为其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,如有线网络或直接线连接,以及诸如声学、RF、红外及其它无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
当本发明主题在计算机可执行指令的一般上下文中具体化时,该实施例可以包括由一个或多个系统、计算机、或其它设备执行的程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可以在各个实施例中按需进行组合或分布。
图1是示出可用于开发和执行实现状态机的计算机程序的设备的实施例100的图。实施例100是其上可以创建和调试状态机的通用计算机的简化示例。所得可执行文件可以在同一设备或另一设备上执行。
图1的示图示出系统的各个功能组件。在某些情况下,组件可以是硬件组件、软件组件、或硬件和软件的组合。某些组件可以是应用层软件,而其他组件可以是操作系统层组件。在某些情况下,一个组件到另一个组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其它情况下,连接可以通过跨长距离的网络连接来形成。各实施例可以使用不同的硬件、软件、以及互连体系结构来实现所描述的功能。
设备102可以是可用于开发、编辑、测试和执行计算机程序的常规计算机设备。设备102示出其上可以创建和执行可执行计算机程序的开发平台。其他设备可以在不能够编辑或改变计算机程序的情况下执行在设备102上开发的计算机程序。
设备102可具有一组硬件组件104和软件组件106。各个组件表示通用计算设备,该通用计算设备可以是服务器计算机、台式计算机、游戏控制台或其他计算机设备。在某些情况下,计算设备可以是便携式设备,例如膝上型计算机、上网本计算机、手持式移动电话或其他设备。
设备102所创建的计算机程序可以在任何类型的硬件或软件平台上执行,这些平台包括以上所述的设备,以及诸如路由器、交换机、存储设备和其他网络基础结构等的网络设备,诸如手持式诊断仪或远程传感仪等数据收集设备,诸如移动电话和手持式游戏设备等的便携式设备,或任何其他类型的计算设备。所列设备的类型不旨在穷举可能选项,只是说明可以使用设备102来执行所开发的程序的设备类型的宽度。
硬件组件104可包括可以使用随机存取存储器110和非易失性存储112的处理器108。硬件组件104还可以包括网络接口114和用户接口116。
软件组件106可包括开发环境120可在其上执行的操作系统118。开发环境120可具有编辑器121和编译器130,并且可以由程序员使用来创建源代码122。在某些实施例中,编译器130可以将源代码122编译成中间代码132,可以使用运行时执行器134来执行中间代码以处理输入136并生成输出138。在其他实施例中,源代码122可以在不使用解释器进行编译的情况下来解释。
贯穿本说明书,计算机代码的示例使用C#和部分.NET框架来说明。其他语言可具有执行类似功能的不同句法和不同命令。
源代码122可以使用数据库查询语言126来表示状态机124。在某些情况下,数据库查询语言126可以与数据库128交互。这些状态机的示例在本说明书的后文中说明。
图2是示出用于使用数据库查询语言来表达状态机的方法的实施例200的流程图示。实施例200是用于使用数据库查询语言和状态机技术来创建、编译和优化程序的过程的简化示例。
其它实施例可以使用不同顺序的、附加的或更少的步骤以及不同的名称或术语来实现类似的功能。在一些实施方式中,各种操作或一组操作可以按同步或异步的方式与其它操作并行执行。在此选择的这些步骤被挑选来以简化的形式示出操作的一些原理。
在框202中,可以定义状态机状态,并且可以在框204中定义状态机的转移函数。可以在框206中定义输出函数。
框202到206的操作示出在定义状态机时程序员可以采用的步骤。在本说明书的后文中示出了简单状态机的两个示例,尽管状态机技术已经广泛实施。
在框208中,可以使用数据库查询语言来定义状态机。如本说明以上所示,许多数据库查询语言运算符可以被一般化为一元体,还将这些一元体示为状态机的一般化形式。具体地,可以使用许多数据库查询语言中使用的绑定运算符来表达常规地用于函数型编程和用于表达状态机的所有一元体运算符。在C#语言和.NET框架中,等价的绑定运算符是SelectMany。
在框210中,可以编译状态机。在编译期间,如果在框212中检测到副效应函数,则编译器可以在框214中标识副效应函数。
在许多编程环境中,数据库查询语言中的副效应函数可以是用于执行数据库查询的非常规机制。某些数据库系统可以执行以变换函数不产生副效应的假定为基础的某些查询优化。这些优化可以包括例如重定序输入序列来优化搜索。可能无法对定义状态机的副效应函数执行这些优化,因为状态机使用定序的一组输入来创建定序的一组输出。
可以在框214中标识副效应函数从而使得程序员可以识别或批准副效应函数的使用。如果在框216中程序员不打算使用副效应函数,则过程可以返回至框208,在那里程序员可以编辑源代码。
如果在框216中程序员选择忽略标识消息并且在框218中不执行优化,则在框220中可以存储经编译代码,在框224中执行经编译代码,并且在框226中操作状态机。
在在框212中未发现副效应函数的某些实施例中,可以在框220中存储程序并且在框222中执行程序。在该实施例中,所执行的程序可能不操作状态机。
在框218中选择时,某些实施例可以执行各种优化例程。在框226中,编译器可以标识有限状态机并且可以在框228中将各种有限状态机优化应用于代码。
可以将若干不同的有限状态机优化应用于代码来优化有限状态机的性能。这些优化包括Hopcrof最小化算法、使用隐含表以及Moore简化过程。也可以将其他优化机制应用于状态机并且可以最小化存储器消耗,提升响应事件,减少代码大小以及其他性能增强。
图3是示出可以使用数据库查询语言来实现的状态机的示例实施例300的图示。
实施例300的状态机示出简单的反馈循环。输入302进入存储器304,存储器可以存储当前状态。变换函数306可以产生输出308和新的状态310。新的状态310被反馈回到存储器304中。
可以定义实施例300的状态机的反馈循环,其中输入302被定义为集合,而函数306的结果可以被定义为(输出和状态)对的集合。以上定义的函数可以将实施例300表达为:
状态x输入*x(状态x输入→输出*x状态)→(输出x状态)*
输入302可以被定义为输入的推集合。输入的推集合在启动函数306之前可以等待直到接收到新的输入。存储器304可以将状态310的改变与输入302的改变同步。
图4是示出简单状态机的示例实施例400的图示。实施例400是可以仅使用数据库查询语言来实现的双态状态机的简单示例。
实施例400的状态机是可以分析数据库表和移除表的奇数行的状态机。该状态机具有两个状态。第一状态404是‘偶’而第二状态406是‘奇’。从状态402到状态404的转移函数具有‘值’的输入406和‘返回(值)’的输出408。从状态404到状态402的转移函数具有‘值’的输入410和‘空()’的输出412。
实施例400的状态机可以用C#表示为:
Figure BSA00000475480300091
以上的类OnlyEvenElements(仅偶元素)使用由IEnumerable<T>定义的输入集合并产生IEnumerable<T>中的项的偶数元素的输出。状态机的状态是布尔表达式:非偶即奇,其中奇数被定义为Even=false(偶=假)。
对象‘IEnumerable<T>’可以表示来自集合T的单个值,而运算符‘Next’可以将集合递增至该集合中的下一对象。集合具有数据类型T。
随后执行状态机,保留数据类型T的偶数编号元素而丢弃奇数编号元素。
由OnlyEvenElements<T>表示的状态机将难以使用其他方法来编写,但当数据库查询语言用来表达状态机时得到单个且优雅的解决方法
以上对本发明主题的描述是出于说明和描述的目的而提出的。它不旨在穷举本主题或将本主题限于所公开的精确形式,且鉴于以上教导其它修改和变形都是可能的。选择并描述实施方式来最好地解释本发明的原理及其实践应用,从而使本领域的其它技术人员能够在各种实施方式和各种适于所构想的特定用途的修改中最好地利用本发明。所附权利要求书旨在包括除受现有技术所限的范围之外的其它替换实施方式。

Claims (15)

1.一种系统,包括:
处理器(108);
数据库查询语言处理器(126),用于:
接收包括含有事件流的事件对象的输入定义以及包括变换函数和创建输出事件流的绑定运算符;
所述系统被配置成执行一种包括以下动作的方法:
通过定义带有副效应的所述变换函数来表示状态机(208),所述副效应定义所述状态机中的至少一个状态;
通过提供所述输入定义并使用所述数据库查询语言处理器来对所述输入定义执行所述变换函数来操作所述状态机(224)。
2.如权利要求1所述的系统,其特征在于,所述数据库查询语言处理器还:
识别所述函数中的所述副效应。
3.如权利要求2所述的系统,其特征在于,所述数据库查询语言处理器还:
提供关于所述副效应的用户通知。
4.如权利要求1所述的系统,其特征在于,所述状态机具有:
一组状态;
定义从第一状态变为第二状态的条件的转移函数;
产生在给定状态和输入下的输出的输出函数;
所述函数包括所述转移函数。
5.如权利要求4所述的系统,其特征在于,所述输入定义是推输入。
6.如权利要求4所述的系统,其特征在于,所述输入定义是拉输入。
7.如权利要求4所述的系统,其特征在于,所述一组状态包括开始状态和结束状态。
8.如权利要求7所述的系统,其特征在于,还包括中间状态。
9.如权利要求1所述的系统,其特征在于,所述数据库查询语言处理器包括:
包括用于映射、过滤、绑定和交叉操作的运算符的一组标准查询运算符;
对包括具有数据类型的项的集合的序列数据类型执行所述运算符的所述数据库查询语言处理器。
10.如权利要求9所述的系统,其特征在于,所述数据库查询语言处理器还:
从所述函数中识别所述状态机;以及
在执行所述状态机时执行有限状态机优化。
11.如权利要求10所述的系统,其特征在于,所述优化是下列各项组成的组中的一个:
Hopcroft最小化算法;
隐含表;以及
Moore简化过程。
12.一种方法,包括:
通过定义带有副效应的函数来表示状态机(204),所述副效应定义所述状态机中的至少一个状态;
用数据库查询语言来表达所述函数(208);
定义包括事件序列的所述状态机的输入;
使用所述输入用所述数据库查询语言来执行所述状态机(224)。
13.如权利要求12所述的方法,其特征在于,还包括:
将所述函数编译成经编译代码;以及
在所述编译期间检测所述函数中的所述副效应。
14.如权利要求13所述的方法,其特征在于,还包括:
在用户界面中呈现注明所述副效应的警告。
15.如权利要求13所述的方法,其特征在于,还包括:
对所述经编译代码执行有限状态机优化。
CN2011100961043A 2010-04-05 2011-04-01 用数据库运算符的状态机表达 Pending CN102323772A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/753,908 2010-04-05
US12/753,908 US20110246962A1 (en) 2010-04-05 2010-04-05 State machine expressions in database operators

Publications (1)

Publication Number Publication Date
CN102323772A true CN102323772A (zh) 2012-01-18

Family

ID=44711118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100961043A Pending CN102323772A (zh) 2010-04-05 2011-04-01 用数据库运算符的状态机表达

Country Status (2)

Country Link
US (1) US20110246962A1 (zh)
CN (1) CN102323772A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860262A (zh) * 2021-02-09 2021-05-28 上海商汤智能科技有限公司 一种代码解析的方法、装置、电子设备及存储介质

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9411568B2 (en) * 2010-04-15 2016-08-09 Microsoft Technology Licensing, Llc Asynchronous workflows
US8694978B1 (en) * 2011-03-25 2014-04-08 Google Inc. Function side-effect modeling by prototyping
US9600241B2 (en) * 2012-02-15 2017-03-21 The Mathworks, Inc. Unified state transition table describing a state machine model
EP2815310B1 (en) 2012-02-15 2016-12-21 The MathWorks, Inc. Unified state transition table describing a state machine model
US20140047423A1 (en) 2012-08-09 2014-02-13 Filip J. Pizlo Runtime State Based Code Re-Optimization
US10229104B2 (en) 2013-08-01 2019-03-12 Sonicwall Inc. Efficient DFA generation for non-matching characters and character classes in regular expressions
US9489215B2 (en) * 2013-08-01 2016-11-08 Dell Software Inc. Managing an expression-based DFA construction process
US20150169303A1 (en) * 2013-12-13 2015-06-18 Qualcomm Incorporated Compiler optimization for finite state machines
WO2017045727A1 (en) * 2015-09-18 2017-03-23 Telefonaktiebolaget Lm Ericsson (Publ) Management of communication between m2m device and m2m server
US10545742B2 (en) * 2017-09-06 2020-01-28 Nicira, Inc. Annotation-driven framework for generating state machine updates
US11163742B2 (en) * 2019-01-10 2021-11-02 Microsoft Technology Licensing, Llc System and method for generating in-memory tabular model databases

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1030252A1 (en) * 1999-02-19 2000-08-23 Sun Microsystems, Inc. An intelligent intermediate state of an object-oriented database
WO2001059999A1 (en) * 2000-02-11 2001-08-16 Convergent Networks, Inc. Service level executable environment for integrated pstn and ip networks and call processing language therefor
CN1454357A (zh) * 2000-08-02 2003-11-05 菲利普·库特 Xml-机器人
US20070136383A1 (en) * 2005-12-13 2007-06-14 International Business Machines Corporation Database Tuning Method and System

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745384B1 (en) * 1998-05-29 2004-06-01 Microsoft Corporation Anticipatory optimization with composite folding
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US6964034B1 (en) * 2000-04-20 2005-11-08 International Business Machines Corporation Application development server and a mechanism for providing different views into the same constructs within a strongly encapsulated environment
US7703077B2 (en) * 2002-04-30 2010-04-20 Microsoft Corporation Programming model to detect deadlocks in concurrent programs
US7076472B2 (en) * 2002-08-05 2006-07-11 Edwin Addison Knowledge-based methods for genetic network analysis and the whole cell computer system based thereon

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1030252A1 (en) * 1999-02-19 2000-08-23 Sun Microsystems, Inc. An intelligent intermediate state of an object-oriented database
WO2001059999A1 (en) * 2000-02-11 2001-08-16 Convergent Networks, Inc. Service level executable environment for integrated pstn and ip networks and call processing language therefor
CN1454357A (zh) * 2000-08-02 2003-11-05 菲利普·库特 Xml-机器人
US7340728B2 (en) * 2000-08-02 2008-03-04 Applied Formal Methods Institute Methods and systems for direct execution of XML documents
US20070136383A1 (en) * 2005-12-13 2007-06-14 International Business Machines Corporation Database Tuning Method and System
CN100428242C (zh) * 2005-12-13 2008-10-22 国际商业机器公司 数据库调整方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860262A (zh) * 2021-02-09 2021-05-28 上海商汤智能科技有限公司 一种代码解析的方法、装置、电子设备及存储介质
CN112860262B (zh) * 2021-02-09 2024-06-07 上海商汤智能科技有限公司 一种代码解析的方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US20110246962A1 (en) 2011-10-06

Similar Documents

Publication Publication Date Title
CN102323772A (zh) 用数据库运算符的状态机表达
Spars et al. Principles asynchronous circuit design
Katayama Systematic search for lambda expressions.
US20160078084A1 (en) Method of Converting Query Plans to Native Code
Aydemir et al. LNgen: Tool support for locally nameless representations
CN102736919A (zh) 描述及开发动态行为应用系统的方法与系统
Tan et al. A comparison of using Taverna and BPEL in building scientific workflows: the case of caGrid
CN102541612B (zh) 数据平行代码中的映射变换
Pérez-Medina et al. A survey of model driven engineering tools for user interface design
CN102446100B (zh) 用于数据类型的类型和长度抽象的系统和方法
Grelck et al. Asynchronous stream processing with S-Net
CN102054217A (zh) 基于元模型的工具中的实体变形
Sasano et al. Toward bidirectionalization of ATL with GRoundTram
Plishker et al. A generalized scheduling approach for dynamic dataflow applications
Weil et al. Efficient compilation of Esterel for real-time embedded systems
CN107209677A (zh) 精细粒度需求驱动的ipo基础架构
Barnier et al. FaCiLe: a functional constraint library
Iana et al. NewsRecLib: A PyTorch-Lightning library for neural news recommendation
Maheshwari et al. Scientific workflow development using both visual and script-based representation
US20090064092A1 (en) Visual programming language optimization
Sturm Functional programming in C#: Classic programming techniques for modern projects
Günther Development of internal domain-specific languages: design principles and design patterns
Ammeraal Programs and data structures in C based on ANSI C and C++
JPWO2005029323A1 (ja) ソフトウェア生成方法
Liu et al. An Abstract Description Method of Map‐Reduce‐Merge Using Haskell

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150803

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

Effective date of registration: 20150803

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120118