Context-oriented programming (COP) is a programming method to modularize variations of behavior that depend on contexts. With the increase of interest in COP, several COP languages with different characteristics have been proposed. In this paper, the author firstly explains linguistic constructs that are shared with existing COP languages. Then, for each construct, the author classifies COP languages with respect to how they realize that construct, and explains the characteristics for each classification. Finally, the author delivers future research directions of COP languages.
Software maintenance tasks have become more and more difficult because of the massive scale and complexity of software systems. Code clones are regarded as one of the factors that makes software maintenance more difficult, which makes code clones as a hot research topic on the research area of software engineering. However, the basis that clones are harmful for software maintenance is countered by some opinions. One of them is that code reuse by copy-and-paste operations, which is regarded as a major cause of creation of clones, can promote rapid engineering of software systems. Another opinion is that some research results revealed that not all clones are harmful for software maintenance. These opinions show a high motivation for clone management. This paper presents a survey on research of code clones that is useful for effective clone maintenance.
This article gives a detailed exposition of the LR parsing method. Like many of great breakthroughs, Knuth's LR parsing method is based on a simple idea: to use a regular expression recognizer iteratively to parse (a certain class of) context-free languages. Based on this idea, Knuth developed a theory and implementation techniques for a practical parsing method that has been widely used in today's compilers. Once one understands the idea and the principles underlying the LR parsing method, one should be able to understand the LR paring algorithm, which has been often perceived elaborate and difficult to comprehend. This article aims at introducing to the general readers with basic computer science background, the idea and the principle underlying the LR parsing method.
Self-adaptive software, a software which can modify its structure or behavior by itself to satisfy its requirements in response to changes in an environment, is a promising approach to software systems for dynamic environments. To develop the self-adaptive software, adaptation logic is need to be designed in addition to application logic. In this paper, we survey self-adaptation design for self-adaptive software, which is one of recent trends in software engineering research area. We show problems and existing works for each activity in Monitor-Analyze-Plan-Execute-Knowledge loop model, which is a representative modeling approach of adaptation logic.
INTER-Mediator is a framework for developing web applications. Mainly it can be applied to the business system for small and medium organizations, especially limited budget circumstances. As far as presenting and updating the data of database, we can build the page with the declarative way, not any imperative ways by programming languages. This means end users and designers can maintain the developed system, for example adding page elements. In this paper, we discuss how does the framework work and describe the some maintenance tasks can work out by using the declarative way.
Durand and Sénizergues (2007) showed that reachability of bottom-up linear term rewriting systems is decidable. In this paper we propose the class of bottom-up innermost systems by replacing “bottom-up rewriting” with “bottom-up innermost rewriting”, and show that innermost reachability is decidable for bottom-up innermost left-linear term rewriting systems. Furthermore, we give a class of bottom-up innermost systems—the class of strongly k-bottom-up innermost systems—and show that it is decidable whether a left-linear term rewriting system belongs to the class.
Integer overflows causing an undefined behavior (called time bombs) are a source of serious vulnerabilities. To effectively detect the time bombs in a lightweight way, this paper proposes a method using 6 fixed integer values (called integer boundary values), and provides a quantitative evaluation by applying it to 19 open source programs. The result shows that the integer boundary values detected 36.7% more time bombs on average than the existing random method. The result also shows that the comparison/bitwise operations amount to 61.3% of undefined behaviors in integer operations, while there is no significant difference between the detection rate of time bombs by the integer boundary values for the comparison/bitwise operations and the others.
Recently, plagiarism of source code has increased. It can be categorized into whole and partial plagiarisms. For the identification of partial plagiarism, code clone detection techniques can be used because they can detect duplicated parts from two software systems. However, obfuscation techniques allow obscuring plagiarism by rewriting software to make it difficult to understand. In this paper, we propose an approach to detecting pairs of similar classes and methods based on the similarity of execution traces that are resistant to obfuscation. This approach divides an execution traces into phases, and then match them based on the similarity of method calls for the detection of pairs of similar classes and methods. In case study, the approach identified the correspondences of original and obfuscated components in actual applications.
Constraint modeling is known to play an important role in solving problems efficiently. Remarkable improvements of SAT solvers have been made over the last decade. Such improvements encourage researchers to solve Constraint Satisfaction Problems (CSPs) by encoding them into SAT. In this paper, we study SAT-based constraint modeling of the Packing Array (PA) problem in Combinatorial Designs. PA is also called mutually orthogonal partial latin squares and has been applied to optimal disk allocation in Databases. We first present four constraint models from different viewpoints of the PA problem, and then present their SAT encodings based on the order encoding. Particularly, basic alldiff model is designed to reduce the number of clauses for the packing constraints of a given PA. To evaluate the efficiency of our proposed models, we carried out experiments on the PA problems in Handbook of Combinatorial Designs. We succeeded in proving the optimality of previously known upper bounds for two arrays and in obtaining improved lower bounds for five arrays.