共查询到20条相似文献,搜索用时 171 毫秒
1.
可扩展和可配置事件通知服务体系结构 总被引:6,自引:0,他引:6
基于发布/订阅模式的事件通知服务,作为基本的通信与集成基础设施已广泛应用于分布式应用系统.由于日益增长的应用需求,事件通知服务需要应对各种来自不同应用领域的新需求.但在开发基于事件中间件的分布式应用时,开发者面临特殊化与通用化通知服务的两难选择.针对这种现状,提出了一种灵活的解决方法,设计一个动态可扩展和可配置的事件通知服务体系结构,允许针对不同应用领域定制不同的通知服务.该体系结构基于XML的可扩展订阅、事件、协议和配置语言,以配置管理和元服务管理的机制,提供了通知服务功能的动态扩展和定制以及非功能性特征的满足. 相似文献
2.
3.
《现代计算机》1999,(3)
SunMlcrosystems公司宣布,它将按照JavaColli-munityProcess程序为可扩展的高标价语言(XM:ExtenslbleMarkupLanguage)创立一个Java平台的标准扩展版。这个XML标准扩展版将是由业界共同开发的一个应用编程接口(API),企业和开发商都可以依靠这个API对高品质的XML语言与Java平台进行集成。Sun已经勾画出XML标准扩展版的初始版本的基本构架,它提供了阅读、操作和生成基于XML语言的数据流和数据格式等基本功能。这些主要性能将构成相应的模块,以便开发面向全功能XML语言的应用软件。"企业希望XML技术能成为在网络上交换… 相似文献
4.
5.
6.
在国际超级计算机领域,并行机的体系结构和相应的并行程序设计语言一直是前沿课题和难点,而且体系结构的变化必将带来程序设计语言的改进和发展。本文基于一个带有超级节点的SPP体系结构,对该结构下的控制(任务)并行、数据分布和同步问题分别从语言一级进行了探讨。 相似文献
7.
Polyglot是一种避免代码复制的、高度可扩展的编译器前端框架。用户只需扩展该框架,定义对抽象语法树、语义分析等的必要修改,即可实现Java语言扩展。为指导用户在Polyglot上快速开展工作,该文总结Polyglot的主要流程和类体系,剖析其利用委托、访问者、抽象工厂等实现可升级扩展的方法,简述了Polyglot的已有应用及应用步骤。 相似文献
8.
9.
基于运行时体系结构的协同模型能够为面向服务的协同应用系统的动态演化提供有效的支持。但是在实现层面上,如何使软件体系结构从抽象的规约转化为运行时实际的对象实体,并成为系统演化行为的直接载体,是一个较为困难的技术挑战。针对这个问题,本文提出一种基于计算自省的实现途径,主要包括基于面向对象程序设计语言构造的体系结构层面的元表示和元协议、基于体系结构上下文中对象引用重解释构建的因果互连机制,以及基于该因果互连机制的应用系统的动态重配置。以上实现方式在自行开发的服务协同系统ARTEMIS-ARC时得以实施。 相似文献
10.
11.
文章通过一个协作式客户机/服务器软件系统的实例阐明了设计不同系统体系可复用扩展软件构架的一种方法。笔者提出的构架,将使用构架描述语言进行定义,通过软件复用的三个层次(独立于应用域的,领域特有的和应用特有的),有机地组织起来。构架由可复用领域的特定黑盒构架模式和可扩展领域的特定白盒构架模式组成。文章重点阐述了软件构架中复用的不同层次以及构架如何实现扩展。 相似文献
12.
In this paper the focus is on object-oriented analysis of information systems. We assume that the communication within an
application domain can be described by a logbook of events. In our view, the purpose of the analysis phase is to model the
structure of this logbook. The resulting conceptual model is referred to as the information architecture, and is an integration
of three formal object-oriented analysis models with each a specific view on the application domain. Furthermore, the information
architecture forms an abstraction of an underlying grammar, called the information grammar, for the communication within the
application domain. This grammar can be used to validate the information architecture in a textual format by informed users.
In addition, the information grammar can be used to obtain the relevant data and processes of the application domain, and
serves as a basis for the query language of users with the information system.
Received: 19 February 1997 / 21 August 2001 相似文献
13.
14.
Hardware compilers for high-level languages are increasingly recognised to be the key to reducing the productivity gap for advanced circuit development in general, and for reconfigurable designs in particular. This paper explains how customisable frameworks for hardware compilation can enable rapid design exploration, and reusable and extensible hardware optimisation. It describes such a framework, based on a parallel imperative language, which supports multiple levels of design abstraction, transformational development, optimisation by compiler passes, and metalanguage facilities. Our approach has been used in producing designs for applications such as signal and image processing, with different trade-offs in performance and resource usage. 相似文献
15.
分块内存和多地址生成器(AGU)是DSP普遍采用的体系结构.传统的C语言编译器没有针对分块内存和多AGU结构进行代码优化,导致生成代码无法满足性能需求,影响了C语言编译器在数字信号处理领域的应用.为了解决这个问题,提出基于编译指示,与分块内存和多AGU结构相关的编译优化算法.该算法利用定义引用链和引用定义链中的数据流信息,为地址计算指令和访存指令分配AGU,从而提高生成代码的指令级并行度.实验结果表明此算法能够达到较好的优化效果. 相似文献
16.
Christian H. Stork Peter S. Housel Vivek Haldar Niall Dalton Michael Franz 《Electronic Notes in Theoretical Computer Science》2001,59(1):142-157
The Java Virtual Machine is primarily designed for transporting Java programs. As a consequence, when JVM bytecodes are used to transport programs in other languages, the result becomes less acceptable the more the source language diverges from Java. Microsoft's .NET transport format fares better in this respect because it has a more flexible type system and instruction set, but it is not extensible, and (for example) has no provision for supporting explicit programmer-specified parallelism. Both platforms have difficulty making transported programs run efficiently.This paper discusses first steps towards mobile code representations that are independent (in the sense that the representation can be appropriately parameterized) of the source language (e.g., Java), intermediate representation (e.g., bytecode), and target architecture (e.g., x86). We call this kind of parameterizable framework language-agnostic.We present two techniques which provide parts of the envisioned language-agnostic functionality. Compressed abstract syntax trees as a wire format provide for a very dense encoding of programs at a high level of abstraction. We show how to parameterize the compression algorithm in a modular fashion with knowledge beyond the purely syntactical level. This leads to the notion of well-formedness by construction. The second technique defines the semantics of programs by mapping from abstract syntax trees to a typed core calculus representation. Based on this representation it becomes possible to use portable definitions of security policies and to execute programs written in different source languages, even if a more efficient trusted native compiler is not available on the target platform. 相似文献
17.
A practical approach to the development of a high-quality, re-usable code generator is described in this paper. This code generator produces code for the Prime 64V mode architecture, but the methodology used is generally applicable to the construction of compilers for most architectures. The code generator accepts a tree-structured intermediate form, linearized and represented as a file of integers. This intermediate form uses high-level operators, minimizing work by compiler front-ends that use it and providing a number of advantages in the code generation process. The output of the code generator is assembly language. This tool was found to considerably extend the capabilities of students in a graduate compiler class and has been used in the construction of Pascal and C compilers. 相似文献
18.
This paper presents a simple and safe compiler, called MinSIGNAL, from a subset of the synchronous dataflow language SIGNAL to C, as well as its existing enhancements. The compiler follows a modular architecture, and can be seen as a sequence of source-to-source transformations applied to an intermediate representation which is named Synchronous Clocked Guarded Actions (S-CGA) and translation to sequential imperative code. Objective Caml (OCaml) is used for the implementation of MinSIGNAL. As a modern functional language, OCaml is adapted to symbolic computation and so, particularly suitable for compiler design and implementation of formal analysis tools. In particular, the safety of its type checking allows to skip some verification that would be mandatory with other languages. Additionally, this work is a basis for the formal verification of the compilation of SIGNAL with a theorem prover such as Coq. 相似文献
19.
VLIW机器在单个机器周期中同时发射并执行多个的并行操作,从而获得较高的指令级并行度,这些操作之间的依赖分析和调度工作则被完全交给相应的编译器执行,因此VLIW的并行性能能否充分发挥取决于VLIW体系结构相关编译器的质量。GNU开发的GCC是被最广泛使用的编译系统之一,它具有多语言、多平台支持的能力和开放的结构,能够运用各种成熟的常规编译优化技术生成高效的代码。文章分析了VLIW及GCC的结构特点,提出了一种基于GCC的VLIW编译系统设计方案,利用GCC进行RTL中间代码一级的体系结构无关优化和少量体系结构相关优化,在汇编代码一级针对VLIW结构进行体系结构相关的优化,从而充分利用GCC的成熟编译技术快速开发高效的VLIW多语言编译系统。 相似文献
20.
We have implemented a compiler for key parts of Modelica, an object-oriented language supporting equation-based modeling and simulation of complex physical systems. The compiler is extensible, to support experiments with emerging tools for physical models. To achieve extensibility, the implementation is done declaratively in JastAdd, a metacompilation system supporting modern attribute grammar mechanisms such as reference attributes and nonterminal attributes.This paper reports on experiences from this implementation. For name and type analyses, we illustrate how declarative design strategies, originally developed for a Java compiler, could be reused to support Modelica’s advanced features of multiple inheritance and structural subtyping. Furthermore, we present new general design strategies for declarative generation of target ASTs from source ASTs. We illustrate how these strategies are used to resolve a generics-like feature of Modelica called modifications, and to support flattening, a fundamental part of Modelica compilation. To validate that the approach is practical, we have compared the execution speed of our compiler to two existing Modelica compilers. 相似文献