Computer Software
Print ISSN : 0289-6540
Volume 36, Issue 2
Displaying 1-10 of 10 articles from this issue
  • [in Japanese]
    2019 Volume 36 Issue 2 Pages 2_1
    Published: April 24, 2019
    Released on J-STAGE: June 25, 2019
    JOURNAL FREE ACCESS
  • Akimasa MORIHATA, Katsuro INOUE, Shinji KUSUMOTO, Hiroyuki NAKAGAWA, K ...
    2019 Volume 36 Issue 2 Pages 2_2-2_15
    Published: April 24, 2019
    Released on J-STAGE: June 25, 2019
    JOURNAL FREE ACCESS
  • Akimasa MORIHATA
    2019 Volume 36 Issue 2 Pages 2_16-2_20
    Published: April 24, 2019
    Released on J-STAGE: June 25, 2019
    JOURNAL FREE ACCESS
  • Yuto KUMAGAI, Kei ITO, Taku OKUNO
    2019 Volume 36 Issue 2 Pages 2_21-2_27
    Published: April 24, 2019
    Released on J-STAGE: June 25, 2019
    JOURNAL FREE ACCESS

    Recent years, the complication of software development projects has increased the time cost of software maintenance. It is said that reading work of existing source codes is the most time-consuming work in maintenance works, and it is important to increase readability of source codes for cost reduction. There are several reports that it is useful to write the identifier names of variables and functions in Japanese as one way to increase the readability of source codes for Japanese programmers. However, when entering the identifier in Japanese, the burden of input is occured to the programmer. There are two reasons for that. First, there is trouble of character conversion. Seconds, input complementation is hard to work. In this research, we created a tool that enables complementation of Japanese identifier by inputting romaji characters for the purpose of making Japanese identifiers easier to handle. In addition, we showed that we were able to reduce the burden of input by asking subjects to input Japanese identifier using the created tool.

    Download PDF (793K)
  • Naoto KATO, Hideya IWASAKI
    2019 Volume 36 Issue 2 Pages 2_28-2_46
    Published: April 24, 2019
    Released on J-STAGE: June 25, 2019
    JOURNAL FREE ACCESS

    Vertex-centric graph processing is a promising approach for processing large graphs in parallel and distributed ways. Pregel is a well-known model and framework for large-scale graph processing. However, the programmer has to write a Pregel program with explicit message passing between vertices and explicit state controls over vertices, which make the programming more difficult. To resolve this problem, Fregel, a functional domain-specific language, which supports declarative description of vertex-centric computation, was proposed. A Fregel program is translated by the Fregel compiler into a program runnable on existing systems such as Giraph and Pregel+, but the generated program is not sufficiently optimized and accordingly has large overheads, compared to a handwritten one. This paper proposes optimization methods for a generated program by removing unnecessary communications between vertices on the basis of algebraic properties of the operation used for combining messages. The extended Fregel compiler judges whether the operation satisfies the properties and applies the optimizations, if possible, to generate a more efficient program. Through some experiments, we confirmed that the execution times of optimized programs are within 1.3 times of those of handwritten programs.

    Download PDF (676K)
  • Youyou CONG, Kenichi ASAI
    2019 Volume 36 Issue 2 Pages 2_47-2_60
    Published: April 26, 2019
    Released on J-STAGE: June 25, 2019
    JOURNAL FREE ACCESS

    Proof assistants such as Coq and Agda allow the user to precisely encode program invariants using dependent types. These languages, however, often suffer from the lack of side effects. The reason is that when the dynamic behavior of effects flows into types, it may break the principle that types must be statically determined. Nevertheless, since effects are an essential ingredient in everyday programming, researchers have been attempting to allow restricted uses of effects in dependent type systems. We design a dependently typed language with the delimited control constructs shift and reset. These operators can simulate a wide range of side effects, but have only been studied in simply typed settings. We identify a set of restrictions that are necessary for combining shift/reset and dependent types, and build a sound type system of the mixed language. We also define a CPS translation of our language, and prove the type preservation property.

    Download PDF (484K)
  • Taichi KURITA, Takahito AOTO
    2019 Volume 36 Issue 2 Pages 2_61-2_75
    Published: April 26, 2019
    Released on J-STAGE: June 25, 2019
    JOURNAL FREE ACCESS

    Inductive validity is an important characterization of term rewriting systems (TRSs). The notion of inductive validity is also adapted in conditional term rewriting systems (CTRSs). Rewriting induction is a method for proving inductive validity of TRSs originally intended for proving equational conjectures. In this paper, we propose an automated method to prove inductive validity of Horn-clauses (conditional equations) of deterministic oriented CTRSs of type 3. We first show how to deal with proving inductive validity of CTRSs via unraveling transformation from oriented CTRSs to TRSs, and reveal the class of CTRSs for which this approach works. Then, we give an extension of rewriting induction to deal with Horn-clause conjectures, and prove the correctness of the proposed method. We also report on an implementation of the automated inductive theorem prover based on the proposed method, and a preliminary experiment to evaluate the effectiveness of our approach.

    Download PDF (507K)
  • Takehide SOH
    2019 Volume 36 Issue 2 Pages 2_76-2_81
    Published: April 26, 2019
    Released on J-STAGE: June 25, 2019
    JOURNAL FREE ACCESS
  • [in Japanese]
    2019 Volume 36 Issue 2 Pages 2_82-2_83
    Published: April 24, 2019
    Released on J-STAGE: June 25, 2019
    JOURNAL FREE ACCESS
  • Katsuya OGAMI, Keitaro NAKASAI, Hideaki HATA, Kenichi MATSUMOTO
    2019 Volume 36 Issue 2 Pages 2_93-2_105
    Published: April 26, 2019
    Released on J-STAGE: May 24, 2019
    JOURNAL FREE ACCESS

    For software performance improvement, a profiler allows developers to quickly search and identify bottlenecks and leaks that consume much execution time. However, existing profilers require specific execution scenarios to set profiling periods, which is difficult to find out the bottlenecks of the systems. In addition, a current interface showing a list of individual executed methods does not help developers easily understand hierarchical namespace positions of executed modules. To address these issues, we propose a real-time profiler for Java and Android applictions with city-like visualization of dynamic code executions. With our profiler, program executions are visualized as a three-dimensional software city representing the structure and performance of the application. In our case studies, we profile the real Java and Android applications with our profiler to confirm its practicality and effectiveness.

    Download PDF (12489K)
feedback
Top