作者:
Sato, NNTT
Opt Network Syst Labs Musashino Tokyo 1808585 Japan
Exception handling is not only useful for increasing program readability, but also provides an effective means to check and locate errors. so it increases productivity in largescale program development. Some typical a...
详细信息
Exception handling is not only useful for increasing program readability, but also provides an effective means to check and locate errors. so it increases productivity in largescale program development. Some typical and frequent program errors, such as out-of-range indexing, null dereferencing, and narrowing violations, cause exceptions that are otherwise unlikely to be caught. Moreover, the absence of a catcher for exceptions thrown by API procedures also causes uncaught exceptions. This paper discusses how the exception handling mechanism should be supported by the compiler together with the operating system and debugging facilities. This mechanism is implemented in the compiler by inserting inline check code and accompanying propagation code. One drawback to this approach is the runtime overhead imposed by the inline check code, which should therefore be optimized. However, there has been little discussion of appropriate optimization techniques and efficiency in the literature. Therefore, a new solution is proposed that formulates the optimization problem as a common assertion elimination (CAE). Assertions consist of check code and useful branch conditions. The latter are effective to remove redundant check code. The redundancy can be checked and removed precisely with a forward iterative data flow analysis. Even in performance-sensitive applications such as telecommunications software, figures obtained by a CHILL optimizing compiler indicate that CAE optimizes the code well enough to be competitive with check suppressed code.
This article focuses on Algol as a research agenda and a decisive step in the building of a new scientific community. It provides an analysis of the main French actors involved in the global Algol endeavor-small group...
详细信息
This article focuses on Algol as a research agenda and a decisive step in the building of a new scientific community. It provides an analysis of the main French actors involved in the global Algol endeavor-small groups of computer scientists who participated in its evolution, within academic laboratories, R&D departments of computer companies, user organizations, or learned societies.
Mathematical software is devoted to solve problems involving matrix computation and manipulation. The main problem limiting the reusability of existing mathematical software is the following: programs are often not in...
详细信息
Mathematical software is devoted to solve problems involving matrix computation and manipulation. The main problem limiting the reusability of existing mathematical software is the following: programs are often not initially designed for being reused. Therefore, it is hard to find programs that can be easily reused. In the first part or this paper, we give a programming methodology useful for designing and implementing reusable code. We name unit a portion of code designed and implemented for being reused. Our units are self-contained software components featuring a high degree of information hiding. This way of organizing software facilitates the reuse process and, furthermore, improves the understandability of units. To speed up the implementation process, a system supporting the reusability of units from an existing software library is particularly useful. In the second part of this paper, we report about an easy to use system of this kind.
This paper presents the synchronous real-time language Signal, based on a logical notion of the time, considered as a chronology. It allows, on the one hand, the programming of signal processing algorithms, and, on th...
详细信息
This paper presents the synchronous real-time language Signal, based on a logical notion of the time, considered as a chronology. It allows, on the one hand, the programming of signal processing algorithms, and, on the other hand, the description of architectures. A formal calculus allows verifications of the synchronizations and transformations of the initial program to prepare its simulation on multiprocessor. The presentation is illustrated with the description of an environment for speech processing realized in Signal.
Work aimed at justifying the requirement for a database as an aid to resource estimations for Ministry of Defence Procurement Executive software intensive projects is presented. The work consolidates an earlier study(...
详细信息
Work aimed at justifying the requirement for a database as an aid to resource estimations for Ministry of Defence Procurement Executive software intensive projects is presented. The work consolidates an earlier study(1,2) and uses more recent data collected from 288 MOD projects. The research was initiated to identify and analyse the variables which influence the activities that constitute software development and which determine the cost of software. The earlier study concentrated on the choice of programming language. This study includes proprietary factors and identifies the correlation between the effort during development and the number of executable source lines of code. The recommendations centre on the urgent need to gather and collate data which will assist in the estimation of costs and timescales in procuring software intensive projects.
The Python programming language provides a development environment suitable to both computational and visualization tasks. One of Python's key advantages is that it lets developers use packages that extend the lan...
详细信息
The Python programming language provides a development environment suitable to both computational and visualization tasks. One of Python's key advantages is that it lets developers use packages that extend the language to provide advanced capabilities, such as array and matrix manipulation, image processing, digital signal processing, and visualization. Several popular data exploration and visualization tools have been built in Python, including Visit (***. gov/visit), Paraview (***. org), climate data analysis tools (CDAT; ***/cdat), and VisTrails (*** .org). In our work, we use VisTrails; however, nearly any Python-enabled application can produce similar results. The neuroscience field often uses bothmultimodal data and computationally complex algorithms to analyze data collected from study participants. Here, we investigate a study in which magnetic resonance imaging (MRI) is combined with electroencephalography (EEG) data to examine working memory.
The paper presents a new programming language and its reduction machine. The name of the language is Graal and it is based on the unusual concepts of functional form issued from FP systems and uncurryfied combinator f...
详细信息
The paper presents a new programming language and its reduction machine. The name of the language is Graal and it is based on the unusual concepts of functional form issued from FP systems and uncurryfied combinator from combinatory logic. It does not use variables but is nevertheless readable. Its reduction machine is new, object-oriented, distributed and modular. It runs very efficiently on classical Von Neumann architectures and can be used to implement other functional languages.
Simulation modelling in ecology is a field that is becoming increasingly compartmentalized. Here we propose a Database Approach To Modelling (DATM) to create unity in dynamical ecosystem modelling with differential eq...
详细信息
Simulation modelling in ecology is a field that is becoming increasingly compartmentalized. Here we propose a Database Approach To Modelling (DATM) to create unity in dynamical ecosystem modelling with differential equations. In this approach the storage of ecological knowledge is independent of the language and platform in which the model will be run. To create an instance of the model, the information in the database is translated and augmented with the language and platform specifics. This process is automated so that a new instance can be created each time the database is updated. We describe the approach using the simple Lotka-Volterra model and the complex ecosystem model for shallow lakes PCLake, which we automatically implement in the frameworks OSIRIS, GRIND for MATLAB, ACSL, R, DUFLOW and DELWAQ. A clear advantage of working in a database is the overview it provides. The simplicity of the approach only adds to its elegance. (C) 2014 The Authors. Published by Elsevier Ltd. This is an open access article under the CC BY-NC-SA license (http://***/licenses/by-nc-sa/3.0/).
Picture a language that enables an engineer to articulate mathematically oriented ideas, and then enables him/her, using a small number of strokes on a keyboard, to realise these ideas in the form of an executing algo...
详细信息
Picture a language that enables an engineer to articulate mathematically oriented ideas, and then enables him/her, using a small number of strokes on a keyboard, to realise these ideas in the form of an executing algorithm. Imagine that a line or two of such code achieves as much as a page or two of Fortran or C++, or an extended session with Mathematica or Matlab. That dream and this language are already here, and in the form of software whose core parts are freely downloadable. The language is called J, and the software source is ***.
Programmers writing multithreaded applications in languages like Java and C++ spend much of their time determining what state is shared among threads and how best to protect its integrity within the running applicatio...
详细信息
Programmers writing multithreaded applications in languages like Java and C++ spend much of their time determining what state is shared among threads and how best to protect its integrity within the running application. Finding all the shared state isn't always easy. Assuming the programmer can even find it, he or she must then possess the skills, experience, and patience necessary to determine the best way to serialize access to it. Adding to the difficulty is the locking granularity used to protect shared state. If locking is too coarse-grained, the application tends toward single-threading, because only one thread at a time can obtain the lock that predictably surrounds a large portion of the code. Such applications make poor use of multicore CPUs and tend to be slow. If locking is too fine-grained, on the other hand, the chances for deadlock increase greatly as different threads are increasingly likely to obtain locks in different orders. Getting it right takes time: fine tuning what state needs protection, and at what granularity, sometimes requires months of development time. Idioms, patterns, and frameworks can help out partially, but they introduce restrictions and trade-offs of their own. Ultimately, all it takes is one developer overlooking one small piece of shared state to cause a large system to crash in production - usually at the worst possible time for the most important customer. One way to avoid the problems with shared state is to simply avoid it, but that's impractical in a language like C++ or Java. Doing so requires a combination of libraries or frameworks such as those based on actor models and message passing, as Guerraoui described. It also requires significant programmer discipline because the programming languages themselves can't do anything to help developers completely circumvent shared state. Rather than using the programming language as intended, the developer is forced to write in what's at best a one- off dialect or worse, a who- le
暂无评论