Concurrent systems, embedded systems in particular, have to handle simultaneous events since multiple events occur in parallel from several hardware devices which also run in parallel. We propose a method to handle the simultaneous events for process description such as CSP. Naive description in process calculus is apt to be complicated because such a process description as CSP models a process as a sequence of the events. This paper gives how to describe the concept of simultaneousness and the method for the verification of the description. We demonstrates the usefulness of the method for handling simultaneous events with the example for vending machine control.
Decision table testing is a technique to develop test cases from descriptions of conditions and actions in software specification documents. We propose, experiment and evaluate a semantic role labeling technique of conditions and actions for automatic software test cases generation. Our approach uses natural language processing to select sentences from the specification based on syntactic similarity, and then to determine conditions and actions through dependency and case analysis. We got experiment results that precision reached from 0.901 to 0.988, recall reached from 0.946 to 0.974 for different style of descriptions, and the workload was reduced to one-sixth of manual work. Our results on case studies show the effectiveness of our technique.
In this paper, we propose a method to decide the secrecy of declassifiers to correct type errors in information flow analysis with an arbitrary secrecy lattice. The declassification which decreases the secrecy of some program constructs is a useful method to resolve illegal information flow. We have to decide the position and secrecy for declassifiers placement. Our previous method  can decide the position but not the secrecy of each declassifier since we assumed the secrecy lattice has only two elements. This paper shows how to derive the secrecy of declassifiers and proves that the derived secrecy always corrects a type error and is the best secrecy.
In recent years, as robotics technology progresses, various mobile robots have been developed to dance with humans. However, up until now there have been no system for interactively creating a performance using multiple mobile robots. Therefore, performance using multiple mobile robots is still difficult. In this study, we construct a mechanism by which a performer can interactively create a performance while he/she considers the correspondence between his/her motion and the mobile robots' movement and light. Specifically, we developed a system that enables performers to freely create performances with multiple robotics balls that can move omunidirectionnally and have full color LEDs. Performers can design both the movements of the robotic balls and the colors of the LEDs. To evaluate the effectiveness of the system, we had four performers use the system to create and demonstrate performances. Moreover, we confirmed that the system performed reliably in a real environment.
Open source software has become a significant factor to industrial software development with regard to economic efficiency and the development life cycle. Software vendor companies participates in the open source communities by using existing open source software as well as providing professional programmers to the open source communities as their jobs. This article introduces two case developments that we ran contracted developments in parallel to open source libraries for economical efficiency of the contracted developments and also concrete applications of the open source libraries. Expectations to OSS engineering will also be presented.
Since 1969 and the Curry-Howard isomorphism, we know that there is a strong relation between computer programs and mathematical proofs: concretely, if we look at the type of a program as a mathematical statement, then the program itself can be regarded as a proof. As a consequence, proof-checking can be performed by type-checking. Based on this theoretical idea, verification tools have been developed that are now mature enough to tackle non-trivial formal verification tasks. The formal verification of the odd order theorem, conducted from 2005 to 2012 by Microsoft Research-INRIA, is an example of realistic formal verification. It became a milestone because this theorem is an important result of group theory whose proof is particularly large. But in fact, the formal libraries known as the Mathematical Components that form the basis of this formalization are an equally important output of this experiment. Indeed, using the Mathematical Components, it becomes possible to carry out rigorous verifications of computer programs that rely on non-trivial mathematics. Such programs are actually important parts of our digitial society. One can think for example of RSA encryption or elliptic-curve cryptography, that are based on number theory, group theory, linear algebra, etc. Still, the Mathematical Components form a huge library whose usage requires specific expertise. In this introductory paper, we explain the basics of the Mathematical Components, using as a running example the Lagrange theorem.
In order to make it possible to construct a 3D model in a virtual space by piling physical blocks, we developed a block system based on capacitance. The block is a capacitor that consists of two layers made of conductive plastic filament and between them a layer made of non-conductive plastic filament, which can be printed out using a 3D printer. This system counts the piled blocks by measuring the capacitance of the piled blocks. Due to this, this system has the merits of being simply constructed, not having electronic devices in the blocks, and counting of the piled blocks without using a camera.
We present ThumbSlide, which is one-handed thumb interaction technique for smartwatch. This technique realizes continuous manipulation by estimating the moving amount of the thumb. Combining with any determining operation (e.g., clench of the hand), our technique enables the user to select a target by only the hand that is wearing a smartwatch. Our system estimates the moving amount of the thumb by muscles' expansion caused by its movement. The muscle expansion is measured by a specially designed wrist-worn sensor device. Moreover, the device can recognize the clench of the hand as a change of the wrist's contour. In this paper, we show the implementation of ThumbSlide, the experimental data of muscles' expansion caused by movement of the thumb, and the estimation accuracy in the moving amount of the thumb.
Although formal verification of compilers is extensively studied, compilers for higher-order functional programming languages with side effects such as input and output are rarely verified. This is due to the difficulty of formalizing the semantics of programs performing infinite input and output. We have mechanically verified the K-normalization of call-by-value higher-order functional programs with recursive functions, pairs, and external function calls that can possibly cause side effects, by the Coq proof assistant. K-normalization is a program transformation that gives explicit names to all subexpressions via let-expressions. Its formalization is non-trivial because of the manipulation of bindings. We defined the meanings of programs as infinite sequences of external function calls, using coinductive big-step operational semantics. We also adopted de Bruijn indices by comparison with other techniques to represent bindings.