Computer Software
Print ISSN : 0289-6540
Volume 22, Issue 3
Displaying 1-21 of 21 articles from this issue
  • Kazuyuki SHUDO, Hirotake ABE, Satoshi KAMEI, Kazuhiro SHIOZAWA, Hiromi ...
    2005 Volume 22 Issue 3 Pages 3_1-3_7
    Published: 2005
    Released on J-STAGE: September 30, 2005
    JOURNAL FREE ACCESS
  • Satoshi KAMEI
    2005 Volume 22 Issue 3 Pages 3_8-3_18
    Published: 2005
    Released on J-STAGE: September 30, 2005
    JOURNAL FREE ACCESS
    As Internet access line bandwidth has increased, peer-to-peer applications have been increasing and have great impact on networks. In this paper, we review traffic issues for peer-to-peer traffic growth, traffic measurement, traffic control, network design, and operation. And, we suggest sevaral issues for good harmonization between P2P technologies and the internet infrastructure.
    Download PDF (169K)
  • Yutaka MATSUNO, Hiroyuki SATO
    2005 Volume 22 Issue 3 Pages 3_19-3_35
    Published: 2005
    Released on J-STAGE: September 30, 2005
    JOURNAL FREE ACCESS
    This paper presents a type theoretical framework for the verification of compiler optimizations. Although today's compiler optimizations are fairly advanced, there is still not an appropriate theoretical framework for the verification of compiler optimizations. To establish a generalized theoretical framework, we introduce assignment types for variables that represent how the value of variables will be calculated in a program. In this paper, first we introduce our type system. Second we prove soundness of our type system. This implies that the given two programs are equivalent if their return values are equal in types. Soundness ensures that many structure preserving optimizations preserve program semantics. Furthermore, by extending the notion of type equality to order relations, we redefine several optimizations and prove that they also preserve program semantics.
    Download PDF (371K)
  • Yoshiki KINOSHITA
    2005 Volume 22 Issue 3 Pages 3_36
    Published: 2005
    Released on J-STAGE: September 30, 2005
    JOURNAL FREE ACCESS
    Download PDF (19K)
  • Osamu TAKAKI, Hiroshi WATANABE, Makoto TAKEYAMA
    2005 Volume 22 Issue 3 Pages 3_37-3_57
    Published: 2005
    Released on J-STAGE: September 30, 2005
    JOURNAL FREE ACCESS
    The purpose of this paper is to introduce PVS, that is one of proof assistant systems, and the application example. In Sections 1 and 2, we roughly explain PVS and the work flow. In Sections 3 and 4, we review basic concepts of types and proofs that are the most important concepts in PVS. In Section 5, we introduce an application of PVS, that is, we introduce a short program that classifies and interprets certain strings, and verify the program via PVS.
    Download PDF (204K)
  • Naoya NITTA, Hiroyuki SEKI
    2005 Volume 22 Issue 3 Pages 3_58-3_75
    Published: 2005
    Released on J-STAGE: September 30, 2005
    JOURNAL FREE ACCESS
    In this paper, we show an algorithm of LTL (linear temporal logic) model checking for LL-GG-TRS with regular tree valuation. The class LL-GG-TRS is defined as a subclass of term rewriting systems, and extends the class of pushdown systems (PDS) in the sence that pushdown stack of PDS is extended to tree structure. By this extension, we can model recursive programs with exception handling.
    Download PDF (372K)
  • Katsumasa WATANABE, Akihiro INOUE, Mitsuru TOMONO, Kei KURAKAWA, Masak ...
    2005 Volume 22 Issue 3 Pages 3_76-3_91
    Published: 2005
    Released on J-STAGE: September 30, 2005
    JOURNAL FREE ACCESS
    It is not easy to test the programs satisfactorily which are large in size and complex in flow of control. In order to show the correctness of a running program, we could embed the assertion in the program which denotes the properties and conditions of the program at a given timing.
    In this paper, we use Hoare's notation P{Q}R and extend the software design method with pre-check {∼P}, and post-check {∼R}. We realize these facilities to check condition as Active Software with Active Functions. Each active function has a condition which activates the function. The body of an active function is executed whenever the value of its condition becomes true at runtime.
    By means of this design method, we are able not only to assure the correctness of running programs, but also to construct stable programs adaptable to the change of software specification. We also propose a new computer architecture suitable to execute programs with active functions efficiently.
    Download PDF (238K)
  • Kazumasa HONDA
    2005 Volume 22 Issue 3 Pages 3_123-3_133
    Published: 2005
    Released on J-STAGE: August 31, 2005
    JOURNAL FREE ACCESS
    Orlowska's proof system is a sound and complete proof system for homogeneous relation algebras. However, it is not suitable for efficient automatic verification. In this paper, we propose a new proof system which is suitable for implementation and show that it is sound and complete. Moreover, we give some counterexamples showing that termination and completeness of those systems are incompatible with each other.
    Download PDF (160K)
  • Osamu TAKAKI, Makoto TAKEYAMA, Hiroshi WATANABE
    2005 Volume 22 Issue 3 Pages 3_134-3_145
    Published: 2005
    Released on J-STAGE: August 31, 2005
    JOURNAL FREE ACCESS
    We formally verify the correctness of Transition System Reduction (TSR), an algorithm used in modelcheckers for temporal logics. Formalizing TSR as a function, we formulate and prove its correctness within the proof assistant PVS. We show how to use a well-ordering on a certain set in a termination proof for the loop-based TSR algorithm. We further detail TSR's partial-correctness proof. The formal framework for these proofs is a part of our research for a rigorous verification environment for reactive systems.
    Download PDF (222K)
  • Eun-Hye CHOI, Takanori KAWAMOTO, Hiroshi WATANABE
    2005 Volume 22 Issue 3 Pages 3_146-3_153
    Published: 2005
    Released on J-STAGE: August 31, 2005
    JOURNAL FREE ACCESS
    In this paper, we propose a formal method for verifying a requirement of page transitions, which is one of the most essential requirements especially for Web-based applications. The proposed method checks whether a page transition requirement is satisfied in a state transition specification of applications, such as a flowchart or an UML activity diagram, based on model checking. We applied the proposed method to real specifications of a Web application used in a certain company and found several errors including deadlock of the specifications in a short time.
    Download PDF (135K)
  • Yoshinori TANABE, Koichi TAKAHASHI, Mitsuharu YAMAMOTO, Takahiro SATO, ...
    2005 Volume 22 Issue 3 Pages 3_154-3_166
    Published: 2005
    Released on J-STAGE: August 31, 2005
    JOURNAL FREE ACCESS
    Deciding satisfiability plays an important role in abstraction methods used for formal verification such as model checking. In their previous work, the authors developed a decision procedure for judging satisfiability of two-way CTL formulas and applied it to the analysis of concurrent systems such as cellular automata. In this paper we provide its correctness proof and report its efficient implementation, which achieves performance sufficient for practical application owing to the use of BDD, while naive implementations would require large space and time.
    Download PDF (205K)
  • Norio KOBAYASHI, Mircea MARIN, Yoshimasa TANAKA, Hideko URUSHIHARA
    2005 Volume 22 Issue 3 Pages 3_167-3_172
    Published: 2005
    Released on J-STAGE: August 31, 2005
    JOURNAL FREE ACCESS
    We present a DNA sequence analyzing system for a cellular slime mold called Dictyostelium discoideum. The upstream sequences may include cis-elements which are involved in the temporal and spatial regulation of transcription. Our goal is to identify the cis-elements with statistic methods. For this purpose, we have developed a distributed system. Its main components are an alignment program based on dynamic programming which estimates candidates for cis-elements on upstream sequences, and a statistical analyzer which checks if the candidate elements have a statistical property. The system supports SOAP and the components can be deployed and collaborate on the web. In this paper, we mainly discuss the system architecture and evaluate its efficiency.
    Download PDF (137K)
  • Ryo HANAI, Kei OKADA, Taiichi YUASA, Masayuki INABA
    2005 Volume 22 Issue 3 Pages 3_173-3_178
    Published: 2005
    Released on J-STAGE: August 31, 2005
    JOURNAL FREE ACCESS
    Behavior software for real-time robots like humanoids is becoming more and more complex, and it is expected to reduce the development cost. Therefore we are trying to establish a more productive development environment for behavior software by using Lisp, which has benefits such as interactive processing and automatic memory management. To achieve our goal, we need a garbage collector suitable for robot software which is real-time, concurrent, and asynchronous. In this paper, we outline a real-time garbage collector we have implemented for EusLisp, a Lisp implementation designed to develop robot software. We describe in detail how to reduce suspension time and how to proceed with garbage collection effectively without suffering from memory starvation.
    Download PDF (109K)
  • Shuji OHNISHI, Naoyuki TAMURA
    2005 Volume 22 Issue 3 Pages 3_179-3_185
    Published: 2005
    Released on J-STAGE: August 31, 2005
    JOURNAL FREE ACCESS
    Global search and local search are two of major approaches to combinatorial optimization problems. We propose here a new hybrid optimization method of these two approaches. The method (1)divides the search space into small subspaces using disjunctive constraints contained in the problem, (2)wanders from subspace to subspace, (3)optimizes each subspace visited using a global search solver. With the method, one can apply (pseudo) local search to any combinatorial optimization problems which contain disjunctive constraints using only a global search solver. More over, by using constraint programming systems as those global search solvers, one can apply the method just describing the problem without programming. Experimental results showed that the hybrid solver can find better solutions more quickly than existing global search solvers such as clp(FD).
    Download PDF (90K)
  • Toshihiko KOJU, Shingo TAKADA, Norihisa DOI
    2005 Volume 22 Issue 3 Pages 3_186-3_193
    Published: 2005
    Released on J-STAGE: August 31, 2005
    JOURNAL FREE ACCESS
    The reverse execution of programs is a function where programs are executed backward in time. In other words, it is a function that "undoes" effects of previously executed instructions, lines, and procedures. A reversible debugger is a debugger that provides such a functionality. In this paper, we propose a novel approach for the reverse execution of programs written in the C language. Our approach is based on a method called dynamic translation. In dynamic translation, programs are translated and executed on virtual machines concurrently. Our approach has the following advantages compared with existing approaches: (1) our approach enables reverse execution of arbitrary code as long as there is sufficient memory, (2) our approach is very flexible, and (3) our approach allows fast execution. This is because all code to be executed are translated by a flexible virtual machine, and almost all execution is carried out by native machine code generated by the translation.
    Download PDF (84K)
  • Satoshi KOBAYASHI
    2005 Volume 22 Issue 3 Pages 3_194-3_200
    Published: 2005
    Released on J-STAGE: August 31, 2005
    JOURNAL FREE ACCESS
    We propose a logic with a predicate D(x) which means "the value of x is known". This logic can fully describe information hiding and information dependency. A formal system is given, and a Kripke-style semantics is defined for it. We show soundness and completeness results for the semantics.
    Download PDF (120K)
  • Makoto HAMANA
    2005 Volume 22 Issue 3 Pages 3_201-3_207
    Published: 2005
    Released on J-STAGE: August 31, 2005
    JOURNAL FREE ACCESS
    The notion of Σ-monoids is proposed by Fiore, Plotkin and Turi, to give abstract algebraic model of languages with variable binding and substitutions. In this paper, we give a free construction of Σ-monoids. The free Σ-monoid over a given presheaf serves a well-structured term language involving binding and substitutions. Moreover, the free Σ-monoid naturally contains interesting syntactic objects which can be viewed as "metavariables" and "environments". We analyse the term language of the free Σ-monoid by relating it with several concrete systems, especially the λ-calculus extended with contexts.
    Download PDF (136K)
  • Yo FURUKAWA, Etsuya SHIBAYAMA
    2005 Volume 22 Issue 3 Pages 3_208-3_213
    Published: 2005
    Released on J-STAGE: August 31, 2005
    JOURNAL FREE ACCESS
    Upon finding violations of the given security policies, most runtime policy enforcement systems forcibly and suddenly terminate applications. We propose a new technique for disabling application features in advance that might violate the security policies. Our enforcement mechanism uses both static analysis and dynamic checking techniques, and disables violating functions by unplugging modules and by disabling buttons or menu items. We implemented a prototype policy enforcement system by modifying the Eclipse IDE.
    Download PDF (101K)
  • Yoshiki AKASHI, Kiminori MATSUZAKI, Hideya IWASAKI, Kazuhiko KAKEHI, Z ...
    2005 Volume 22 Issue 3 Pages 3_214-3_221
    Published: 2005
    Released on J-STAGE: August 31, 2005
    JOURNAL FREE ACCESS
    Skeletal parallel programming enables programmers to build a parallel program from ready-made components called skeletons (parallel primitives) for which efficient implementations are known to exist, making both the parallel program development and the parallelization process easier. Parallel programs in terms of skeletons are, however, not always efficient, because intermediate data structures which do not appear in the final result may be produced and passed between skeletons. To overcome this problem and make the skeletal parallel programming more practical, this paper proposes a new parallel skeleton library in C++. This system has an optimization mechanism which transforms successive calls of parallel skeletons into a single function call with the help of fusion transformation. This paper describes an implementation of the skeleton library and reports the effects of the optimization.
    Download PDF (110K)
  • Kouhei SAKURAI, Hidehiko MASUHARA, Saeko MATSUURA, Seiichi KOMIYA
    2005 Volume 22 Issue 3 Pages 3_222-3_228
    Published: 2005
    Released on J-STAGE: August 31, 2005
    JOURNAL FREE ACCESS
    This work evaluates association aspects, which are proposed as an extension to AspectJ like aspect-oriented programming languages for supporting aspect instances associated to a group of objects. The primary application of association aspects is to modularize concerns that coordinate objects. However, there have been no practical examples that confirm this. This work applies association aspects for building systems by integrating applications written in object-oriented language and compares their usefulness against other programming styles. In particular, we build an integrated development environment consisting of a text editor, a compiler and a software project management system.
    Download PDF (93K)
  • Yoshiyuki USUI, Shigeru CHIBA
    2005 Volume 22 Issue 3 Pages 3_229-3_234
    Published: 2005
    Released on J-STAGE: August 31, 2005
    JOURNAL FREE ACCESS
    We propose Bugdel, which is a software development environment for enabling insertion of debug code by using Aspect-Orientation. Separating debug code from application program is a well known example of Aspect-Oriented programming (AOP). However, general-purpose AOP languages such as AspectJ are not perfectly suitable for debugging. For example, developers can not insert debug code at any position in source file. Another problem is that local variables in a debugged program are not accessible from debug code written as an aspect. Moreover, developers must study the language specification of AspectJ for just debugging. On the other hand, Bugdel is an Aspect-Oriented system specialized for debugging. It allows developers to specify a line number in a source file for pointcuts and to access local variables available at the pointcut position from advice code. Moreover, Bugdel enables to specify pointcuts through GUI.
    Download PDF (255K)
feedback
Top