When novice programmer studies programming skills, if one syntactic miss causes many compilation error messages, he/she may not solve the errors easily and this causes disturbance his/her studiying. In this work, we propose a learning support method based on categorization of compilation error mesages. The categorization is formed by causes of the messages which are identified by incremental procedures of compilation and modification. Then the method indicates messages with the categorization. This makes novice programmers to remove syntactic misses with many compilation error messages in one compilation time easier. To validate the effectiveness, we evaluated our method with compilation errors and source codes which the errors are occurred in programming class for a first-year university students. As the result of the evaluation using 1,000 compilation errors, our method categorized error messages of 636 compilation errors.
The UML state machine diagram notation is complex and challenging for learners to understand. Hence, educators assign modeling assignments to learners and provide feedback on “unmet requirements and their causes” inferred from errors in their diagrams. However, learner-created diagrams vary in content and layout, making it difficult for educators to quickly correctly identify unmet requirements. Therefore, this paper proposes a method to semi-automatically identify and measure unmet requirements in learner-created diagrams based on a solution example diagram. The method focuses on modeling assignments that involve selecting expressions for do-activities and triggers from a glossary, dealing with variable processing in guards and effects. It associates requirements with “cases” which represent behaviors that satisfy the requirements by connecting partial diagrams of the solution example. It then identifies unmet requirements and cases in the learner-created diagrams using model checking. Applying the proposed method to 38 learner-created diagrams validly identified “unmet requirements” in all of them.
We are concerned with the formalization of measure theory in the Coq proof assistant. Concretely, we extend MathComp-Analysis, a library for functional analysis built on top of the Mathematical Components library, with standard constructions such as charges and the Lebesgue-Stieltjes measure, and with standard theorems such as the Hahn decomposition theorem and the Radon-Nikodým theorem. These are prerequisites for the formalization of probabilistic programs, of probability theory, and also for other applications such as the formalization of connections between derivatives and integrals.
In this paper, we propose hardware acceleration to improve a performance of scripting programming languages for embedded developments. Scripting programming languages enable more efficient software developments and scripting programming languages are used in several system developments such as IoT developments. However, scripting programming languages are an interpreted language and the program is executed by a virtual machine, so it takes a long time to execute. Therefore, we implemented hardware acceleration for scripting programming language “mruby/c” targeting small embedded devices. The hardware acceleration supports bottleneck processing of a virtual machine of mruby/c, execution speeds are improved. This paper describes the configuration of the hardware acceleration for mruby/c and the performance evaluation.
The opportunities for writing mathematical optimization programs have become much wider in recent years through competitive programming contests. Despite this, frequently-used algorithmic frameworks, i.e., metaheuristics, such as simulated annealing and beam search are not well abstracted by focusing on common features. As a result, the programmer is often forced to write similar programs from scratch. In addition, the programmer has to write complex code, which could be generated automatically, for the computation of the difference in evaluation values. To solve these problems, we have designed and developed a domain-specific language (DSL) that abstracts several typical metaheuristics appropriately and converts the DSL code into C++. The DSL enables the programmer to write efficient mathematical optimization programs in a minimal amount of code. After explaining the design and programming method of the DSL. this paper compares the case written in C++ and the case written in the DSL from the viewpoint of the number of lines required to describe given contents and execution times, and demonstrates the effectiveness of the DSL. Furthermore, we discuss the problems with the current DSL and future extensions for practical use.