EDBT 2026 Demo / reviewers in the wild / expert
Shigeru Chiba
dblp:c/ShigeruChiba
· DBLP profile ↗
55ranked-venue papers
11as first author
15since 2021 · last 2026
0000-0002-1058-5941ORCID · conflict
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 37 · 8 first-author · 11 since 2021Systems, architecture and hardware · 7 · 1 first-authorSecurity and privacy · 4Artificial intelligence and machine learning · 3 · 1 first-author · 1 since 2021Databases, data management, data science and information retrieval · 3 · 1 since 2021Graphics, computer vision, multimedia, augmented reality and games · 3 · 2 first-authorHuman-computer interaction and ubiquitous computing · 3 · 3 since 2021Applied, interdisciplinary, general and emerging computing · 2 · 1 since 2021Computer networks · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | LLM-Based Explainable Detection of LLM-Generated Code in Python Programming Courses
Jeonghun Baek, Tetsuro Yamazaki, Akimasa Morihata, Junichiro Mori, Yoko Yamakata, Kenjiro Taura, Shigeru Chiba |
SIGCSE (1) | 7 |
| 2026 | MaskingAgent: Preventing LLM Tutor from Providing Full Solutions in Python Programming Courses
Jeonghun Baek, Tetsuro Yamazaki, Akimasa Morihata, Junichiro Mori, Yoko Yamakata, Kenjiro Taura, Shigeru Chiba |
SIGCSE (2) | 7 |
| 2025 | Yet Another Trace-Based Approach for the Cause of Software Regressions in JavaScript and PythonabstractAddressing the cause of software regressions is an important but difficult task, and has not been well studied. Current tools have some limitations, such as low detection accuracy. In this paper, we try to address these limitations and improve the accuracy of locating causes of software regressions by proposing three new techniques. Our techniques are based on tracing source code changes during program execution. Moreover, we extend current benchmark to a new programming language, and compare our techniques against existing techniques on the extended benchmark. Our new techniques outperform existing techniques in accurately locating the root cause of software regressions. Specifically, our LLMpowered technique achieves the state-of-the-art accuracy. Yuefeng Hu, Tetsuro Yamazaki, Shigeru Chiba |
QRS | 4 |
| 2025 | Leveraging LLM for Detecting and Explaining LLM-generated Code in Python Programming Courses
Jeonghun Baek, Tetsuro Yamazaki, Akimasa Morihata, Junichiro Mori, Yoko Yamakata, Kenjiro Taura, Shigeru Chiba |
SIGCSE (2) | 7 |
| 2025 | Optimize Effect Handling for Tail-resumption with Stack UnwindingabstractAlgebraic effect handling is a superior abstraction for non-local control flows, unifying over the existing non-local control flow constructs such as try/catch, destructors, shared state, async/await and generators. To encourage the adoption of effect handlers, improving their performance is essential. Despite having a number of implementations, they lack enough focus on tail resumptive handlers which leaves space for an improvement. We believe that tail resumptive handlers are invoked more frequently and contributes more to the overall performance of programs. The characteristic of them implies the possibility of an implementation with little overhead over function invocation. We propose eff-unwind, an implementation of effect handling as a C++ library which is optimized for tail resumptive handlers at the cost of others. Our implementation uses function calling and returning for tail resuming for improved efficiency while using stack copying and setjmp for general resuming and stack unwinding for yielding. It eliminates the need of recomposing the stack or preserving memory in the lifecycle of a tail resumptive handler at the cost of a less efficient yielding and not-tail resuming. Additionally, our library exposes a functional interface and executes C++ destructors. We evaluate our approach based on a total of 12 cases containing both tail resumptive handlers and others. The result shows performance improvement for tail resuming and slowdown for others. We also discover that multishot handlers presents challenges with C++ destructors. Yuze Fu, Shigeru Chiba |
SLE | 2 |
| 2024 | Automatic sleep stage classification for sleep apnea patients using an in-home sleep electroencephalography deviceabstractWith the rising awareness of the critical role sleep plays in both health and social well-being, the demand for sleep studies is rapidly increasing.Automatic sleep stage classification is a fundamental part of sleep measurement, and machine learning models have been developed to assist in this process. These models achieve accuracy comparable to that of technicians when using data from healthy individuals. However, sleep patterns in individuals with sleep disorders, such as sleep apnea syndrome (SAS), one of the most common sleep disorders, differ from those of healthy individuals. As a result, existing models trained on healthy individuals’ data do not achieve sufficient accuracy when applied to SAS patients. This is a barrier to clinical application.A recent study using in-home EEG devices showed that technicians can accurately classify sleep stages in SAS cases by considering surrounding epochs. Based on this, we developed a model dedicated to SAS patients that incorporates the temporal context of relevant epochs.We found that this context-aware model significantly improved classification accuracy compared to models that only focused on the target epoch. In the training process using data from 76 severe SAS cases, the model based solely on single-epoch data achieved an accuracy of 71.5%, while the model considering the surrounding epochs achieved an accuracy of 73.7%. The classification accuracy improved across all stages except N3.This approach appears to capture the frequent sleep stage transitions characteristic of SAS. Saki Tsumoto, Jaehoon Seol, Kazumasa Horie, Fusae Kawana, Morie Tominaga, Shigeru Chiba, Hideaki Kondo, Hiroyuki Yoshimine, Masaki Matsubara, Atsuyuki Morishima, Masashi Yanagisawa, Hiroyuki Kitagawa |
IEEE Big Data | 6 |
| 2024 | InferType: A Compiler Toolkit for Implementing Efficient Constraint-Based Type InferenceabstractOver the last several decades, software has been woven into the fabric of every aspect of our society. As software development surges and code infrastructure of enterprise applications ages, it is now more critical than ever to increase software development productivity and modernize legacy applications. Advances in deep learning and machine learning algorithms have enabled numerous breakthroughs, motivating researchers to leverage AI techniques to improve software development efficiency. Thus, the fast-emerging research area of AI for Code has garnered new interest and gathered momentum. In this paper, we present a large-scale dataset CodeNet, consisting of over 14 million code samples and about 500 million lines of code in 55 different programming languages, which is aimed at teaching AI to code. In addition to its large scale, CodeNet has a rich set of high-quality annotations to benchmark and help accelerate research in AI techniques for a variety of critical coding tasks, including code similarity and classification, code translation between a large variety of programming languages, and code performance (runtime and memory) improvement techniques. Additionally, CodeNet provides sample input and output test sets for 98.5% of the code samples, which can be used as an oracle for determining code correctness and potentially guide reinforcement learning for code quality improvements. As a usability feature, we provide several pre-processing tools in CodeNet to transform source code into representations that can be readily used as inputs into machine learning models. Results of code classification and code similarity experiments using the CodeNet dataset are provided as a reference. We hope that the scale, diversity and rich, high-quality annotations of CodeNet will offer unprecedented research opportunities at the intersection of AI and Software Engineering. Senxi Li, Tetsuro Yamazaki, Shigeru Chiba |
ECOOP | 3 |
| 2024 | A Managed Memory System for Micro Controllers with NOR Flash MemoryabstractThis paper presents a managed memory system for micro controllers with only a small amount of memory but with NOR flash memory. This system is targeted at a device such as Raspberry Pi Pico, which is equipped with ARM Coretex M0+, on-chip 264KB SRAM, and 2MB flash memory. To extend an available memory space for user programs, this system provides virtual memory by using NOR flash memory as a backing store. Since writing data to the flash memory is slow and the number of writes is limited during its lifetime, this system cooperates language-level memory management to mitigate these drawbacks. It runs a garbage collector that may move objects aggressively when a memory page is paged-out to flash memory. This paper also proposes a technique named a forwarding bit to efficiently implement the movement of objects stored in flash memory. According to experiments using a prototype of this system implemented for the mruby language on Raspberry Pi Pico, when the available SRAM size is small, this system successfully reduces the number of erasures in flash memory to an average of less than 10% and even improves execution speed by an average of 4 times faster despite overhead of moving objects. Akira Inoue, Tomoharu Ugawa, Shigeru Chiba |
ISMM | 3 |
| 2024 | Interactive Programming for Microcontrollers by Offloading Dynamic Incremental CompilationabstractInteractive execution environments are suitable for trial-and-error basis programming for microcontrollers. However, they are mostly implemented as interpreters to meet microcontrollers' limited memory size and demands for portability. Hence, their execution performance is not sufficiently high. In this paper, we propose offloading dynamic incremental compilation and linking to a host computer connected to a microcontroller. Since the computing resources of the host computer are sufficient to execute incremental dynamic compilation, they are used to enhance the relatively poor computing resources of the microcontroller. To show the feasibility of this idea, we design a small programming language named BlueScript and implement its interactive execution environment. Our experiment reveals that BlueScript executes a program one to two orders of magnitude faster than MicroPython, while its interactivity is comparable to that of MicroPython despite using dynamic incremental compilation. Fumika Mochizuki, Tetsuro Yamazaki, Shigeru Chiba |
MPLR | 3 |
| 2024 | Bugfox: A Trace-Based Analyzer for Localizing the Cause of Software Regression in JavaScriptabstractSoftware regression has been a persistent issue in software development. Although numerous techniques have been proposed to prevent regression from being introduced before release, few are available to address regression as it occurs post-release. Therefore, identifying the root cause of regression has always been a time-consuming and labor-intensive task. We aim to deliver automated solutions for solving regressions based on tracing. We present Bugfox, a trace-based analyzer that reports functions as the possible cause of regression in JavaScript. The idea is to generate runtime trace with instrumented programs, then extract the differences between clean and regression traces, and apply two heuristic strategies based on invocation order and frequency to identify the suspicious functions among differences. We evaluate our approach on 12 real-world regressions taken from the benchmark BugsJS. First strategy solves 6 regressions, and second strategy solves other 4 regressions, resulting in an overall accuracy of 83% on test cases. Notably, Bugfox solves each regression in under 1 minute with minimal memory overhead (<200 Megabytes). Our findings suggest Bugfox could help developers solve regression in real development. Yuefeng Hu, Hiromu Ishibe, Tetsuro Yamazaki, Shigeru Chiba |
SLE | 5 |
| 2024 | Reducing Write Barrier Overheads for Orthogonal PersistenceabstractOrthogonal persistence implemented with non-volatile memory (NVM) allows the programmers to easily create persistent containers, which are container data-structures preserved even after the process terminations due to a system crash. However, the state-of-the-art technique of its implementation in multithreaded languages rely on the instruction, which limits out-of-order execution. This overhead is applied regardless of the use of persistent objects. We propose a technique that does not disturb out-of-order execution. Instead, we let the thread that is attempting to make an object persistent synchronize with all the other threads by handshaking. Furthermore, we propose a technique to eliminate the redundancy of that synchronization by a novel static analysis called persistence-aware escape analysis. We implemented both the proposed techniques in RBP (replication based persistency) implemented in the HotSpot VM of OpenJDK. As a result of our evaluation, we observed that the execution speed was faster than RBP by 23.0objects, and it was only 10.6which does not support orthogonal persistence. When a program used persistent objects, execution speed was almost the same as RBP. These results demonstrate that orthogonal persistence using NVM can be implemented in a practical way. Omkar Dilip Dhawal, V. Krishna Nandivada, Shigeru Chiba, Tomoharu Ugawa |
SLE | 4 |
| 2023 | Collecting Cyclic Garbage across Foreign Function Interfaces: Who Takes the Last Piece of Cake?abstractA growing number of libraries written in managed languages, such as Python and JavaScript, are bringing about new demand for a foreign language interface (FFI) between two managed languages. Such an FFI allows a host-language program to seamlessly call a library function written in a foreign language and exchange objects. It is often implemented by a user-level library but such implementation cannot reclaim cyclic garbage, or a group of objects with circular references, across the language boundary. This paper proposes Refgraph GC , which enables FFI implementation that can reclaim cyclic garbage. Refgraph GC coordinates the garbage collectors of two languages and it needs to modify the managed runtime of one language only. It does not modify that of the other language. This paper discusses the soundness and completeness of the proposed algorithm and also shows the results of the experiments with our implementation of FFI with Refgraph GC. This FFI allows a Ruby program to access a JavaScript library. Tetsuro Yamazaki, Tomoki Nakamaru, Ryota Shioya, Tomoharu Ugawa, Shigeru Chiba |
Proc. ACM Program. Lang. | 5 |
| 2022 | An Anomaly-Based Approach for Detecting Modularity Violations on Method PlacementabstractThis paper presents a technique for detecting an anomaly in method placements in Java packages. This anomaly detection helps code reviewers discover a method belonging to an inappropriate package in modularity when developers commit changes in their software development projects. Moving such a method to an appropriate package will contribute to the maintenance of good modularity in their projects. This is particularly beneficial in the later stage of development, where modularity is often violated by adding new features not anticipated in the initial plan. Our technique is based on few-shot classification in machine learning. This paper empirically reveals that our neural network model can detect an anomaly in method placements and a significant portion of the anomalies is considered as inappropriate method placements in modularity. Our model can discover even a method placement that violates a project-specific coding rule that its developers would choose for some reason of maintainability or readability. Our technique is useful for maintaining the consistency in such a project-specific rule. Kazuki Yoda, Tomoki Nakamaru, Soramichi Akiyama, Shigeru Chiba |
QRS | 4 |
| 2022 | People Do Not Want to Learn a New Language But a New Library (Keynote)abstractOne day, a student raised a question. I spent many years to learn a programming language. Why do you try to develop yet another language? I don’t wanna learn no more language. One is enough! My answer was, well, don’t you hate to learn a new library, either? People seem to accept learning a new library as necessary work although they might not be happy to learn a new language (they might not be very happy to learn a new library, either, but they seem much happier). However, a modern library is something we should consider as a programming language. During this talk, I will survey technology around language-like libraries, which are often called embedded domain specific languages. Then I will present my vision of where we, programming-language researchers, should go for further study. Shigeru Chiba |
SLE | 1 |
| 2022 | Yet Another Generating Method of Fluent Interfaces Supporting Flat- and Sub-chaining StylesabstractResearchers discovered methods to generate fluent interfaces equipped with static checking to verify their calling conventions. This static checking is done by carefully designing classes and method signatures to make type checking to perform a calculation equivalent to syntax checking. In this paper, we propose a method to generate a fluent interface with syntax checking, which accepts both styles of method chaining; flat-chaining style and sub-chaining style. Supporting both styles is worthwhile because it allows programmers to wrap out parts of their method chaining for readability. Our method is based on grammar rewriting so that we could inspect the acceptable grammar. In conclusion, our method succeeds generation when the input grammar is LL(1) and there is no non-terminal symbol that generates either only an empty string or nothing. Tetsuro Yamazaki, Tomoki Nakamaru, Shigeru Chiba |
SLE | 3 |
| 2020 | An Empirical Study of Method Chaining in JavaabstractWhile some promote method chaining as a good practice for improving code readability, others refer to it as a bad practice that worsens code quality. In this paper, we first investigate whether method chaining is a programming style accepted by real-world programmers. To answer this question, we collected 2,814 Java repositories on GitHub and analyzed historical trends in the frequency of method chaining. The results of our analysis revealed the increasing use of method chaining; 23.1% of method invocations were part of method chains in 2018, whereas only 16.0% were such invocations in 2010. We then explore language features that are helpful to the method-chaining style but have not been supported yet in Java. For this aim, we conducted manual inspections of method chains that are randomly sampled from the collected repositories. We also estimated how effective they are to encourage the method-chaining style if they are adopted in Java. Tomoki Nakamaru, Tomomasa Matsunaga, Tetsuro Yamazaki, Soramichi Akiyama, Shigeru Chiba |
MSR | 5 |
| 2019 | Foreign language interfaces by code migrationabstractA foreign function interface (FFI) is a classical abstraction used for interfacing a programming language with another foreign language to reuse its libraries. This interface is important for a new (or non prevailing) language because it lacks libraries and thus needs to borrow libraries written in a foreign language when the programmer develops a practical application in that new language. However, a modern library often exploits unique language mechanisms of the implementation language. This makes the use of the library difficult through a simple function call from that new language. This paper presents our approach to this problem. We use an embedded domain specific language (DSL), which is designed to resemble the foreign language, and migrate the DSL code to access to the library written in the foreign language. This paper also presents our framework Yadriggy for developing the DSL from Ruby to a foreign language environment. The framework supports DSL-specific syntax checking for the migrated DSL code. Shigeru Chiba |
GPCE | 1 |
| 2019 | Cross-language clone detection by learning over abstract syntax treesabstractClone detection across programs written in the same programming language has been studied extensively in the literature. On the contrary, the task of detecting clones across multiple programming languages has not been studied as much, and approaches based on comparison cannot be directly applied. In this paper, we present a clone detection method based on semi-supervised machine learning designed to detect clones across programming languages with similar syntax. Our method uses an unsupervised learning approach to learn token-level vector representations and an LSTM-based neural network to predict whether two code fragments are clones. To train our network, we present a cross-language code clone dataset - which is to the best of our knowledge the first of its kind - containing around 45,000 code fragments written in Java and Python. We evaluate our approach on the dataset we created and show that our method gives promising results when detecting similarities between code fragments written in Java and Python. Daniel Perez 0001, Shigeru Chiba |
MSR | 2 |
| 2019 | Generating a fluent API with syntax checking from an LR grammarabstractThis paper proposes a fluent API generator for Scala, Haskell, and C++. It receives a grammar definition and generates a code skeleton of the library in the host programming language. The generated library is accessed through a chain of method calls; this style of API is called a fluent API. The library uses the host-language type checker to detect an invalid chain of method calls. Each method call is regarded as a lexical token in the embedded domain specific language implemented by that library. A sequence of the lexical tokens is checked and, if the sequence is not acceptable by the grammar, a type error is reported during compilation time. A contribution of this paper is to present an algorithm for generating the code-skeleton for a fluent API that reports a type error when a chain of method calls to the library does not match the given LR grammar. Our algorithm works in Scala, Haskell, and C++. To encode LR parsing, it uses the method/function overloading available in those languages. It does not need an advanced type system, or exponential compilation time or memory consumption. This paper also presents our implementation of the proposed generator. Tetsuro Yamazaki, Tomoki Nakamaru, Kazuhiro Ichikawa, Shigeru Chiba |
Proc. ACM Program. Lang. | 4 |
| 2017 | Resource Cages: A New Abstraction of the Hypervisor for Performance Isolation Considering IDS OffloadingabstractSince Infrastructure-as-a-Service (IaaS) clouds contain many vulnerable virtual machines (VMs), intrusion detection systems (IDSes) should be run for all the VMs. IDS offloading is promising for this purpose in that it allows IaaS providers to run IDSes outside VMs without any cooperation of users. However, IDS offloading makes performance isolation between VMs difficult because IDSes offloaded from a VM consume resources outside the VM. As a result, the total resource usage of the VM and the offloaded IDSes exceeds the limits configured to the VM. In this paper, we propose a new abstraction of the hypervisor, called a resource cage. A resource cage can manage a VM and offloaded IDSes as a group and achieves performance isolation between resource cages, e.g., CPU limits, CPU shares, and memory limits. In addition to performance isolation, it keeps high resource utilization for a VM and offloaded IDSes as much as possible. We have implemented resource cages in Xen and KVM. Our experiments showed that resource cages could control the resource usage of a VM and offloaded IDSes effectively. Kenichi Kourai, Sungho Arai, Kousuke Nakamura, Seigo Okazaki, Shigeru Chiba |
CloudCom | 5 |
| 2017 | SEMem: Deployment of MPI-Based In-Memory Storage for Hadoop on Supercomputers
Thanh-Chung Dao, Shigeru Chiba |
Euro-Par | 2 |
| 2017 | Reducing calling convention overhead in object-oriented programming on embedded ARM thumb-2 platforms
Joseph Caldwell, Shigeru Chiba |
GPCE | 2 |
| 2017 | Silverchain: a fluent API generatorabstractThis paper presents a tool named Silverchain, which generates class definitions for a fluent API from the grammar of the API. A fluent API is an API that is used by method chaining and its grammar is a BNF-like set of rules that defines method chains accepted in type checking. Fluent APIs generated by Silverchain provide two styles of APIs: One is for building a chain by concatenating all method calls in series. The other is for building a chain from partial chains by passing child chains to method calls in the parent chain as their arguments. To generate such a fluent API, Silverchain first translates given grammar into a set of deterministic pushdown automata without ϵ-transitions, then encodes these automata into class definitions. Each constructed automata corresponds to a nonterminal in given grammar and recognizes symbol sequences produced from its corresponding nonterminal. Tomoki Nakamaru, Kazuhiro Ichikawa, Tetsuro Yamazaki, Shigeru Chiba |
GPCE | 4 |
| 2016 | HPC-Reuse: Efficient Process Creation for Running MPI and Hadoop MapReduce on SupercomputersabstractHadoop and Spark analytics are used widely for large-scale data processing on commodity clusters. It is better choice to run them on supercomputers in aspects of productivity and maturity rather than developing new frameworks from scratch. YARN, a key component of Hadoop, is responsible for resource management. YARN adopts dynamic management for job execution and scheduling. We identify three Ds (3D) dynamic characteristics from YARN-like management: on-Demand (processes created during job execution), Diverse job, and Detailed (fine-grained allocation). The dynamic management does not fit into typical resource managers on supercomputers, for example PBS, that are identified having three Ss (3S) static characteristics: Stationary (no newly created process during execution), Single job, and Shallow (coarse-grained allocation). In this paper, we propose HPC-Reuse located between YARN-like and PBS-like resource managers in order to provide better support of dynamic management. HPC-Reuse helps avoid process creation, such as MPI-Spawn, and enable MPI communication over Hadoop processes. Our experimental results show that HPC-Reuse can reduce execution time of iterative PageRank by 26%. Thanh-Chung Dao, Shigeru Chiba |
CCGrid | 2 |
| 2015 | Enabling the Automation of Handler Bindings in Event-Driven ProgrammingabstractIn event-driven programming we can react to an event by binding methods to it as handlers, but such a handler binding in current event systems is explicit and requires explicit reason about the graph of event propagation even for straightforward cases. On the other hand, the handler binding in reactive programming is implicit and constructed through signals. Recent approaches to support either event-driven programming or reactive programming show the need of using both the two styles in a program. We propose an extension to expand event systems to support reactive programming by enabling the automation of handler bindings. With such an extension programmers can use events to cover both the implicit style in reactive programming and the explicit style in event-driven programming. We first describe the essentials of reactive programming, signals and signal assignments, in terms of events, handlers, and bindings, then point out the lack of automation in existing event systems. Unlike most research activities we expand event systems to support signals rather than port signals to event systems. In this paper we also show a prototype implementation and translation examples to evaluate the concept of automation. YungYu Zhuang, Shigeru Chiba |
COMPSAC | 2 |
| 2015 | Almost first-class language embedding: taming staged embedded DSLsabstractEmbedded domain-specific languages (EDSLs), inheriting a general-purpose language's features as well as look-and-feel, have traditionally been second-class or rather non-citizens in terms of host-language design. This makes sense when one regards them to be on the same level as traditional, non-EDSL library interfaces. However, this equivalence only applies to the simplest of EDSLs. In this paper we illustrate why this is detrimental when moving on to EDSLs that employ staging, i.e. program reification, by example of various issues that affect authors and users alike. We believe that if EDSLs are to be considered a reliable, language-like interface abstraction, they require exceptional attention and design scrutiny. Instead of unenforceable conventions, we advocate the acceptance of EDSLs as proper, i.e. almost first-class, citizens while retaining most advantages of pure embeddings. As a small step towards this goal, we present a pragmatic framework prototype for Java. It is based on annotations that explicate and document membership to explicit EDSL entities. In a nutshell, our framework identifies (annotated) method calls and field accesses as EDSL terms and dynamically constructs an abstract-syntax representation, which is eventually passed to a semantics-defining back end implemented by the EDSL author. Maximilian Scherr, Shigeru Chiba |
GPCE | 2 |
| 2015 | Inverse macro in ScalaabstractWe propose a new variant of typed syntactic macro systems named inverse macro, which improves the expressiveness of macro systems. The inverse macro system enables to implement operators with complex side-effects, such as lazy operators and delimited continuation operators, which are beyond the power of existing macro systems. We have implemented the inverse macro system as an extension to Scala 2.11. We also show the expressiveness of the inverse macro system by comparing two versions of shift/reset, bundled in Scala 2.11 and implemented with the inverse macro system. Hiroshi Yamaguchi, Shigeru Chiba |
GPCE | 2 |
| 2015 | Calculation coverage testing in scientific applicationsabstractA typical implementation of scientific applications includes a large number of iterative calculations. For performance optimization, these calculations are often partitioned, grouped, and reordered for execution. Since this refactoring is repeatedly performed during development, it is one of the major source of bugs and thus tool support is necessary for debugging. This study discusses this problem and proposes tool support through a testing framework. This testing framework can help developers perform the tests we call calculation coverage testing. It investigates whether the grouped calculations cover all the calculations performed by the original (and often naively implemented) program. It also investigates whether their execution order is correct. To demonstrate this idea, we also presents HPCUnit, our prototype testing framework for Java, and then reports an empirical study applying it to the Java Grande Forum Benchmark Suite. Yoshiki Sato, Shumpei Hozumi, Shigeru Chiba |
ISSTA | 3 |
| 2014 | Implicit Staging of EDSL Expressions: A Bridge between Shallow and Deep Embedding
Maximilian Scherr, Shigeru Chiba |
ECOOP | 2 |
| 2011 | Fast Software Rejuvenation of Virtual Machine MonitorsabstractAs server consolidation using virtual machines (VMs) is carried out, software aging of virtual machine monitors (VMMs) is becoming critical. Since a VMM is fundamental software for running VMs, its performance degradation or crash failure affects all VMs running on top of it. To counteract such software aging, a proactive technique called software rejuvenation has been proposed. A simple example of rejuvenation is to reboot a VMM. However, simply rebooting a VMM is undesirable because that needs rebooting operating systems on all VMs. In this paper, we propose a new technique for fast rejuvenation of VMMs called the warm-VM reboot. The warm-VM reboot enables efficiently rebooting only a VMM by suspending and resuming VMs without saving the memory images to persistent storage. To achieve this, we have developed two mechanisms: on-memory suspend/resume of VMs and quick reload of a VMM. Compared with a normal reboot, the warm-VM reboot reduced the downtime by 74 percent at maximum. It also prevented the performance degradation due to cache misses after the reboot, which was 52 percent in case of a normal reboot. In a cluster environment, the warm-VM reboot achieved higher total throughput than the system using VM migration and a normal reboot. Kenichi Kourai, Shigeru Chiba |
IEEE Trans. Dependable Secur. Comput. | 2 |
| 2010 | Optimizing dynamic dispatch with fine-grained state trackingabstractDynamic mixin is a construct available in Ruby and other dynamic languages. It can be used as a base to implement a range of programming paradigms, such as dynamic aspect-oriented programming and context-oriented programming. However, the performance characteristics of current implementation of dynamic mixin in Ruby leaves much to be desired under condition of frequent dynamic mixin operations, global method cache and inline cache misses incur significant overhead. In this work we implemented fine-grained state tracking for CRuby 1. and were able to improve performance by more than six times on the microbenchmark exercising extreme case flowing 4 times to global method cache clearing, 28% to fine-grained state tracking and further 12% to inline cache miss elimination by caching alternating states. We demonstrated a small application using dynamic mixins that gets 48% improvement in performance from our techniques. We also implemented in C a more general delegation object models and proposed an algorithm of thread-local caching, which allows to reduce inline cache misses while permitting thread-local delegation changes. Salikh Zakirov, Shigeru Chiba, Etsuya Shibayama |
DLS | 2 |
| 2010 | Mostly modular compilation of crosscutting concerns by contextual predicate dispatchabstractThe modularity of aspect-oriented programming (AOP) has been a controversial issue. To investigate this issue compared with object-oriented programming (OOP), we propose a simple language providing AOP mechanisms, which are enhanced traditional OOP mechanisms. We also present its formal system and then show that programs in this language can be only mostly modularly (i.e. separately) typechecked and compiled.We mention a source of this unmodularity and discuss whether or not it is appropriate to claim that AOP breaks modularity compared with OOP. Shigeru Chiba, Atsushi Igarashi, Salikh Zakirov |
OOPSLA | 1 |
| 2010 | A Secure System-Wide Process Scheduler across Virtual MachinesabstractServer consolidation using virtual machines (VMs) makes it difficult to execute processes as the administrators intend. A process scheduler in each VM is not aware of the other VM and schedules only processes in one VM independently. To solve this problem, process scheduling across VMs is necessary. However, such system-wide scheduling is vulnerable to denial-of-service (DoS) attacks from a compromised VM against the other VMs. In this paper, we propose the Monarch scheduler, which is a secure system-wide process scheduler running in the virtual machine monitor (VMM). The Monarch scheduler monitors the execution of processes and changes the scheduling behavior in all VMs. To change process scheduling from the VMM, it manipulates run queues and process states consistently without modifying guest operating systems. Its hybrid scheduling mitigates DoS attacks by leveraging performance isolation among VMs. We confirmed that the Monarch scheduler could achieve useful scheduling and the overheads were small. Hidekazu Tadokoro, Kenichi Kourai, Shigeru Chiba |
PRDC | 3 |
| 2009 | Extending AspectJ for separating regionsabstractSynchronization is a good candidate for an aspect in aspect-oriented programming (AOP) since programmers have to choose the best granularity of synchronization for the underlying hardware to obtain the best execution performance. If synchronization is an aspect, programmers can change the synchronization code independently of the rest of the program when the program runs on different hardware. However, existing AOP languages such as AspectJ have problems. They cannot select an arbitrary code region as a join point. Moreover, they cannot enforce weaving of a synchronization aspect. Since it is an alternative feature in feature modeling, at least one of available synchronization aspects must be woven. Otherwise, the program would be thread-unsafe. Since an aspect in AspectJ is inherently optional, programmers must be responsible for weaving it. To solve these problems, this paper proposes two new constructs for AspectJ, regioncut and assertions for advice. Regioncut selects arbitrary code region as a join point and assertion for advice enforces weaving a mandatory advice. We implemented these constructs by extending the AspectBench compiler. We evaluated the design of our constructs by applying them to two open-source software products, Javassist and Hadoop. Shumpei Akai, Shigeru Chiba |
GPCE | 2 |
| 2009 | BitVisor: a thin hypervisor for enforcing i/o device securityabstractVirtual machine monitors (VMMs), including hypervisors, are a popular platform for implementing various security functionalities. However, traditional VMMs require numerous components for providing virtual hardware devices and for sharing and protecting system resources among virtual machines (VMs), enlarging the code size of and reducing the reliability of the VMMs.This paper introduces a hypervisor architecture, called parapass-through, designed to minimize the code size of hypervisors by allowing most of the I/O access from the guest operating system (OS) to pass-through the hypervisor, while the minimum access necessary to implement security functionalities is completely mediated by the hypervisor. This architecture uses device drivers of the guest OS to handle devices, thereby reducing the size of components in the hypervisor to provide virtual devices. This architecture also allows to run only single VM on it, eliminating the components for sharing and protecting system resources among VMs.We implemented a hypervisor called BitVisor and a parapass-through driver for enforcing storage encryption of ATA devices based on the parapass-through architecture. The experimental result reveals that the hypervisor and ATA driver require approximately 20 kilo lines of code (KLOC) and 1.4 KLOC respectively. Takahiro Shinagawa, Hideki Eiraku, Kouichi Tanimoto, Kazumasa Omote, Shoichi Hasegawa, Takashi Horie, Manabu Hirano, Kenichi Kourai, Yoshihiro Oyama, Eiji Kawai, Kenji Kono, Shigeru Chiba, Yasushi Shinjo, Kazuhiko Kato |
VEE | 12 |
| 2007 | A Fast Rejuvenation Technique for Server Consolidation with Virtual MachinesabstractAs server consolidation using virtual machines (VMs) is carried out, software aging of virtual machine monitors (VMMs) is becoming critical. Performance degradation or crash failure of a VMM affects all VMs on it. To counteract such software aging, a proactive technique called software rejuvenation has been proposed. A typical example of rejuvenation is to reboot a VMM. However, simply rebooting a VMM is undesirable because that needs rebooting operating systems on all VMs. In this paper, we propose a new technique for fast rejuvenation of VMMs called the warm-VM reboot. The warm-VM reboot enables efficiently rebooting only a VMM by suspending and resuming VMs without accessing the memory images. To achieve this, we have developed two mechanisms: on-memory suspend/resume of VMs and quick reload of VMMs. The warm- VM reboot reduces the downtime and prevents the performance degradation due to cache misses after the reboot. Kenichi Kourai, Shigeru Chiba |
DSN | 2 |
| 2006 | A dynamic aspect-oriented system for OS kernelsabstractWe propose a dynamic aspect-oriented system for operating system (OS) kernels written in the C language. Unlike other similar systems, our system named KLASY allows the users to pointcut not only function calls but also member accesses to structures. This feature helps the developers who want to use aspects for profiling or debugging an OS kernel. To enable this, KLASY uses a modified C compiler for compiling an OS kernel. The modified compiler produces extended symbol information, which enables a dynamic weaver to find the memory addresses of join point shadows during runtime. Since a normal C compiler produces only limited symbol information, other dynamic aspect-oriented systems for C have been able to pointcut only function calls. We have implemented KLASY for Linux with the GNU C compiler. Our experiments revealed that KLASY achieves sufficient execution performance for practical use. Our case studies disclosed that KLASY is useful for real applications. Yoshisato Yanagisawa, Kenichi Kourai, Shigeru Chiba |
GPCE | 3 |
| 2006 | 2nd Asian Workshop on Aspect-Oriented Software Development (AOAsia)abstractSeparation of concerns is one of the main tenets of software engineering - allowing developers to reason about software systems in sensible portions, regardless which phase of the lifecycle they are working in. Many researchers in software engineering are actually in the field of aspect-orientation without realizing it. Elisa L. A. Baniassad, Kung Chen, Shigeru Chiba, Jan Hannemann, Hidehiko Masuhara, Shangping Ren, Jianjun Zhao 0001 |
ASE | 3 |
| 2005 | Bugdel: An Aspect-Oriented Debugging SystemabstractThis paper presents our aspect-oriented system specialized/or debugging named Bugdel. Bugdel is a plug-in module for Eclipse, which is an integrated development environment. Unlike other general-purpose aspect-oriented systems, Bugdel allows user to specify aspects using a graphical user interface. Furthermore, Bugdel provides new functions that AspectJ or others do not provide, since they break the modularity of classes. This paper discusses limitations of related general-purpose aspect-oriented systems, such as AspectJ, and shows the solutions that we have implemented in Bugdel. Yoshiyuki Usui, Shigeru Chiba |
APSEC | 2 |
| 2005 | Aspect-Oriented Programming Beyond Dependency Injection
Shigeru Chiba, Rei Ishikawa |
ECOOP | 1 |
| 2005 | Loosely-Separated "Sister" Namespaces in Java
Yoshiki Sato, Shigeru Chiba |
ECOOP | 2 |
| 2005 | HyperSpector: virtual distributed monitoring environments for secure intrusion detectionabstractIn this paper, a virtual distributed monitoring environment called HyperSpector is described that achieves secure intrusion detection in distributed computer systems. While multiple intrusion detection systems (IDSes) can protect a distributed system from attackers, they can increase the number of insecure points in the protected system. HyperSpector overcomes this problem without any additional hardware by using virtualization to isolate each IDS from the servers it monitors. The IDSes are located in a virtual machine called an IDS VM and the servers are located in a server VM. The IDS VMs among different hosts are connected using a virtual network. To enable legacy IDSes running in the IDS VM to monitor the server VM, HyperSpector provides three inter-VM monitoring mechanisms: software port mirroring, inter-VM disk mounting, and inter-VM process mapping. Consequently, active attacks, which directly attack the IDSes, are prevented. The impact of passive attacks, which wait until data including malicious code is read by an IDS and the IDS becomes compromised, is confined to within an affected HyperSpector environment. Kenichi Kourai, Shigeru Chiba |
VEE | 2 |
| 2003 | An Easy-to-Use Toolkit for Efficient Java Bytecode Translators
Shigeru Chiba, Muga Nishizawa |
GPCE | 1 |
| 2003 | A Selective, Just-in-Time Aspect Weaver
Yoshiki Sato, Shigeru Chiba, Michiaki Tatsubori |
GPCE | 2 |
| 2003 | Secure and Manageable Virtual Private Networks for End-usersabstractThis paper presents personal networks, which integrate a VPN and the per-VPN execution environments of the hosts included in the VPN. The key point is that each execution environment called a portspace is bound to only one VPN, i.e., single-homed. Using this feature of portspaces, personal networks address several problems at multi-homed hosts that use multiple VPNs. Information flow is separated by personal networks so that it is not mixed at multi-homed hosts. IP addressing in a personal network is independent of the other personal networks, even the base network, and therefore does not conflict with those of other networks at multi-homed hosts. In addition, personal networks provide facilities for easy bootstrapping so that the end-users can construct such isolated networks easily. Inheritance of portspaces supports the creation of new portspaces based on existing portspaces. Self-construction of personal networks enables end-users to construct personal networks without help from the base network. Kenichi Kourai, Toshio Hirotsu, Koji Sato, Osamu Akashi, Kensuke Fukuda, Toshiharu Sugawara, Shigeru Chiba |
LCN | 7 |
| 2001 | A Bytecode Translator for Distributed Execution of "Legacy" Java Software
Michiaki Tatsubori, Toshiyuki Sasaki, Shigeru Chiba, Kozo Itano |
ECOOP | 3 |
| 2001 | A Secure Access Control Mechanism against Internet CrackersabstractInternet servers are always in danger of being "highjacked" by various attacks, like the buffer overflow attack. We propose a process cleaning technique for making an access control mechanism secure against hijacking. To minimize damage in cases where the full control of the servers is stolen, access restrictions must be imposed on the servers. However, designing a secure access control mechanism is not easy, because that mechanism itself can be a security hole. Process cleaning prevents malicious code injected by a cracker from illegally removing access restrictions from a hijacked server. In this paper, we describe the access control mechanism of our Compacto operating system using process cleaning. According to the results of our experiments, process cleaning can be implemented with acceptable performance overheads. Kenichi Kourai, Shigeru Chiba |
ICDCS | 2 |
| 2000 | Load-Time Structural Reflection in Java
Shigeru Chiba |
ECOOP | 1 |
| 1998 | A Metaobject Protocol for Fault-Tolerant CORBA ApplicationsabstractThe use of metalevel architectures for the implementation of fault-tolerant systems is today very appealing. Nevertheless, all such fault-tolerant systems have used a general-purpose metaobject protocol (MOP) or are based on restricted reflective features of some object-oriented language. According to our past experience, we define in this paper a suitable metaobject protocol, called FT-MOP for building fault-tolerant systems. We explain how to realize a specialized runtime MOP using compile-time reflection. This MOP is CORBA compliant: it enables the execution and the state evolution of CORBA objects to be controlled and enables the fault tolerance metalevel to be developed as CORBA software. Marc-Olivier Killijian, Jean-Charles Fabre, Juan-Carlos Ruiz-Garcia 0001, Shigeru Chiba |
SRDS | 4 |
| 1995 | A Metaobject Protocol for C++abstractThis paper presents a metaobject protocol (MOP) for C . This MOP was designed to bring the power of meta-programming to C programmers. It avoids penalties on runtime performance by adopting a new meta-architecture in which the metaobjects control the compilation of programs instead of being active during program execution. This allows the MOP to be used to implement libraries of efficient, transparent language extensions. 1 Introduction A metaobject protocol (MOP) is an object-oriented interface for programmers to customize the behavior and implementation of programming languages and other system software. The usefulness of this kind of customizability has been argued elsewhere[11, 9, 10], and interesting MOPs have been included in languages such as Lisp[20], ABCL[21], and, to a lesser degree, Smalltalk[6]. The goal of our work is to bring the power of metaprogramming to the more mainstream language C , while respecting their performance concerns in that community. This paper pr... Shigeru Chiba |
OOPSLA | 1 |
| 1993 | Designing an Extensible Distributed Language with a Meta-Level Architecture
Shigeru Chiba, Takashi Masuda |
ECOOP | 1 |
| 1992 | Exploiting a Weak Consistency to Implement Distributed Tuple SpaceabstractMultiprotocol tuple space (MTS), a distributed implementation of tuple space, is discussed. Although tuple space provides primitives convenient for describing several types of communication and data sharing, its naive implementation in distributed environments is not efficient without special hardware. MTS is a replication-based implementation on conventional workstations and a network. It provides several different replication-maintenance protocols that exploit weak consistency. The selection of protocols to achieve efficient replication maintenance is based on communication patterns.> Shigeru Chiba, Kazuhiko Kato |
ICDCS | 1 |
| 1990 | Voiced-unvoiced classification using weighted distance measures
Kiyoshi Asai, Shigeru Chiba |
ICSLP | 2 |
| 1990 | A new method of consonant detection and classification using neural networks
Shigeru Chiba, Kiyoshi Asai |
ICSLP | 1 |
| 1986 | New classification method of place of articulation of consonants in connected speech using formantsabstractThis paper describes a new method for classifying the place of articulation of consonants in connected speech. The locus theory was proposed by the workers of the Haskins Laboratories, but actual second formant frequencies observed at the onset of consonant-vowel transitions in connected speech depend on the acoustic environment and the speaker. Therefore, formant normalization and coarticulation-modeling techniques are necessary to classify consonants. This paper proposes the effective methods of speaker adaptation and modeling of coarticulation. Shigeru Chiba |
ICASSP | 1 |