首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 955 毫秒
1.
提出了一个基于工作站网(networkofworkstations,简称NOW)的分布式程序设计语言NC++(NOWC++).它是DC++语言的扩充.NC++提供了一个完备的编程环境,包括NC++预编译器、图视编程界面、多目通信机制和测试系统.它完善了组管理机制和进程通信机制,提出了一个基于信度推理网络的分布共享内存(distributedsharedmemory,简称DSM)机制以管理C++公共变量.实践证明,NC++语言在确保编程方便性的前提下保证了分布式程序的性能.  相似文献   

2.
C语言中的++运算符是一种特殊的运算符,其特殊性在于一个运算符包含两个操作,不同的编译器对这两个操作在复合表达式中的处理机制不同,而同一个编译器对其在程序中的不同位置也有不同的处理。教材中仅仅对++运算符作了最简单的介绍,并没有对++运算的左连接和右连接同时参与运算时的处理规则作介绍,本文对++运算在不同情况下的求解进行了深入研究,得出对++运算符的运算要根据一定的程序环境和编译器环境而定。  相似文献   

3.
于勐  臧婉瑜  谢立  过敏意 《软件学报》2001,12(6):822-829
近年来,面向对象语言的并行化技术取得了许多重要进展.以Mentat,CC++,pC++,HPC++和ICC++等几个典型系统为代表,从并行执行模型、语言并行设施、优化技术和运行时支持等几个方面归纳、总结了近年来这些语言和编译器支持并行的新技术.同时,还给出了对这些技术的分析和评价,总结了需要进一步研究和解决的问题.  相似文献   

4.
在手持设备和网络计算机不断与传统PC机竞争,逐渐成为应用开发对象时,定义可移植软件的标准需要特别谨慎。可移植语言并不少见,如Ada语言,它能根据指定计算机和操作系统的组合(当然。需要有一个有效的编译器)确保  相似文献   

5.
基于相关性的同步优化算法   总被引:3,自引:1,他引:3  
给出了一种基于数据相关图的同步优化算法,作为自动并行化编译器中的一个独立遍,利用并行化编译器对程序的相关性分析结果来实现编译时barrier同步优化。  相似文献   

6.
C++编译器应用研究与评析   总被引:1,自引:0,他引:1  
该文针对几种典型的C++编译器进行研究。通过一些有代表性的实例在不同的编译器上编译,并将结果与C++Standard进行比较并评析,找出了几个编译器之间的差异。为C++程序移植,为高效、准确地利用面向对象语言C++编程起到了积极的指导作用。  相似文献   

7.
一、前言随着并行计算机应用的深入,人们对并行程序的开发需求不断增加。相对于串行程序而言,并行程序必须考虑同步、互斥、通信等问题,使得并行程序设计难度较大,要求科技研究人员具备编写高效的并行程序的能力,影响了并行机的应用水平。将并行机制引入面向对象语言构成并行面向对象语言已成为当前面向对象技术的一个重要研究方向。利用面向对象的特点来有效实现并行任务的划分、数据的分配、并行进程间的通信和同步,可以降低并行程序设计难度。我们设计的适用于MPP机或集群系统的并行C~++语言(SPC~++),是一个面向对象的并行程序设计语言,充分体现了C~++语言面向对象的程序设计思想和特点,将对象机制和并行机制有机结合起来,大大降低并行程序设计难度。SPC~++利用了C~++语言的对象封装性、函数重载、操作符重载等功能对对象消息传递模型进行抽象,简化消息函数的使用。  相似文献   

8.
LS SIMD C编译器的数据通信优化算法   总被引:1,自引:1,他引:0  
1 引言当前理想的程序自动并行化系统的实现存在许多难于解决的问题,因此较为流行的并行计算方法是利用并行语言编写并行程序,编译器对并行程序进行编译生成相应的节点程序执行。并行语言按并行执行的粒度分为基于任务的并行语言(主要面向一般应用领域的计算)和数据并行语言(主要应用于科学数值计算),典型的数据并行语言如HPF。对于数据并行语言而言,程序执行的并行性已由程序设计人员根据程序中的数据相关性给出。因此,如何确定数据的分布、优化数据的通信是影响并行程序执行效率的重要问题。数据分布大致可以分为两个阶段:首先对源程序中数据的相关性分析得到数据在抽象处理机上的分布,然后将抽象处理机上的数据分布映射到物理处理机上。数据分布的确定通常有以下几种实现方式:一种是由程序员给出抽象数据分布,编译  相似文献   

9.
1 引言并行循环描述大多数先进科学应用的核心部分,是颇有价值的并行性来源。高级并行语言往往提供专门指导语句表达并行循环,以便并行编译器利用并行循环的非数据相关特性。在数据并行程序设计语言HPF中规定,可以将关键词INDEPENDENT加在Do循环前面,指出其后的Do循环是一个并行循环。与之相关的编译实现也成为HPF编译器的一个重点。并行循环L可以严格定义如下:假设R(i)表示迭代i所  相似文献   

10.
(UPC(Unified Parallel)原型系统是基于开放源码的Berkeley UPC1.0进行开发的,具有易编程、可移植的优点.但由于缺乏有效的并行编译优化支持,其性能与商业UPC编译器相比,有着较大的差距.为了提高UPC并行应用性能,研究并实现了UPC共享访问消息向量化技术.在8个双核CPU的硬件环境上的测试表明该优化效果非常好.  相似文献   

11.
12.
Lars Engebretsen 《Software》2006,36(15):1643-1654
This paper describes some of the author's experiences from a C++ implementation of a concordance program for texts in Old West Norse (also known as Old Icelandic) and Runic Swedish. Since the input to the program used a character repertoire that no standard one‐byte character encoding covers, it was natural to use Unicode to represent data both inside the program and in external files. Inside the program, each character was represented with C++ ‘wide characters’; the input and output was represented in UTF‐8. The author constructed C++ code conversion facets that convert data between those two representations during file I/O. This enabled him to successfully compile, and run, the concordance program on both Linux (Fedora Core 3 with gcc 3.4.2) and Windows XP (using Visual C++ .NET 2003). The only necessary change to the source when changing platform was isolated to the lines selecting which code conversion facet to use—all other pieces of code remained unchanged. In particular, the author could still use the standard C++ locale framework for collation and code conversion, in spite of the fact that the library‐provided code conversion facets had been replaced. Copyright © 2006 John Wiley & Sons, Ltd.  相似文献   

13.
Automated program transformation holds promise for a variety of software life cycle endeavors, particularly where the size of legacy systems makes manual code analysis, re-engineering, and evolution difficult and expensive. But constructing highly scalable transformation tools supporting modern languages in full generality is itself a painstaking and expensive process. This cost can be managed by developing a common transformation system infrastructure re-useable by derived tools that each address specific tasks, thus leveraging the infrastructure costs. This paper describes the Design Maintenance System (DMS1), a practical, commercial program analysis and transformation system, and discusses how it was employed to construct a custom modernization tool being applied to a large C++ avionics system. The tool transforms components developed in a 1990s-era component style to a more modern CORBA-like component framework, preserving functionality.  相似文献   

14.
Double dispatch is the ability to dynamically select a method not only according to the run‐time type of the receiver (single dispatch), but also according to the run‐time type of the argument. This mechanism unleashes the power of dynamic binding in object‐oriented languages, so enhancing re‐usability and separation of responsibilities. However, many mainstream languages, such as, e.g., C++ and Java, do not provide it, resorting only to single dispatch. In this paper we propose an extension of C++ (also applicable to other object‐oriented languages) that enables double dispatch as a language feature. This yields dynamic overloading and covariant specialization of methods. We define a translation from the new constructs to standard C++ and we present the preprocessor implementing this translation, called doublecpp . The translated code enjoys static type safety and implements the semantics of double dispatch by using only standard mechanisms of static overloading and dynamic binding, with minimal impact on the performance of the program. Copyright © 2006 John Wiley & Sons, Ltd.  相似文献   

15.
The efficiency of object-oriented programs has become a point of great interest. One necessary factor for program efficiency is the optimization techniques involved. This paper presents the performance of several variations of a given C++ program and compares them with a version that uses no object-oriented features. Our result indicates that some object-oriented features in C++ are not well optimized in current C++ compilers. We thus discuss some code optimization techniques that can improve the efficiency based on the given C++ program.  相似文献   

16.
预处理在C/C 中发挥着重要作用,然而这些预处理功能存在着一些缺陷,例如在头文件包含进来时,无法改变头文件中的内容;代码的重用性不高;大量重复代码等等。本文提出用一种高级配置语言XVCL(XML-basedVariantConfigura-tionLanguage)代替原来的预处理机制,来克服以上提出的问题。文件被组织为树形结构,并定义了利于提高重用性的变量作用域机制。文章通过一个实例来验证本文提出的方法的有效性。  相似文献   

17.
This paper presents an assessment method to evaluate the quality of object oriented software systems. The assessment method is based on source code abstraction, object–oriented metrics and graphical representation. The metrics used and the underlying model representing the software are presented. The assessment method experiment is part of an industrial research effort with the Bell Canada Quality Engineering and Research Group. It helps evaluators assess the quality and risks associated with software by identifying code fragments presenting unusual characteristics. The assessment method evaluates object–oriented software systems at three levels of granularity: system level, class level and method level. One large C++ and eight Java software systems, for a total of over one million lines of code, are presented as case studies. A critical analysis of the results is presented comparing the systems and the two languages.  相似文献   

18.
This paper presents an assessment method to evaluate the quality of object oriented software systems. The assessment method is based on source code abstraction, object–oriented metrics and graphical representation. The metrics used and the underlying model representing the software are presented. The assessment method experiment is part of an industrial research effort with the Bell Canada Quality Engineering and Research Group. It helps evaluators assess the quality and risks associated with software by identifying code fragments presenting unusual characteristics. The assessment method evaluates object–oriented software systems at three levels of granularity: system level, class level and method level. One large C++ and eight Java software systems, for a total of over one million lines of code, are presented as case studies. A critical analysis of the results is presented comparing the systems and the two languages. This revised version was published online in June 2006 with corrections to the Cover Date.  相似文献   

19.
C/C++代码自动生成脚本语言接口的实现   总被引:1,自引:0,他引:1  
对于开发灵活的科学软件来说,脚本语言是一个强大的工具。然而开发人员经常遇到一个问题:如何将编译过的C/C 代码集成到一个解释器。为了解决上述问题,设计了一个可扩展的编译器——接口产生器(IG)。IG主要任务是把编译过的C/C 代码集成到脚本语言解释器中。因此,该文的主要目的就是解决上述相关问题。  相似文献   

20.
异常处理是现代程序设计语言提供的用来提高软件健壮性的一种机制。由于在C^++的函数界面中并不要求声明该函数所能传播出的异常的类型,所以要想提高系统的健壮性,必须清楚在程序的执行过程中可能引发的异常、异常的传播路径等。然而在大型系统中,要想确定这些信息是非常困难的。本文针对C^++的异常处理机制,首先提出了一个描述C^++异常结构信息的模型,并把该模型应用于递归函数中。然后,描述了一个基于该模型的分析C^++程序异常结构信息的工具CETool。该工具能提供所有显式引发异常的有关信息,为系统中异常处理结构的改进和程序的结构测试提供有价值的信息。最后给出了该工具的实现方法和应用实例。  相似文献   

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

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