September 2009, Volume 9, Number 3

VONDRA, L. — ZAHRADNICKÝ, T. — LÓRENCZ, R.:
System Optimization of Solving a Set of Linear Congruencies

KOTÁSEK, Z. — STRAKA, M.:
The Design of On-line Checkers and Their Use in Verification and Testing

ROYCHOUDHURY, S. — GRAY, J. — ZHANG, J. — BANGALORE, P. — SKJELLUM, A.:
Modularizing Scientific Libraries with Aspect-Oriented and Generative Programming Techniques

ZMARANDA, D. — GABOR, G.:
Computation Model for Real-Time Control Systems Development

CRUZ, D. — BÉRON, M. — HENRIQUES, P. R. — PEREIRA, M. J.:
Code Inspection Approaches for Program Visualization

KOLLÁR, J. — FORGÁČ, M.:
Reflective Monadic Adaptation

KUNŠTÁR, J. — ADAMUŠČÍNOVÁ, I. — HAVLICE, Z.:
Principles of Models Utilization in Software System Life Cycle

KITLEI, R. — LÖVEI, L. — NAGY, T. — HORVÁTH, Z. — KOZSIK, T.:
Layout Preserving Parser for Refactoring in Erlang

OČKAY, M. — HARAKAĽ , M. — LÍŠKA, M.:
Compute Unified Device Architecture: Powerful Parallel Solution for General Purpose Computing

POPESCU, D. E.:
A Proposed Cache Line Implementation Solution with Error/Correcting Capabilities for Managing Cache Coherency in Multiprocessor Systems

Summary:
VONDRA, L. — ZAHRADNICKÝ, T. — LÓRENCZ, R.:
System Optimization of Solving a Set of Linear Congruencies [full paper]

Solving a set of linear equations is a common problem and often it is transformed into a task of solving a set of linear congruencies. Solving a set of linear congruencies also appears frequently in cryptography and therefore effective solving algorithms are needed. All algorithms solving this task have their bottlenecks in calculating modular reduction as they need to divide. The problem with division or floating point remainder instruction is that these instructions have high latencies and are not pipelined. This paper compares several approaches that can be used to perform modular reduction after multiplication in integer and floating point arithmetic and its purpose is to offer a highly system optimized algorithm for modular multiplication with reduction using SIMD processor extensions.

KOTÁSEK, Z. — STRAKA, M.:
The Design of On-line Checkers and Their Use in Verification and Testing
[full paper]

In the article, a survey of our research activities the goal of which is to develop a methodology allowing to design on-line checkers for digital components and communication protocols are described. First, our experiments with PSL language and FoCs tool are demonstrated for simple RT circuits and communication protocols. It is shown how PSL can be used to describe conditions to be checked by an on-line checker of a digital component. It is demonstrated that on-line checkers generated from PSL description demand more sources than the unit under check which is seen as unacceptable result. The principle of our methodology for generating VHDL descriptions of hardware checkers from the formal model is presented, too. The results and compare of both methodologies are described. The possibilities of utilizing these approaches in the design of Fault Tolerant Systems are described in conclusion.


ROYCHOUDHURY, S. — GRAY, J. — ZHANG, J. — BANGALORE, P. — SKJELLUM, A.:
Modularizing Scientific Libraries with Aspect-Oriented and Generative Programming Techniques [full paper]

Scientific computing libraries represent complex software that are often difficult to understand, evolve, and maintain. As systems become larger and more complex with additional requirements, they are subject to decay over a period of time, making it increasingly difficult to address changing stakeholder requirements. New approaches for software engineering and programming language design, such as aspect-oriented software development and generative programming, have been investigated recently as effective techniques for improving modularization of software. In particular, aspects have the potential to interact with many different kinds of language constructs in order to modularize crosscutting concerns. This paper presents an analysis of Blitz++, which is a well-known C++ class library for scientific computing. The analysis demonstrates through various examples how aspectoriented and generative programming techniques can be applied in modularizing crosscutting concerns that have been identified in Blitz++. This improves software maintainability by reducing code size and de-coupling crosscutting concerns to enable easier change evolution.


ZMARANDA, D. — GABOR, G.
Computation Model for Real-Time Control Systems Development [full paper]

The use of modelling graphical tools can be very convenient for development of complex real-time control systems either at the specification level or at the design level. In this paper a framework for analysis multitasking real-time control systems based on the task computational model of the system is developed. Thus, the paper defines the computational model semantics and proposes further a software environment for analyzing and validating temporal behaviour of a real-time system which covers preliminary and detailed design development steps within the software life cycle.

CRUZ, D. — BÉRON, M. — HENRIQUES, P. R. — PEREIRA, M.
Code Inspection Approaches for Program Visualization [full paper]

The aim of this paper is to show the approaches involved in the implementation of two tools of PCVIA project that can be used for Program Comprehension. Both tools use known compiler techniques to inspect code in order to visualize and understand programs’ execution but one of them modifies the source code and the other not. In the non-invasive approach, we convert the source program into an internal decorated (or attributed) abstract syntax tree and then we visualize the structure traversing it, and applying visualization rules at each node according to a pre-defined rule-base. No changes are made in the source code, and the execution is simulated. In the invasive approach, we traverse the source program and instrument it with inspection functions. Those functions, also known as inspectors, provide information about the function-call flow and data usage at runtime (during the actual program execution). This information is collected and gathered in an information repository that is then displayed in a suitable form for navigation. These two different approaches are used respectively by Alma (generic program animation system) and CEAR (C Rooting Algorithm Visualization tool). For each tool several examples of visualization are shown in order to discuss the information that is included in the visualizations, visualization types and the use of Program Animation for Program Comprehension.


KOLLÁR, J. — FORGÁČ, M.:
Reflective Monadic Adaptation [full paper]

The purpose of software evolution is adaptation of a software system according to the new external or internal requirements unlike software maintenance, which purpose is mainly removal of some faults. Software evolution includes also language evolution. We can view on a software system as an integral combination of a program and a language for this program. Program can be viewed as a sequence of statements that are aimed to produce some result. The execution is done by a platform that interprets the program’s sequence of statements. The new result of a computation can be achieved by transformation of a program, an interpreter or both. In this paper we present adaptive experiment in the field of adaptability with utilization of metaprogramming and reflection using functional programming with monads. They are useful interface between functional and imperative world of programming.


KUNŠTÁR, J. — ADAMUŠČÍNOVÁ, I. — HAVLICE, Z.
Principles of Models Utilization in Software System Life Cycle [full paper]

Modeling is one of the most important factors in the process of computer systems development. It is the process of representing real-world concepts in the computer domains as a blueprint for the purpose of software development. Recent trends in software and system development have also revealed the value of developing systems at higher levels of abstraction. Abstract models streamline and speed up not only development but suitable models can also improve maintenance process to be more effective and safe. This paper briefly analyses SysML, which supports development process of complex systems unlike UML which is strictly focused on software. Main part is oriented to presentation of a new approach to model driven system development supporting SysML concept named System Development Unified Process extended by concept of Model-Driven Maintenance (MDM). MDM is based on new architecture of software systems characterized by conjunction of system models with application’s code. MDM supports direct changes of system based on modifications in system’s models.


KITLEI, R. — LÖVEI, L. — NAGY, T. — HORVÁTH, Z. — KOZSIK, T.
Layout Preserving Parser for Refactoring in Erlang [full paper]

This paper describes preprocessor and whitespace-aware tools for parsing and transforming Erlang source code. The presented tools are part of RefactorErl, a refactoring tool for Erlang programs. RefactorErl represents programs as a ”semantic graph” that extends the AST with semantic nodes and edges for efficient information retrieval. The paper focuses on describing the construction of the AST and syntax based transformations of the semantic graph.

OČKAY, M. — HARAKAĽ , M. — LÍŠKA, M.:
Compute Unified Device Architecture: Powerful Parallel Solution for General Purpose Computing [full paper]

CUDA (Compute Unified Device Architecture) is a successful and promising implementation of unified architecture. CUDA simplified the development of parallel, general purpose applications on graphics accelerators and expanded possibilities of parallel processing. We are presenting a brief description of fundamental elements of this architecture and the possibility of its use in parallel environment.


POPESCU, D. E.:
A Proposed Cache Line Implementation Solution with Error/Correcting Capabilities for Managing Cache Coherency in Multiprocessor Systems [full paper]

The paper presents a solution for designing a cache coherency state machine for a multiprocessor system with error/correcting capabilities for the unidirectional errors and the used resources implied by a FPGA implementation of our solution. The cache coherency method used is based on the MESI protocol. The implementation is realized with FPGA by using the ALTERA Program.

 

Publisher

    Faculty of Electrical Engineering and Informatics, Technical University of Košice, Slovak Republic

    Reg. No.: EV 2921/09,
    thematic group B1,
    ISSN 1335-8243
    The editorial board assumes no responsibility for damages suffered due to use of acts, methods, products, instructions for use or other ideas published by the article authors whatsoever.
EAN 9771335824005