Software engineers have long performed source code rejuvenation, or rewriting of obsolete or outdated programming idioms to modern counterparts. Inspired by this practice, the authors propose binary rejuvenation by up...
详细信息
Software engineers have long performed source code rejuvenation, or rewriting of obsolete or outdated programming idioms to modern counterparts. Inspired by this practice, the authors propose binary rejuvenation by updating selected binary files.
In the very early days of C, the compiler written by Dennis Ritchie and supplied with the UNIX operating system entirely defined the language. As the number of users and C implementations grew, however, so too did the...
详细信息
In the very early days of C, the compiler written by Dennis Ritchie and supplied with the UNIX operating system entirely defined the language. As the number of users and C implementations grew, however, so too did the need for a language standard-a contract between users and implementers about what should and should not count as C. This effort began in 1983 with the formation of a committee tasked with producing "an unambiguous and machine-independent definition of the language C" and led to the ANSI C Standard in 1989.1 In retrospect, it was not until this date, 17 years after the first compiler, when C's most notorious language feature slithered into the world: undefined behavior.
We present the basics of the ESTEREL reactive model of synchronous parallel systems. We illustrate the ESTEREL programming style, based on "instantaneous communications and decisions" through the example of ...
详细信息
We present the basics of the ESTEREL reactive model of synchronous parallel systems. We illustrate the ESTEREL programming style, based on "instantaneous communications and decisions" through the example of a mouse handler. We briefly describe the ESTEREL formal semantics and show how programs can be compiled into finite states sequential machines for efficient execution. The up to date implementation is described together with the ESTEREL environment, including simulation, and verification and validation tools. Finally, we report on some ESTEREL uses in various contexts.
作者:
Svore, KMAho, AVCross, AWChuang, IMarkov, ILColumbia Univ
Dept Comp Sci New York NY 10027 USA MIT
Dept Elect Engn & Comp Sci Cambridge MA 02139 USA MIT
Media Lab Ctr Bits & Atoms Quanta Grp Cambridge MA 02139 USA MIT
Dept Phys Cambridge MA 02139 USA Univ Michigan
Dept Elect Engn & Comp Sci Ann Arbor MI 48109 USA
Despite convincing laboratory demonstrations of quantum information processing, it remains difficult to scale because it relies on inherently noisy components. Adequate use of quantum error correction and fault tolera...
详细信息
Despite convincing laboratory demonstrations of quantum information processing, it remains difficult to scale because it relies on inherently noisy components. Adequate use of quantum error correction and fault tolerance theoretically should enable much better scaling, but the sheer complexity of the techniques involved limits what is achievable today. The authors propose a layered software architecture consisting of a four-phase computer-aided design flow that assists with such computations by mapping a high-level language source program representing a quantum algorithm onto a quantum device. By weighing different optimization and error-correction procedures at appropriate phases of the design flow, researchers, algorithm designers, and tool builders can trade off performance and accuracy.
The development of the Ada language precipitated a number of studies of Ada software re-use. This paper presents some of the authors' conclusions from such studies, with references to the available Ada literature.
The development of the Ada language precipitated a number of studies of Ada software re-use. This paper presents some of the authors' conclusions from such studies, with references to the available Ada literature.
In this paper, we examine the object-oriented programming (OOP) capabilities of FORTRAN 90 and their applications to numerical electromagnetic codes. Specifically, we will define an object representing a three-dimensi...
详细信息
In this paper, we examine the object-oriented programming (OOP) capabilities of FORTRAN 90 and their applications to numerical electromagnetic codes. Specifically, we will define an object representing a three-dimensional vector, and illustrate how objects can streamline code development by reducing the number of subroutines and the potential for programmer errors.
Traditional dependence tests detect dependences with linear array subscripts, but only give passive results to those with non-linear expressions. It may result in a multitude of pseudo-dependences. To maximise the par...
详细信息
Traditional dependence tests detect dependences with linear array subscripts, but only give passive results to those with non-linear expressions. It may result in a multitude of pseudo-dependences. To maximise the parallelism of applications and improve an optimising compiler's ability of detecting dependences between program statements, it is necessary to develop a non-linear dependence test to eliminate these pseudo-dependences. This study presents a new non-linear dependence test by analysing the optimal solution of the quadratic subscripts with the index bounds constraints. The authors prove that the non-linear dependences caused by subscripts, which can be written in the form of quadratic programming model, are able to be detected, and introduce a non-linear dependence testing algorithm based on quadratic programming. The effectiveness of this algorithm is verified. The authors developed a prototype implementation of the test with the Open64 compiler and evaluated it using some real world applications from Perfect Club benchmarks and Spec2006 benchmark suites. The experimental results indicate that, compared to existing testing methods, the quadratic programming (QP) test is more efficient for quadratic cases.
Because a loop's body often executes many times, loops provide a rich opportunity for exploiting parallelism. This article explains scheduling techniques and compares results on different architectures. Since para...
详细信息
Because a loop's body often executes many times, loops provide a rich opportunity for exploiting parallelism. This article explains scheduling techniques and compares results on different architectures. Since parallel architectures differ in synchronization overhead, instruction scheduling constraints, memory latencies, and implementation details, determining the best approach for exploiting parallelism can be difficult. To indicate their performance potential, this article surveys several architectures and compilation techniques using a common notation and consistent terminology. First we develop the critical dependence ratio to determine a loop's maximum possible parallelism, given infinite hardware. Then we look at specific architectures and techniques. Loops can provide a large portion of the parallelism available in an application program, since the iterations of a loop may be executed many times. To exploit this parallelism, however, one must look beyond a single basic block or a single iteration for independent operations. The choice of technique depends on the underlying architecture of the parallel machine and the characteristics of each individual loop
The appearance of model-driven engineering (MDE) has invigorated research on domain-specific languages (DSLs) and automatic code generation. MDE uses models to build software, thereby displacing source code as the dev...
详细信息
The appearance of model-driven engineering (MDE) has invigorated research on domain-specific languages (DSLs) and automatic code generation. MDE uses models to build software, thereby displacing source code as the development process\'s main feature. DSLs provide easy, intuitive descriptions of the system using graphic models. In this new context, DSLs facilitate work in the first design stages. In addition, MDE helps reduce DSL development costs. It therefore represents a synergistic union that can significantly improve software development.
In this paper, we present a technique for compact representation of execution sequences in terms of efficient looping constructs. Here, by a looping construct, we mean a compact way of specifying a finite repetition o...
详细信息
In this paper, we present a technique for compact representation of execution sequences in terms of efficient looping constructs. Here, by a looping construct, we mean a compact way of specifying a finite repetition of a set of execution primitives. Such compaction, which can be viewed as a form of hierarchical run-length encoding (RLE), has application in many very large scale integration (VLSI) signal processing contexts, including efficient control generation for Kahn processes on field-programmable gate arrays (FPGAs), and software synthesis for static dataflow models of computation. In this paper, we significantly generalize previous models for loop-based code compaction of digital signal processing (DSP) programs to yield a configurable code compression methodology that exhibits a broad range of achievable tradeoffs. Specifically, we formally develop and apply to DSP hardware and software synthesis a parameterizable loop scheduling approach with compact format, dynamic reconfigurability, and low-overhead decompression.
暂无评论