Reflection had been regarded as an idea that was inapplicable for practical software development. This paper presents techniques that we have developed for better implementation of reflective computing. Our techniques move the bottleneck of reflective computing from runtime to load/compile time so that reflection could be pragmatic in C++/Java programming, in which execution performance is significant. This paper also mentions our perspective on this research area, in particular, with respect to the relation between reflection and aspect-oriented programming.
Autonomous concurrent objects can be regarded as message receivers rather than labeled records by message senders, each having object references. The subtype relation on reference types can be determined by judging how various messages can be understood. Based on this idea, this paper presents a type system and compilation techniques for concurrent objects, implementing efficient pattern matching of first class messages, where the look-up can be performed as direct indexing of a small table, and the table size can be bounded by a number slightly more than the number of injection tags which the message value may have.
This paper aims at describing an algorithm of pointer analysis for practical large-scale application programs written in C language. We formulate the algorithm of pointer analysis in the framework of abstract interpretation. The analysis is carried out by executing an abstract program. To our knowledge, the precision of our abstract memory region is the most accurate among polynomial-time pointer analysis algorithms. We have applied a dynamic checking removal optimization based on our pointer analysis to Fail-Safe C compiler in order to demonstrate effectiveness of our pointer analysis. The experiment targeting SPECCPU 2000 has shown that twenty to seventy percent of dynamic checking can be removed and ten to forty percent of elapsed time is improved.
This paper describes XML and schema languages using formal language theory. It also overviews schemabased XML technologies, notably validation and static type checking.
This tutorial paper reviews some major operating system technologies for preventing unauthorized access. To classify and evaluate these technologies, a security taxonomy is introduced. The taxonomy is designed to describe the type of unauthorized access and measure the impact of the unauthorized access. Based on the taxonomy, this paper tries to determine the effectiveness of the operating system technologies for preventing unauthorized access.