首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 15 毫秒
1.
This paper shows how rewriting logic semantics (RLS) can be used as a computational logic framework for operational semantic definitions of programming languages. Several operational semantics styles are addressed: big-step and small-step structural operational semantics (SOS), modular SOS, reduction semantics with evaluation contexts, and continuation-based semantics. Each of these language definitional styles can be faithfully captured as an RLS theory, in the sense that there is a one-to-one correspondence between computational steps in the original language definition and computational steps in the corresponding RLS theory. A major goal of this paper is to show that RLS does not force or pre-impose any given language definitional style, and that its flexibility and ease of use makes RLS an appealing framework for exploring new definitional styles.  相似文献   

2.
3.
Esterel is a design language for the specification of real time embedded systems. Based on the synchronous concurrency paradigm, its semantics describes execution as a succession of instants of computation. In this work, we consider the introduction of a new gotopause instruction in the language, which acts as a non-instantaneous jump instruction compatible with concurrency. It allows the programmer to activate state control points anywhere in the program, from where the execution is resumed in the next instant. In order to provide the formal semantics of the extended language, we first define a state semantics of Esterel, which we prove observationally equivalent to the original logical behavioral semantics. Including gotopause in the state semantics is then straightforward. We sketch two key applications of our new primitive: a direct encoding of automata and a quasi-linear rewriting of programs eliminating schizophrenic behaviors.  相似文献   

4.
5.
In this paper, we describe a true-concurrent hierarchical logic interpreted over concurrent automata. Concurrent automata constitute a special kind of asynchronous transition system (ATS) used for modelling the behaviour of components as understood in component-based software development. Here, a component-based system consists of several interacting components whereby each component manages calls to and from the component using ports to ensure encapsulation. Further, a component can be complex and made of several simpler interacting components. When a complex component receives a request through one of its ports, the port delegates the request to an internal component. Our logic allows us to describe the different views we can have on the system. For example, the overall component interactions, whether they occur sequentially, simultaneously or in parallel, and how each component internally manages the received requests (possibly expressed at different levels of detail). Using concurrent automata as an underlying formalism we guarantee that the expressiveness of the logic is preserved in the model. In future work, we plan to integrate our truly-concurrent approach into the Edinburgh Concurrency Workbench.  相似文献   

6.
由于使用环境和新技术的不断变化,软件演化的控制变得日趋复杂.为了提高软件演化活动的可视化和形式化支持程度,结合谓词逻辑和软件演化,提出了一种软件演化操作语言SEOL(Software Evolution Operational Language)描述软件演化,给出了SEOL的语法和结构化操作语义描述,并指出了软件演化操作语义等价分析方法.结合软件代码演化和软件模型演化实例,说明了SEOL的应用.与已有的软件演化操作描述相比,SEOL在易用性、可重用性和形式化分析方面有明显的改善,为软件演化的管理、分析和实施奠定了基础.  相似文献   

7.
A Structural Proof of the Soundness of Rely/guarantee Rules   总被引:1,自引:0,他引:1  
Various forms of rely/guarantee conditions have been used torecord and reason about interference in ways that provide compositionaldevelopment methods for concurrent programs. This article illustratessuch a set of rules and proves their soundness. The underlyingconcurrent language allows fine-grained interleaving and nestedconcurrency; it is defined by an operational semantics; theproof that the rely/guarantee rules are consistent with thatsemantics (including termination) is by a structural induction.A key lemma which relates the states which can arise from theextra interference that results from taking a portion of theprogram out of context makes it possible to do the proofs withouthaving to perform induction over the computation history. Thislemma also offers a way to think about expressibility issuesaround auxiliary variables in rely/guarantee conditions.  相似文献   

8.
类型系统建立在一个小的规则集合基础上,易于实现,可理解性好,且具有计算完全性和足够的表达能力,在类型系统中可以重述推导规则,将其形式化为一些归纳关系,从而直接表示了命令的操作语义,类型理论不仅适合于函数式程序的证明,也是刻画和证明命令式程序的合适的框架。  相似文献   

9.
UML状态机的形式语义   总被引:18,自引:1,他引:18  
蒋慧  林东  谢希仁 《软件学报》2002,13(12):2244-2250
许多大型系统在进行分析和设计时,均采用UML作为需求描述语言,尤其是一些对安全性要求较高的系统,更是广泛采用UML的动态行为描述机制--状态机来描述协议及控制机制.但是,由于UML没有形式化的动态语义,不利于对其所描述的需求进行形式化验证和证明.为了解决这一问题,采用以下方法为UML状态机构建形式语义.把UML状态机中的状态映射到一种项代数上,用归纳的状态项表示状态机的状态.然后,把状态项映射到一种加标记的变迁系统LTS上,LTS-状态是状态机的状态项,LTS-变迁是UML状态机的微步.最后,用Plotk  相似文献   

10.
华保健  高鹰 《计算机科学》2013,40(2):159-162
面向对象语言在软件工程实践中有着广泛的应用。为面向对象语言定义严格的语义有助于理解面向对象语言的本质特征,对验证软件、提高软件系统可靠性等也具有重要意义。给出了一种新的面向对象语言的语义框架,该框架基于命令式的风格,具有操作语义和类型规则;证明了该语义框架的类型安全定理。  相似文献   

11.
We present trace-based abstract interpretation, a unification of severallines of research on applying Cousot-Cousot-style abstract interpretation a.i. tooperational semantics definitions (such as flowchart, big-step, and small-step semantics)that express a programs semantics as a concrete computation tree of trace paths. Aprograms trace-based a.i. is also a computation tree whose nodes contain abstractions ofstate and whose paths simulate the paths in the programs concrete computation tree.Using such computation trees, we provide a simple explanation of the central concept of collecting semantics, and we distinguish concrete from abstract collectingsemantics and state-based from path-based collecting semantics. We also expose therelationship between collecting semantics extraction and results garnered from flow-analytic and model-checking-based analysis techniques. We adapt concepts fromconcurrency theory to formalize safe and live a.i.s for computation trees; in particular, coinduction techniques help extend fundamental results to infinite computation trees.Problems specific to the various operational semantics methodologies are discussed: Big-step semantics cannot express divergence, so we employ a mixture of induction andcoinduction in response; small-step semantics generate sequences of programconfigurations unbounded in size, so we abstractly interpret source language syntax.Applications of trace-based a.i. to data-flow analysis, model checking, closure analysis,and concurrency theory are demonstrated.  相似文献   

12.
In this paper, we give an operational and denotational semantics for a meta-language of the 3APL agent programming language. With this meta-language, various 3APL interpreters can be programmed. We prove equivalence of the operational and denotational semantics. Furthermore, we give an operational semantics for object-level 3APL. Using this semantics, we relate the 3APL meta-language to object-level 3APL by providing a specific interpreter, the semantics of which will prove to be equivalent to object-level 3APL.  相似文献   

13.
We propose a simple order-theoretic generalization of set-theoretic inductive definitions. This generalization covers inductive, co-inductive and bi-inductive definitions and is preserved by abstraction. This allows the structural operational semantics to describe simultaneously the finite/terminating and infinite/diverging behaviors of programs. This is illustrated on the structural bifinitary small/big-step trace/relational/operational semantics of the call-by-value λ-calculus.  相似文献   

14.
15.
UML Statechart图的操作语义   总被引:15,自引:0,他引:15  
李留英  王戟  齐治昌 《软件学报》2001,12(12):1864-1873
面向对象标准建模语言UML(unified modeling language)缺乏精确的动态语义.根据UML1.1语义文档,提出描述对象状态机的UML Statechart图的形式化操作语义.该语义覆盖了UML Statechart图的绝大部分特征,为UML Statechart图的代码产生、模拟和测试用例生成奠定了基础.根据上述语义,基于Rose98完成了UML Statechart图的测试用例生成和测试过程的模拟.  相似文献   

16.
对应用进化代数(EA),即目前的抽象状态机(AbstractStateMachine–ASM),描述可定时实时并行进程进行了研究,进化代数采用第一顺序逻辑(First-OrderLogic)定义或解释计算机问题,描述不同的抽象等级并且逻辑地描述计算机算法,因此非常适合描述并行进程复杂的运行过程,并逻辑地精确推导进程调度。  相似文献   

17.
Shared Messaging Communication (SMC) has been introduced in [Satya Kiran M.N.V., Jayram M.N., Pradeep Rao, and S.K. Nandy. A complexity effective communication model for behavioral modeling of signal processing applications. In Proceedings of 40th Design Automation Conference, 2003] as a model of communication which reduces communication costs (both in terms of communication latency and memory usage) by allowing tasks to communicate data through special shared memory regions. Sending a reference to an otherwise inaccessible memory regions rather than the data itself, the model combines the advantages of message passing and shared memories. Experimental results have shown that SMC in case of large data payloads clearly outperforms the classical message passing.In this paper we give a formal operational semantics to SMC exhibiting unambiguously the effect of executing an SMC command on local and shared memories. Based on this semantics we show that any program using message passing can be proved to be weakly bisimilar to one based on SMC and that with respect to communication costs the latter is amortised cheaper, [A. Kiehn and S. Arun-Kumar. Amortised bisimulations. In Proceedings of FORTE 2005, number 3731 in Lecture Notes in Computer Science, pages 320–334. Springer-Verlag, 2005].  相似文献   

18.
UML活动图的操作语义   总被引:1,自引:0,他引:1  
越来越多的系统采用UML(unified model language, 统一建模语言)作为建模语言来进行系统分析和设计. UML活动图是UML语言中描述系统动态行为的一种方法,它广泛地运用于业务建模.由于UML活动图缺乏精确的动态语义,所以不利于对其所描述的系统进行形式化的分析、验证和确认.为解决这一问题,根据UML1.5语义文档,给出UML活动图的形式化操作语义.首先给出UML活动图的形式化的语法,然后详细地定义了活动图的格局和变迁,最后基于LTS给出了活动图的演绎规则.主要工作是:引入状态包的概念,使得描述更加清楚、完善;通过LTS定义活动图的操作语义,并详细阐述演绎规则,从而获得活动图的全局状态转移图,使定义的操作语义很容易地应用到形式化验证中.该语义覆盖了UML活动图的绝大部分特征,为对UML活动图进行模型检验奠定了基础.  相似文献   

19.
We present an unboxed operational semantics for an ML-style polymorphic language. Different from the conventional formalisms, the proposed semantics accounts for actual representations of run-time objects of various types, and supports a refined notion of polymorphism that allows polymorphic functions to be applied directly to values of various different representations. In particular, polymorphic functions can receive multi-word constants such as floating-point numbers without requiring them to be boxed (i.e., heap allocated.) This semantics will serve as an alternative basis for implementing polymorphic languages. The development of the semantics is based on the technique of the type-inference-based compilation for polymorphic record operations [20]. We first develop a lower-level calculus, called a polymorphic unboxed calculus, that accounts for direct manipulation of unboxed values in a polymorphic language. This unboxed calculus supports efficient value binding through integer representation of variables. Different from de Bruijn indexes, our integer representation of a variable corresponds to the actual offset to the value in a run-time environment consisting of objects of various sizes. Polymorphism is supported through an abstraction mechanism over argument sizes. We then develop an algorithm that translates ML into the polymorphic unboxed calculus by using type information obtained through type inference. At the time of polymorphic let binding, the necessary size abstractions are inserted so that a polymorphic function is translated into a function that is polymorphic not only in the type of the argument but also in its size. The ML type system is shown to be sound with respect to the operational semantics realized by the translation.  相似文献   

20.
We present a game semantics for modal propositional logic Grz.Since intuitionistic logic may be embedded into Grz, the semanticsalso covers intuitionistic propositional logic. That semanticsis simpler than Lorenzen's ‘dialogue’ games, butlacks predicates.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号