Masatomo Hashimoto

Learn More
This paper develops a typed calculus for contexts i.e., lambda terms with \holes".<lb>In addition to ordinary lambda terms, the calculus contains labeled holes, hole ab-<lb>straction and context application for manipulating rst-class contexts. The primary<lb>operation for contexts is holelling, which captures free variables. This operation<lb>con icts with(More)
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 relating(More)
To improve performance of large-scale scientific applications, scientists or tuning experts make various empirical attempts to change compiler options, program parameters or even the syntactic structure of programs. Those attempts followed by performance evaluation are repeated until satisfactory results are obtained. The task of performance tuning requires(More)
A software project often contains a large amount of “homologous code”, i.e., similar code distributed in different versions or “species” sharing common ancestry. Homologous code fragments are prone to incur additional maintenance efforts since changes of their common characters must be replicated on each code fragment to keep the system consistent or up to(More)
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 renamed(More)
We discuss the use of dynamic programming languages such as Python to develop first-principles quantum chemistry programs for high-performance computing environments. Dynamic scripting programming languages, in general, have distinct advantages in terms of developer productivity over compiled languages such as C/C++ and Fortran, because of their ease of use(More)