About
40
Publications
2,543
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
260
Citations
Additional affiliations
Publications
Publications (40)
Delta debugging (DD) is an approach to automating the debugging activities based on systematic testing. DD algorithms find the cause of a regression of a program by minimizing the changes applied between a working version and a faulty version of the program. However, it is still an open problem to minimize a huge set of changes while avoiding any i...
Program analysis on binary code is considered as difficult because one has to resolve destinations of indirect jumps. However, there is another difficulty of context-dependency that matters when one processes binary programs that are not compiler generated. In this paper, we propose a novel approach for tackling these difficulties and describe a wa...
In this paper, we study code clones in hardware description languages (HDLs) in comparison with general programming languages. For this purpose, we have developed a method for detecting code clones in Verilog HDL. A key idea of the proposed method is to convert the Verilog HDL code into the pseudo C++ code, which is then processed by an existing co...
This paper presents a comprehensive method for identifying fine-grained change patterns in the source code of large-scale software projects. Source code changes are computed by differencing abstract syntax trees of adjacent versions and transferred to a set of logical statements called a factbase. A factbase contains information for tracking and re...
Services are central parts of developed economies. They are growing in numbers, varieties and complexities. Continuous expansion of service economic activities and their rich diversity have been posing challenges for researchers and academics in developing comprehensive foundations and conceptual frameworks. The gap between spectrum of services and...
In this paper, we present a novel binary analysis method for malware which combines static and dynamic techniques. In the static phase, the target address of each indirect jump is resolved using backward analysis on static single assignment form of binary code. In the dynamic phase, those target addresses that are not statically resolved are recove...
Maintenance of large software projects is often hindered by cross-cutting concerns scattered over multiple modules. History-based mining techniques have been proposed to mitigate the difficultly by examining changes related to methods/functions in development history to suggest potential concerns. However, the techniques do not cope well with renam...
A key aspect of ubiquitous computing is using sensor networks to effectively and unobtrusively infer human activities in their environment. A typical top-down approach is to first label and decompose activities as sequences of actions with certain probabilities, and then use these predefined activity models for recognition and prediction. This appr...
In this paper, we present a novel binary analysis method for malware which combines static and dynamic techniques. In the static phase, the target address of each indirect jump is resolved using backward analysis on static single assignment form of binary code. In the dynamic phase, those target addresses that are not statically resolved are recove...
A software project often contains a large amount of “homologous code”, i.e., similar code fragments distributed in different
versions or “species” sharing common ancestry. Code homology typically arises when the code is inherited, duplicated, and
patched. In this paper, we propose an automated method for detecting and tracking homologous code in ge...
A key aspect of ubiquitous computing is using sensor networks to effectively and unobtrusively infer human activities in their environment. A typical top-down method is to first label and decompose activities as sequences of actions with certain probabilities, and then use these predefined activity models for recognition and prediction. This method...
A common problem to current digital subscription services is how to prevent membership (e.g. account and password) sharing beyond authorised consumers. Unlike traditional subscription services such as wired phone examples, sharing is much more popular in a digital world due to the access of information goods is typically portable and the identifica...
This paper reports on a tool for fine-grained analysis of structural changes made between revisions of programs. The tool, called Diff/TS, calculates, visualizes and classifies edit operations including "moves'' that will change one revision into another by means of detailed tree structural analysis on source code. Such analysis tends to be time co...
We present a tool for analysis and detection of malicious mobile code such as computer viruses and internet worms based on the combined use of code simulation, static code analysis, and OS execution emulation. Unlike traditional anti-virus methods, the tool directly inspects the code and identifies commonly found malicious behaviors such as mass ma...
We give an overview of a tool detect computer viruses without relying on "pattern files" that contain "signatures" of previously captured viruses. The system combines static code analysis with code simulation to identify malicious behaviors commonly found in computer viruses such as mass mailing, file infection, and registry overwrite. These prohib...
In this paper, we describe the discovery of service and controlling them in ubiquitous devices.
We have developed a set of hardware and software components to realize ubiquitous computing environments, based on two keywords, simple" (easy to implement) and "open"(adopt widely publicized specifications). Then this set has been resulted into UBKit (Ubiquity Building Toolkit). The Micro-Server an instance of UBKitenables existing consumer electr...
We give an overview of the tools to detect computer viruses without relying on “pattern files” that contain “signatures” of
previously captured viruses. The system combines static code analysis with code simulation to identify malicious behaviors
commonly found in computer viruses such as mass mailing, file infection, and registry overwrite. These...
We report on a machine supported method for verifying safety properties of dynamic systems based on the first-order description
of underlying state transition systems. By capturing a set of states by a state predicate, we can verify safety properties
of infinite-state systems using predicate calculus in the set-theoretic iterative calculation of l...
In this paper, we report on an ongoing project to develop search engines for software components hosted by object request brokers (ORBs). Behavioral specification based on hidden algebra is used to allow search by functionalities rather than syntactic features. An algebraic specification language system CafeOBJ is used to support automation such as...
This paper describes the Tatami project at UCSD, which is developing a system to support distributed cooperative software development over the web, and in particular, the validation of concurrent distributed software. The main components of our current prototype are a proof assistant, a generator for documentation websites, a database, an equationa...
: This paper describes the Tatami project at UCSD, which is developing a system to support distributed cooperative software development over the web, and in particular, the validation of concurrent distributed software. The main components of our current prototype are a proof assistant, a generator for documentation websites, a database, an equatio...
: We describe some tools to support distributed cooperative design and validation of software systems. Workers at different sites can collaborate on tasks including specification, refinement, validation, verification, and documentation. A distributed database supports alternative and incomplete activities, and can be read using any web browser; rem...
In this paper, we present techniques for automated verification of behavioural specifications using hidden algebra. Two non-trivial
examples, the Alternating Bit Protocol and a snooping cache coherence protocol, are presented with complete specification
code and proof scores for CafeOBJ verification system. The refinement proof based on behavioural...
The purpose of this paper is to formalize the software evolution
process via a relational hypergraph model with primary-input-driven and
secondary-input-driven dependency approaches. Software evolution
processes are modeled by a multidimensional architecture containing
successive software evolution steps and related software evolution
components. W...
This paper describes some tools to support formal methods, and
conversely some formal methods for developing such tools. We focus on
distributed cooperative proving over the web. Our tools include a proof
editor/assistant, servers for remote proof execution, a distributed
truth protocol, an editor generator; and a new method for interface
design ca...
: We describe a new approach to interface design called algebraic semiotics, combining semiotics with algebraic specification to give a rigorous theory of representation quality, and we apply it to the tatami distributed cooperative proving project. This project uses standard html, Java, etc. for remote proof browsing, servers for remote proof exec...
This paper describes some formal tools to support distributed cooperative software engineering. Workers at different sites can collaborate on tasks including specification, refinement, proving and documentation. A design record database supports alternative and incomplete development activities, and is read using any web browser; remote proof execu...
A coherence theorem states that the arrows between two particular objects in free categories are unique. In this paper, we give a direct proof for cartesian closed categories (CCC's) without passing to typed lambda calculus. We first derive categorical combinators for CCC's together with their equations directly from the adjoint functors defining C...