首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
针对基于原型的单继承面向对象模型,通过扩展库的形式实现了Lua对契约式开发的支持,包括原型不变式、函数前后置断言。利用了语言提供的动态元机制在运行期改变某些语法构造的原始语义。最后分析了该实现方法的弱点和改进思路。  相似文献   

2.
In this paper we introduce an automatic system to perform authority control in digital libraries based on data mining techniques. This system is able to find the different representations for an author name as well as to distinguish between different authors sharing the same name. Using that information, the system shows the user the results of a search over a digital library properly grouped according to their authorship. To accomplish this task, it only uses information that can be directly obtained from the digital library itself without any kind of external data. The system has been tested using different digital libraries on the web.  相似文献   

3.
1.引言指令之间的依赖使超标量计算机的处理器每个时钟周期只能执行平均1.7到2.1条指令。同时指令的运行带有很大的重复性。指令重复是指一条静态指令多次动态执行得到的结果是一样的。通常的情况下,对一条计算指令,如果它的输入是相同的,那么其结果也是相同的。但是,也存在输入不同、但结果相同的情况;例如两个数做布尔运算,在很多种情况下,结果都是一样的。在本文中我们说一条指令被重复当且仅  相似文献   

4.
Traditionally parallel compilers have targeted a standard message passing communication library when generating communication code (e.g. PVM, MPI). The standard message passing model dynamically reserves communication resources for each message. For regular, repeating communication patterns, a static communication resource reservation model can be more efficient. By reserving resources once for many communication exchanges, the communication startup time is better amortized. Plus, with a global view of communication, the static model has a wider choice of routes. While the static resource reservation model can be a more efficient communication target for the compiler, this model reveals the problems of scheduling use of limited communication resources. This paper uses the abstraction of a communication resource to define two resource management problems and presents three algorithms that can be used by the compiler to address these problems. Initial measures of the effectiveness of these algorithms are presented from two programs for an $8 \times 8$ iWarp system. © 1997 by John Wiley & Sons, Ltd.  相似文献   

5.
Sloth is a simple Unix-based tool for creating and maintaining large C programs built from reusable ‘modules’. Sloth is a collection of UNIX shell commands for creating and editing modules, and for producing executables by linking compiled code from the modules comprising a program. Sloth in a sense extends C by providing module facilities similar to those built in to newer languages such as Modula-II. The Sloth ‘extensions’, however, are at the shell level only. No changes are required in C itself; in fact, the Sloth commands invoke the standard Unix C compiler. A Sloth module contains a set of C procedures and local declarations, a set of global definitions and variable declarations, an initialization routine and an ‘import’ list of other modules containing declarations referred to, but not defined by, the module in question. The Sloth link command has one argument, the name of a ‘root’ directory. The link command automatically identifies all those modules imported directly or indirectly by the root module, checks that the object code for each module is up-to-date and recompiles where necessary. It then creates a main program in which the various initialization routines are executed in the correct order (most primitive first), compiles it and links it with all the object files and produces an executable program. Individual modules can be compiled without any knowledge of the application that uses, directly or indirectly, the module in question. Two applications that both use a collection of modules can therefore share the object code for these modules. The use and implementation of Sloth are presented, as are the experience in using it, programming techniques developed to take full advantage of its facilities, as well as several extensions, either completed or planned.  相似文献   

6.
Adam is a high-level language for parallel processing. It is intended for programming resource scheduling applications, in particular supervisory packages for run-time scheduling of multiprocessing systems. An important design goal was to provide support for implementation of Ada and its run-time environment. Adam has been used to implement Ada task supervision and also as a high-level target language for compilation of Ada tasking. Adam provides facilities corresponding to the Ada sequential constructs (including subprograms, packages, exceptions, generics). In addition, it provides specialized module constructs for implementation of packages that may be shared between parallel processes, and new predefined types for scheduling. The parallel processing constructs of Adam are more primitive than Ada tasking. Strong restrictions are enforced on the ways in which parallel processes can interact. A compiler for Adam has been implemented in MacLisp on DEC PDP-10 computers. Runtime support packages in Adam for scheduling (on a single CPU) and I/O are also provided. The compiler contains a library manipulation facility for separate compilation. The Adam compiler has been used to build an Ada compiler for most of the July 1980 Ada, including task types and rendezvous constructs. This was achieved by implementing the translation of Ada tasking into Adam parallel processing as a preprocessor to the Adam compiler. This present Ada compiler, which has been operational since December 1980, uses a procedure call implementation of tasking. It can be easily modified to other implementations. Compilation of Ada tasking into a high-level target language such as Adam facilitates studying questions of correctness and efficiency of various compilation algorithms, and code optimizations specific to tasking, e.g. elimination of unnecessary threads of control. This paper gives an overview of Adam and examples of its use. Emphasis is placed on the differences from Ada. Experience using Adam to build the experimental Ada system is evaluated. Design of a run-time supervisor in Adam is discussed in detail.  相似文献   

7.
针对现有的视频点播技术无法直接在智慧矿山管控平台中直接使用的问题, 基于HTTP的自适应码率流媒体传输协议与FFmpeg开源库设计一种视频点播技术. 该技术包括客户端模块、Web请求处理模块、多媒体处理模块. 该技术中客户端模块通过设定的视频源信息向Web请求处理模块发送视频请求; Web请求处理模块利用请求中的视频源...  相似文献   

8.
In Java, type resolution is a function that takes a reference to a type occurring in a given context as input and returns the canonical name of that type. This information is fundamental to static analysis—a “must have” function underlying virtually all forms of semantic-based analysis. In the case of Java, this function is also complex and it is quite common to encounter tools where it is implemented incorrectly. This paper presents a novel approach for certifying the correctness of a given type resolution function with respect to an arbitrary Java source code base. The approach uses program transformation to instrument a subject code base in such a way that reflection can then be used to certify the correctness of the type resolution function against the function used by the Java compiler. In this form of certification, the type resolution function of the Java compiler serves as the test oracle.  相似文献   

9.
为提高编译器的自适应性,以应对复杂的体系结构,提出一个结合迭代编译和机器学习的编译框架。编译器可将在优化空间中搜索到的最佳编译选项信息保存到知识库中,并能从知识库中学习获得适合当前程序的最佳编译选项。实例学习算法具有增量式的特点,可有效利用编译过程中积累的数据。通过避免冗余实例入库以及从库中剔除噪声实例,保证学习的精度与效率。  相似文献   

10.
In compiling applications for distributed memory machines, runtime analysis is required when data to be communicated cannot be determined at compile-time. One such class of applications requiring runtime analysis is block structured codes. These codes employ multiple structured meshes, which may be nested (for multigrid codes) and/or irregularly coupled (called multiblock or irregularly coupled regular mesh problems). In this paper, we present runtime and compile-time analysis for compiling such applications on distributed memory parallel machines in an efficient and machine-independent fashion. We have designed and implemented a runtime library which supports the runtime analysis required. The library is currently implemented on several different systems. We have also developed compiler analysis for determining data access patterns at compile time and inserting calls to the appropriate runtime routines. Our methods can be used by compilers for HPF-like parallel programming languages in compiling codes in which data distribution, loop bounds and/or strides are unknown at compile-time. To demonstrate the efficacy of our approach, we have implemented our compiler analysis in the Fortran 90D/HPF compiler developed at Syracuse University. We have experimented with a multi-bloc Navier-Stokes solver template and a multigrid code. Our experimental results show that our primitives have low runtime communication overheads and the compiler parallelized codes perform within 20% of the codes parallelized by manually inserting calls to the runtime library  相似文献   

11.
面向嵌入式零代码基础使用者和低成本开发者,搭建了一个基于STM32的软硬件一体化编程的流程图化的嵌入式系统开发平台.该平台采用STM32作为硬件载体,用QT跨平台C++图形用户界面搭建简单易懂的流程图操作界面.硬件框图界面能驱动嵌入式设备,用编译软件封装功能模块放置功能编辑盒,通过命令行调用编译器,调用外部烧录软件完成下载,代码查看器可直观监视编译全过程.测试结果表明,该平台可方便、快捷解决编程问题.  相似文献   

12.
陈丁楷  陈军  钟庆华 《计算机工程》2011,37(19):273-276,279
重磁异常解释系统的结果需要采用MAPGIS工业制图格式输出。为此,设计基于MAPGIS二次开发的重磁数据解释系统。在Visual Basic 6.0平台上,利用边界点获取等技术对系统进行MAPGIS组件式开发,通过模型编辑模块、重磁异常计算模块和重磁异常曲线显示模块实现系统的主要功能。实验结果表明,该系统能编辑图名及责任表,直接显示MAPGIS格式的图形。  相似文献   

13.
OS虚存技术与双缓冲结合──Sambase对象存储系统   总被引:1,自引:0,他引:1  
高媛  庄严  朱坎  郑振楣  石树刚 《软件学报》1997,8(8):600-605
利用操作系统的虚存技术,在虚存中开辟一块空间(大至整个虚存)作为DBMS的缓冲池.这样实现了DBMS和C++之间的无缝连接,无需特殊的编译程序,应用程序利用普通的座存指针,使用与操作临时对象相同的程序代码来直接快速地操作持久对象,建立在这种虚存技术上的缓冲机制使数据库的大小突破了虚存大小的限制.  相似文献   

14.
Performance and scalability optimization of large HPC applications is currently a labor-intensive, manual process with very low productivity. Major difficulties come from the disaggregated environment for HPC application development: the compiler is only involved in local decisions (core or multithreaded domain), while a library-based, communication-oriented programming model realizes whole-machine parallelism. Realizing any major global change in such a disaggregated environment is very difficult and involves changing large portions of the source code. We present semi-automated techniques, based on structural analysis and rewriting, for performing global transformations on an HPC application source code. We present two case studies using the Self-Consistent Field (SCF) standalone benchmark as well as the Coupled Cluster (CCSD) module (2.9 million lines of Fortran code), a key module of the NWChem computational chemistry application. We demonstrate how structural rewriting techniques can be used to automate transformations that affect multiple sections of the application’s source code. We show that the transformations can be applied in a systematic fashion across the source code bases with minimal manual effort. These transformations improve the scalability of the SCF benchmark by more than two orders of magnitude and the performance of the full CCSD module by a factor of four.  相似文献   

15.
Type checking is considered an important mechanism for detecting programming errors, especially interface errors. This report describes an experiment to assess the defect-detection capabilities of static, intermodule type checking. The experiment uses ANSI C and Kernighan & Ritchie (K&R) C. The relevant difference is that the ANSI C compiler checks module interfaces (i.e., the parameter lists calls to external functions), whereas K&R C does not. The experiment employs a counterbalanced design in which each of the 40 subjects, most of them CS PhD students, writes two nontrivial programs that interface with a complex library (Motif). Each subject writes one program in ANSI C and one in K&R C. The input to each compiler run is saved and manually analyzed for defects. Results indicate that delivered ANSI C programs contain significantly fewer interface defects than delivered K&R C programs. Furthermore, after subjects have gained some familiarity with the interface they are using, ANSI C programmers remove defects faster and are more productive (measured in both delivery time and functionality implemented)  相似文献   

16.
留量分析系统可以应用于网管,也可以作为入侵检测系统的一部分。提出了一种可扩展的流量分析系统,可以使用各种插件来处理报文,以统计流量和检测入侵。PCAP采集端捕获报文后,交处理端分析。该处理端使用加权流量对主机列表进行排序,根据二八原则来减少内存的消耗。然后利用各种插件对报文、处理端结果进一步进行分析。在插件部分,介绍了插件的结构和数据导出插件的原理,该导出插件基于RRD。  相似文献   

17.
Boyle  J.M. Resler  R.D. Winter  V.L. 《Computer》1999,32(5):65-73
As our society becomes more technologically complex, computer systems are finding an alarming number of uses in safety-critical applications. In many such systems, the software component's reliability is essential to the system's safe operation, so it becomes natural to ask, “How can software be made to behave correctly when executed?” Using program transformations to produce trusted software simplifies verification. Program transformations use proven laws to manipulate programs in a manner analogous to algebraic transformations. The authors sketch how a formal method based on program transformations can be used to construct a verified compiler. Such a compiler has been proved to correctly compile any correct program into assembly language. While the compiler itself may not execute efficiently-after all, you need only use the verified compiler the last time you compile a program-the transformational approach should enable the verified compiler to produce efficient assembly code  相似文献   

18.
We describe the application of pD, a small para-functional language that we developed as a high-level programming interface for the parallel computer algebra package PACLIB. pD provides several facilities to express parallel algorithms in a flexible way on different levels of abstraction. The compiler translates a pD module into statically typed parallel C code with explicit task creation and synchronization constructs. This target code can be linked with the PACLIB kernel, the multi-processor runtime system of the computer algebra library SACLIB. The parallelization of several computer algebra algorithms on a shared memory multi-processor demonstrates the elegance and efficiency of this approach.  相似文献   

19.
本文构建了IEEE.802.15.3a推荐使用的基于簇方式的模型――修正S-V信道模型。采用MATLAB下的仿真软件包Simulink创建了信道冲激响应模块,并调用了Simulink自带的其他模块构建了完整的信道模型。仿真结果表明信道模型与IEEE.802.15.3a标准信道模型相符合。模块经封装后可以直接作为信道模型供超宽带信道分析和超宽带高速传输研究的计算机前期模拟实验使用。  相似文献   

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

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