首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 990 毫秒
1.
《Computer Networks》2007,51(2):480-495
One of the most difficult tasks in software development is that the programmer must implement a feature going through a laborious and error prone process of modifying the programs of other features. The programs of the different features entangle in the same reusable program units of the programming language, making them also difficult to be verified, maintained and reused. We show that if (C1) the features interact, (C2) they are executed by the same process and (C3) they are implemented in a programming language that requires the programmer to specify execution flows, program entanglement is inevitable and the problem cannot be solved by software design alone. Applications with interacting features are common including those that require exception handling.The feature language extensions (FLX) is a set of programming language constructs designed to enable the programmer to develop interacting features as separate and reusable program modules even though the features interact. The programmer uses FLX to specify non-procedural program units, organize the program units into reusable features and integrate features into executable feature packages. He develops a feature based on a model instead of the code of other features. FLX supports an automatic procedure to detect the interaction condition among features; the programmer then resolve the interaction in a feature package without changing feature code. FLX features and feature packages are reusable; the programmer may package different combinations of them and resolve their interactions differently to meet different user needs. An FLX to Java compiler has been implemented; our experience of using it has been very positive.  相似文献   

2.
Sajeev  A.S.M. Hurst  A.J. 《Computer》1992,25(9):57-66
The ways in which a persistent programming language allows the reuse of data and code objects by preserving them as persistent objects is discussed. The programming language chi , which supports persistent programming, is described. The language is innovative in that it elevates capabilities to the programming level and gives the programmer a convenient way to express which objects are persistent independently of the type of object. Thus, it provides orthogonal persistence. A further advantage that follows from such use of capabilities is that chi provides an implementation path for persistence, even upon architectures that do not support capabilities directly.<>  相似文献   

3.
足球机器人决策系统专用程序设计语言   总被引:1,自引:1,他引:0  
介绍了足球机器人决策系统的结构,详细介绍了RS语言系统的组成和翻译器的工作原理,该语言是以功能部件库为依托,在C 语言子集中引入“RS描述语句”和“装配语句”而形成的,使得程序员可以方便的利用功能部件库中的部件来开发软件,减轻编程难度,提高编程效率。  相似文献   

4.
Batson  A. 《Computer》1976,9(11):21-26
No application programmer writes machine-language programs–i.e., strings of ones and zeroes. That primitive pursuit has long been reserved for those few who create the very first modules of a software system for new hardware. Instead, programmers make use of a wide spectrum of symbolic programming languages, ranging from assembly code to high-level languages such as Fortran, Cobol, and the Algol family. Every programming language has semantics which define some abstract machine. For the assembly-language programmer this machine bears a great resemblance to the actual hardware on which the program will be interpreted, but even here the programmer will frequently use system-defined subroutines or macros which represent extensions of the base hardware facilities. The high-level language programmer's abstract machine reflects the control mechanisms and data structures characteristic of the language. The Fortran programmer, for example, can think in terms of multidimensional array structures, DO loops, subprogram facilities, and so on. In principle he need never be concerned with the manner in which his abstract Fortran machine is to be realized by a particular hardware and software system. The user of a modern electronic hand calculator needs no knowledge of the works inside the box, and a modern high-level language system should present to its users an equally consistent environment, completely defined in terms of the syntax and semantics of the source language.  相似文献   

5.
Giulio Iannello 《Software》1990,20(3):243-260
A programming discipline to write abstract data types, iterators and generic modules using the C language is proposed. Program examples are presented making use of features of the ANSI standard for C. The discipline supports object-oriented development by allowing the programmer to implement abstractions through modules with well-defined interfaces. To use the abstractions, the programmer is not required to be aware of how they are implemented.  相似文献   

6.
Cooke  D.E. Rushton  J.N. 《Computer》2009,42(9):56-63
SequenceL is a general-purpose functional programming language that exploits information hiding in language design, shielding the programmer from the need to know how the language is implemented.  相似文献   

7.
Jon Fairbairn 《Software》1987,17(6):379-386
The combined use of user-defined infix operators and higher order functions allows the programmer to invent new control structures tailored to a particular problem area. This paper is to suggest that such a combination has beneficial effects on the ease of both writing and reading programs, and hence can increase programmer productivity. As an example, a parser for a simple language is presented in this style. The compactness of this parser and its notational similarity to the BNF of the language are important advantages of the approach taken. It is hoped that the presentation will be palatable to people unfamiliar with the concepts of functional programming.  相似文献   

8.
Phred is a visual parallel programming language in which programs can be statically analyzed for deterministic behavior. This paper presents the Phred language, techniques for analyzing the language, and a programming environment which supports Phred programming. There are many methods for specifying synchronization and data sharing in parallel programs. The Phred programmer uses graph constructs for describing parallelism, synchronization, and data sharing. These graphs are formally described in this paper as a graph grammar. The use of graphs in Phred provides an intuitive and visual representation for parallel computations. The inadvertent specification of nondeterministic computations is a common error in parallel programming. Phred addresses the issue of determinacy by visually indicating regions of a program where nondeterminacy may exist. This analysis and its integration into a programming environment is presented here. The Phred programming environment supports the specification, analysis, and execution of Phred programs. The distribution of the programming environment itself over several workstations is also described.  相似文献   

9.
Adaptable software systems and architectures give the programmer the ability to create applications that might customize themselves to runtime-emerging requirements. Computational reflection is a programming language technique that is commonly used to achieve the development of this kind of systems. Most runtime reflective systems use Meta-Object Protocols (MOPs). However, MOPs restrict the amount of features an application can customize, and the way they can express its own adaptation. Furthermore, this kind of systems uses a fixed programming language: they develop an interpreter, not a whole language-independent platform.What we present in this paper a non-restrictive reflective platform, called nitrO, that achieves a real computational-environment jump, making every application and language feature adaptable at runtime—without any previously defined restriction. Moreover, the platform has been built using a generic interpreter, in which the reflection mechanism is independent of the language selected by the programmer. Different applications may dynamically adapt each other, regardless of the programming language they use.  相似文献   

10.
A program language can be defined as the language in which computer programs are written, and a programming language as the language used by the programmer to create programs. This paper presents the design of an interactive program development system which uses Pascal as both program and programming language. Principal properties of the system are a complete immediate syntax check, a program-structure oriented editor, incremental compiling techniques, and interactive interpretation and debugging of programs. The syntax check is split into three phases, and the user can change the degree of check wanted. After a change of the program only part of it is recompiled, and only necessary phases of the compiling process are performed.  相似文献   

11.
This paper advances the state-of-the-art in programming models for exploiting task-level parallelism on heterogeneous many-core systems, presenting a number of extensions to the OpenMP language inspired in the StarSs programming model. The proposed extensions allow the programmer to write portable code easily for a number of different platforms, relieving him/her from developing the specific code to off-load tasks to the accelerators and the synchronization of tasks. Our results obtained from the StarSs instantiations for SMPs, the Cell, and GPUs report reasonable parallel performance. However, the real impact of our approach in is the productivity gains it yields for the programmer.  相似文献   

12.
Fork95 is an imperative parallel programming language intended to express algorithms for synchronous shared memory machines (PRAMs). It is based on ANSI C and offers additional constructs to hierarchically divide processor groups into subgroups and manage shared and private address subspaces. Fork95 makes the assembly-level synchronicity of the underlying hardware available to the programmer at the language level. Nevertheless, it supports locally asynchronous computation where desired by the programmer. We present a one pass compiler, fcc, which compiles Fork95 and C programs to the SB-PRAM machine. The SB-PRAM is a lock-step synchronous, massively parallel multiprocessor currently being built at Saarbrücken University, with a physically shared memory and uniform memory access time. We examine three important types of parallel computation frequently used for the parallel solution of real-world problems. While farming and parallel divide-and-conquer are directly supported by Fork95 language constructs, pipelining can be easily expressed using existing language features; an additional language construct for pipelining is not required.  相似文献   

13.
The Java programming language has been a phenomenal success. It's a significant improvement over C and C++, and its libraries for network and GUI programming have introduced large numbers of programmers to previously esoteric disciplines. The recent European Conference for Object-Oriented Programming (ECOOP) included the workshop on object-oriented language engineering for the post-Java era at which researchers gathered to examine languages that diverge from this model. The only way to produce a language over which one programmer can have intellectual mastery is to start with a really tiny kernel and add on what 30 years of experience has shown to be absolutely necessary.  相似文献   

14.
This paper describes a high-level programming system for constructing vector and array processor based software involving the parallel language Actus. The system functions on a cross-computer basis where a programmer develops Actus programs in a form that can be tested and transferred to the chosen supercomputer. The principles involved are, however, applicable to other similar block-structured high-level languages.  相似文献   

15.
刘滔  李仁发  陈宇  刘彦  付彬 《计算机工程》2010,36(4):259-261
当前动态可重构计算系统对程序员编程不透明,且动态可重构资源难以有效利用。针对上述问题,提出一种基于过程级透明编程模型的软硬件协同设计框架。在该框架内,软件开发人员对软硬件协同函数库进行调用,即可用C语言完成系统功能描述。动态软硬件划分算法在程序运行时进行划分,自动选择并调度需要转换到软件或硬件的库函数,通过动态链接器实时切换函数的运行方式,实现由功能描述到系统实现的自动化流程。  相似文献   

16.
Hudak  P. 《Software, IEEE》1988,5(1):54-61
A method is presented that takes functional programming one step further by letting the programmer change operational (parafunctional) details without restructuring or rewriting the program. Parafunctional programming is based on the premise that the what (specification) and the how (implementation) are separately identifiable and maintainable system components. Unlike conventional programming methods, parafunctional programming maintains this separation by metalinguistic constructs in the source language and a programming environment that supports structured editing and high-level debugging  相似文献   

17.
To ease the programming burden and to make parallel programs more maintainable, computational scientists and engineers currently have the options to use software libraries, templates, and general purpose language extensions to compose their application programs. These existing options, unfortunately, have considerable limitations with compatibility, expressive power and delivered performance. To address these issues, we design a domain specific language, GridFOR, for computational problems defined over regular geometric grids. This language allows the programmer to first implement an algorithm on simple data structures, as commonly illustrated in textbooks or papers. The programmer then specifies transformations to extend the algorithm for complex data structures required by the target applications. We build a compiler to automatically translate a GridFOR program to a parallel Fortran version with Message Passing Interface calls. Several optimization techniques are implemented in our compiler to enhance the program speed.  相似文献   

18.
DGLa: A Distributed Graphics Language   总被引:1,自引:0,他引:1       下载免费PDF全文
A distributed graphics programming language called DGLa is presented,which facilitates the development of distributed graphics application.Facilities for distributed programming and graphics support are included in it,It not only supports synchronous and asynchronous communication but also provides programmer with multiple control mechanism for process communication.The graphics support of DGLa is powerful,for both sequential graphics library and parallel graphics library are provided.The design consideration and implementation experience are discussed in detail in this paper.Application examples are also given.  相似文献   

19.
近年来,C++语言的重要性显著提升,被用于各种苛刻环境下的嵌入式系统中。这很大程度上是因为它与生俱来的灵活性,它所得到的广泛支持和它在多种多样硬件环境之间的移植潜力。然而没有一门编程语言可以保证最终生成的执行代码运行之后和开发人员的初衷完全一致。MISRAC++:2008专注于在嵌入式应用中改善使用C++语言时的安全特性。本文对MISRAC++:2008作了概括的介绍,供嵌入式系统应用工程师学习参考。  相似文献   

20.
This paperlintroduces the reader to many of the salient features of the Cedar programming environment, a state-of-the-art progrmming system that combines in a single integrated environment: high quality graphics, a sophisticated editor and document preparation facility, and a variety of tools for the programmer to use in the construction and debugging of his programs. The Cedar programming language [8] is a strongly typed, compiler-oriented language of the Pascal family. What is especially interesting about the Cedar project is that it is one of the few examples where an interactive, experimental programming environment has been built for this kind of language. In the past, such environments have been confined to dynamically typed languages like Lisp and Smalltalk.  相似文献   

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

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