1000 resultados para Program Compilation


Relevância:

100.00% 100.00%

Publicador:

Resumo:

Program compilation can be formally defined as a sequence of equivalence-preserving transformations, or refinements, from high-level language programs to assembler code, Recent models also incorporate timing properties, but the resulting formalisms are intimidatingly complex. Here we take advantage of a new, simple model of real-time refinement, based on predicate transformer semantics, to present a straightforward compilation formalism that incorporates real-time constraints. (C) 2002 Elsevier Science B.V. All rights reserved.

Relevância:

70.00% 70.00%

Publicador:

Resumo:

The technique of Abstract Interpretation [11] has allowed the development of sophisticated program analyses which are provably correct and practical. The semantic approximations produced by such analyses have been traditionally applied to optimization during program compilation. However, recently, novel and promising applications of semantic approximations have been proposed in the more general context of program validation and debugging [3,9,7].

Relevância:

70.00% 70.00%

Publicador:

Resumo:

This paper addresses the issue of the practicality of global flow analysis in logic program compilation, in terms of speed of the analysis, precisión, and usefulness of the information obtained. To this end, design and implementation aspects are discussed for two practical abstract interpretation-based flow analysis systems: MA , the MCC And-parallel Analyzer and Annotator; and Ms, an experimental mode inference system developed for SB-Prolog. The paper also provides performance data obtained (rom these implementations and, as an example of an application, a study of the usefulness of the mode information obtained in reducing run-time checks in independent and-parallelism.Based on the results obtained, it is concluded that the overhead of global flow analysis is not prohibitive, while the results of analysis can be quite precise and useful.

Relevância:

70.00% 70.00%

Publicador:

Resumo:

High-level language program compilation strategies can be proven correct by modelling the process as a series of refinement steps from source code to a machine-level description. We show how this can be done for programs containing recursively-defined procedures in the well-established predicate transformer semantics for refinement. To do so the formalism is extended with an abstraction of the way stack frames are created at run time for procedure parameters and variables.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

This paper addresses the issue of the practicality of global flow analysis in logic program compilation, in terms of both speed and precision of analysis. It discusses design and implementation aspects of two practical abstract interpretation-based flow analysis systems: MA3, the MOO Andparallel Analyzer and Annotator; and Ms, an experimental mode inference system developed for SB-Prolog. The paper also provides performance data obtained from these implementations. Based on these results, it is concluded that the overhead of global flow analysis is not prohibitive, while the results of analysis can be quite precise and useful.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

CiaoPP is the abstract interpretation-based preprocessor of the Ciao multi-paradigm (Constraint) Logic Programming system. It uses modular, incremental abstract interpretation as a fundamental tool to obtain information about programs. In CiaoPP, the semantic approximations thus produced have been applied to perform high- and low-level optimizations during program compilation, including transformations such as múltiple abstract specialization, parallelization, partial evaluation, resource usage control, and program verification. More recently, novel and promising applications of such semantic approximations are being applied in the more general context of program development such as program verification. In this work, we describe our extensión of the system to incorpórate Abstraction-Carrying Code (ACC), a novel approach to mobile code safety. ACC follows the standard strategy of associating safety certificates to programs, originally proposed in Proof Carrying- Code. A distinguishing feature of ACC is that we use an abstraction (or abstract model) of the program computed by standard static analyzers as a certifícate. The validity of the abstraction on the consumer side is checked in a single-pass by a very efficient and specialized abstractinterpreter. We have implemented and benchmarked ACC within CiaoPP. The experimental results show that the checking phase is indeed faster than the proof generation phase, and that the sizes of certificates are reasonable. Moreover, the preprocessor is based on compile-time (and run-time) tools for the certification of CLP programs with resource consumption assurances.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

The technique of Abstract Interpretation [13] has allowed the development of sophisticated program analyses which are provably correct and practical. The semantic approximations produced by such analyses have been traditionally applied to optimization during program compilation. However, recently, novel and promising applications of semantic approximations have been proposed in the more general context of program verification and debugging [3],[10],[7].

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Processor emulators are a software tool for allowing legacy computer programs to be executed on a modern processor. In the past emulators have been used in trivial applications such as maintenance of video games. Now, however, processor emulation is being applied to safety-critical control systems, including military avionics. These applications demand utmost guarantees of correctness, but no verification techniques exist for proving that an emulated system preserves the original system’s functional and timing properties. Here we show how this can be done by combining concepts previously used for reasoning about real-time program compilation, coupled with an understanding of the new and old software architectures. In particular, we show how both the old and new systems can be given a common semantics, thus allowing their behaviours to be compared directly.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Previous work on formally modelling and analysing program compilation has shown the need for a simple and expressive semantics for assembler level programs. Assembler programs contain unstructured jumps and previous formalisms have modelled these by using continuations, or by embedding the program in an explicit emulator. We propose a simpler approach, which uses techniques from compiler theory in a formal setting. This approach is based on an interpretation of programs as collections of program paths, each of which has a weakest liberal precondition semantics. We then demonstrate, by example, how we can use this formalism to justify the compilation of block-structured high-level language programs into assembler.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

The Integrated Mass Transit Systems are an initiative of the Colombian Government to replicate the experience of Bogota’s Bus Rapid Transit System —Transmilenio— in large urban areas of the country, most of them over municipal perimeters to provide transportation services to areas undergoing a metropolization process. Management of these large scale metropolitan infrastructure projects involves complex setups that present new challenges in the interaction between stakeholders and interests between municipalities, tiers of government and public and private sectors. This article presents a compilation of the management process of these projects from the national context, based on a document review of the regulatory framework, complemented by interviews with key stakeholders at the national level. Research suggests that the implementation of large-scale metropolitan projects requires a management framework orientated to overcome the traditional tensions between centralism and municipal autonomy.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Field-Programmable Gate Arrays (FPGAs) are becoming increasingly important in embedded and high-performance computing systems. They allow performance levels close to the ones obtained with Application-Specific Integrated Circuits, while still keeping design and implementation flexibility. However, to efficiently program FPGAs, one needs the expertise of hardware developers in order to master hardware description languages (HDLs) such as VHDL or Verilog. Attempts to furnish a high-level compilation flow (e.g., from C programs) still have to address open issues before broader efficient results can be obtained. Bearing in mind an FPGA available resources, it has been developed LALP (Language for Aggressive Loop Pipelining), a novel language to program FPGA-based accelerators, and its compilation framework, including mapping capabilities. The main ideas behind LALP are to provide a higher abstraction level than HDLs, to exploit the intrinsic parallelism of hardware resources, and to allow the programmer to control execution stages whenever the compiler techniques are unable to generate efficient implementations. Those features are particularly useful to implement loop pipelining, a well regarded technique used to accelerate computations in several application domains. This paper describes LALP, and shows how it can be used to achieve high-performance computing solutions.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

The measurements were obtained during two North Sea wide STAR-shaped cruises during summer 1986 and winter 1987, which were performed to investigate the circulation induced transport and biologically induced pollutant transfer within the interdisciplinary research in the project "ZISCH - Zirkulation und Schadstoffumsatz in der Nordsee / Circulation and Contaminant Fluxes in the North Sea (1984-1989)". The inventory presents parameters measured on hydrodynamics, nutrient dynamics, ecosystem dynamics and pollutant dynamics in the pelagic and benthic realm. The research program had the objective of quantifying fluxes of major budgets, especially contaminants in the North Sea. In spring 1986, following the phytoplankton spring bloom, and in late winter 1987, at minimum primary production activity, the North Sea ecosystem was investigated on a station net covering the whole North Sea. The station net was shaped like a star. Sampling started in the centre, followed by the northwest section and moving counter clockwise around the North Sea following the residual currents. By this strategy, a time series was measured in the central North Sea and more synoptic data sets were obtained in the individual sections. Generally advection processes have to be considered when comparing the data from different stations. The entire sampling period lasted for more than six weeks in each cruise. Thus, a time-lag should be considered especially when comparing the data from the eastern and the western part of the central and northern North Sea, where samples were taken at the beginning and at the end of the campaign. The ZISCH investigations represented a qualitatively and quantitatively new approach to North Sea research in several respects. (1) The first simultaneous blanket coverage of all important biological, chemical and physical parameters in the entire North Sea ecosystem; (2) the first simultaneous measurements of major contaminants (metals and organohaline compounds) in the different ecosystem compartments; (3) simultaneous determinations of atmospheric inputs of momentum, energy and matter as important ecosystem boundary conditions; (4) performance of the complex measurement program during two seasons, namely the spring plankton bloom and the subsequent winter period of minimal biological activity; and (5) support of data analysis and interpretation by oceanographic and meteorological numerical models on the same scales.