当前位置: 首页 > 专利查询>H·J·M·梅杰专利>正文

用数据库运算符的状态机表达制造技术

技术编号:7064003 阅读:325 留言:0更新日期:2012-04-11 18:40
本发明专利技术描述了用数据库运算符的状态机表达。状态机可以使用数据库查询语言的事件驱动对象来表示。可以将来自数据库查询语言的绑定运算符用作状态转移函数,其中转移函数具有定义状态的副效应。对象可以用事件驱动表达式和运算符来操纵并且执行原本对于简单状态机而言复杂的操作。

【技术实现步骤摘要】

本专利技术涉及系统设计,尤其涉及使用状态机的系统设计。
技术介绍
状态机是用于设计实时系统和硬件的一种机制。虽然没有在软件中的多,但已经在硬件中开发并广泛地采用状态机理论和优化。
技术实现思路
状态机可以使用数据库查询语言的事件驱动对象来表示。可以将来自数据库查询语言的绑定运算符用作状态转移函数,其中转移函数具有定义状态的副效应。对象可以用事件驱动表达式和运算符来操纵并且执行原本对于简单状态机而言复杂的操作。提供本
技术实现思路
以便以简化形式介绍将在以下的具体实施方式中进一步描述的一些概念。本
技术实现思路
并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。附图说明在附图中,图1是示出可以使用数据库查询语言来执行状态机的设备的实施例的图示。图2是示出用于使用数据库查询语言来表达状态机的方法的实施例的流程图示。图3是示出在反馈机制中使用的有限状态机的实施例的图示。图4是示出简单的有限状态机的实施例的图示。具体实施例方式可以一般化关系数据库的概念并将其用来实现状态机。一般化的关系数据库概念可以允许来自关系数据库应用程序的增强的表达能力,以及允许使用状态机来实现关系数据库。标准关系数据库可以由行的集合以及行的元组来表示,我们可以将行的集合定义为‘集合’,我们可以将行的元组定义为‘类’。贯穿本文,使用符号M<T>来讨论集合,其中M表示集合而T表示存储在集合中的项的数据类型。为了使集合工作,存在若干公理0::Μ<Τ>-空集U: :MXT>x M<T> — M<T>-两个集合的并集产生另一集合。{J :T — Μ<Τ>-将值注入到集合中。在这种情况下,可以创建单个元素或单元素皇A朱口 ο在关系代数中使用若干公共运算符来对数据库执行操作σ :Μ<Τ>χ(Τ — bool) — M<T>-从关系代数的过滤或选择操作。函数(T — bool)是过滤函数。Ji :Μ<Τ>χ (Τ - S) - M<S>-投影或变换操作将集合从类型T变为类型S。X: :M<T>x M<S> — M<TxS>- 一对集合可被变成对的集合。定义了又一个运算符klectMany (选择许多)M<T>x(T —M<S>) — M<S>-来自关系代数的相关子查询。函数(T —M<S>)定义了如何将M<T>的元素分成S型元素的集合,随后被展平成S元素的集合。可以使用klectMany运算符来表达以上定义的以上关系代数操作中的任一个。σ (as) = as. SelectMany ( λ a — P (a) ? {a} :0)-使用函数 P (a)从集合 ‘as,中过滤项‘a’。P (a)处理每一项λ a,并创建单元素集合{a}或创建空集。随后将各项展平成带有与原始集合相同类型的新的集合或将其加入到新的集合中。Ji (as) = as. SelectMany ( λ a — {F (a)})-通过应用函数F (a)来投影各项并创建单元素集合。随后将单元素集展平成带有与原始集合相同类型的新的集合或将其加入到新的集合中。as X bs = as. SelectMany ( λ a ^ σ λ b ^ (a,b) (bs))-结合一对集合 ‘as,禾口 ‘bs,。klectMany中使用的函数可以是代码的任意表示。在某些情况下,函数可以是对象或在某些情况下可以是描述以及可执行函数。通过使用以上的klectMany符号,出现了多个一元体(monad)集合M<_>对应于算符运算符kIectMany对应于绑定单元素集合U对应于返回或η结合一元体取各集合的集合(a collection of collections)并将结果展平为单小隹AI朱口。μ :M<M<T>> — M<T>结合一元体可以使用kIectMany来表示。μ tss = tss. SelectMany ( λ ts — ts)因此,数据库描述符和运算符可以被一般化为一元体。可以将数据库查询引擎的技术应用于更一般化的一元体概念。Mealy机是有限状态机,它可以被一般化为一元体的概念。Mealy机是由以下各项组成的6_元组(S,S0,Σ,Λ,T,G)状态的有限集(S)开始状态或初始状态(SO),它是S的一个元素被称为输入字母表的有限集(Σ )被称为输出字母表的有限集(Λ)将状态和输入字母表映射到下一状态的转移函数(Τ :S χ Σ — S)将每一状态和输入字母表映射到输出字母表的输出函数(G :S χ Σ— Λ)Mealy机的函数可以如下表达,其中*指示各项的集合Next (下一个)状态χ输入一状态Out (输出)状态χ输入一输出Run(运行)状态χ输入*x((状态χ输入一状态)x(状态χ输入一输出))一(输出X状态)*Rim的表达式指示输入和状态的集合得到输出和状态的集合。可以进一步一般化这些表达式,其中可以组合状态χ输入一状态函数以及状态χ 输入一输出函数来创建产生输出对的单个函数 状态χ输入一输出χ状态输出可以是输出的集合。状态χ输入一输出*x状态Mealy机Run表达式可以被重写为状态χ输入*x(状态χ输入一输出*x状态)一(输出χ状态)*在编程语言中,全局状态是隐式的,将以上表达式简化为输入*x (输入一输出*)—输出*输入序列的集合,将输入转换为输出序列的函数得到输出序列。该表达式可以使用.NET框架中的klectMany来定义为IEnumerable (可枚举)<T>SelectMany (该 IEnumerable<S>src (源),Func (函数)<S,IEnumerable<T 选择器)当选择器函数产生副效应时,可以使用该表达式来实现状态机。以上所述的Mealy 机被示为有限状态机,但该表达式还可用于实现无限状态机。副效应函数可以是改变输入和输出参数以外(即,环境中的)的状态的任何函数。可以在常规数据库语言系统中使用副效应函数来表达状态机。状态机的输入可以被认为是状态机可以处理的‘事件’。在处理事件时,可以更新状态并生成输出。可以使用数据库查询语言处理器通过将查询输入定义为状态序列来表达状态机。 可以使用变换函数将状态序列绑定到序列输入以创建输出事件流。当变换函数具有副效应时,那些副效应在对输入事件流作出响应时可以定义状态机的状态。在某些情况下,输入类型可以与输出类型不同。当且仅当N<T> — M<T>时以下语句保持为真M<I>x(I — Ν<0 — Μ<0>类似地,当且仅当Μ<Ν<0>> — Ν<0>时以下语句保持为真Μ<Ι>χ(Ι — Ν<0 — Ν<0>在某些实施例中,输入可以被创建为推或拉输入。拉输入可以请求输入并在处理输入之前可以等待直到接收到输入。在推输入中,状态机可以在任意时刻接收输入并且在其到达后处理输入。本文档来自技高网...

【技术保护点】
1.一种系统,包括:处理器(108);数据库查询语言处理器(126),用于:接收包括含有事件流的事件对象的输入定义以及包括变换函数和创建输出事件流的绑定运算符;所述系统被配置成执行一种包括以下动作的方法:通过定义带有副效应的所述变换函数来表示状态机(208),所述副效应定义所述状态机中的至少一个状态;通过提供所述输入定义并使用所述数据库查询语言处理器来对所述输入定义执行所述变换函数来操作所述状态机(224)。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:H·J·M·梅杰D·A·马诺列斯库J·范格格J·W·戴尔B·C·贝克曼
申请(专利权)人:H·J·M·梅杰D·A·马诺列斯库J·范格格J·W·戴尔B·C·贝克曼
类型:发明
国别省市:US

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1