This paper presents class hierarchy flattening, a novel obfuscation technique for programs written in object-oriented, managed programminglanguages. Class hierarchy flattening strives for maximally removing the inher...
详细信息
java and PHP are two of the most popular languages for web-oriented application. With different architectures and following different programming paradigms, they both fulfill the common needs for web-applications desi...
详细信息
The java programming language allows developers to specify the exception interface of a method using the throws clause. This mechanism supports static checking that is coherent with a statically-typed language. Howeve...
详细信息
ISBN:
(纸本)9781450316569
The java programming language allows developers to specify the exception interface of a method using the throws clause. This mechanism supports static checking that is coherent with a statically-typed language. However, it is known to have limitations. In particular, throws clauses hinder understandability and maintainability due to their scattered nature and lack of information about the source of an exception, the place where it is handled, and everything in between. In this paper, we propose a simple form of exception interface specification, called Exception Propagation Channel (EPC), that provides a global view of exception flow and complements java's exception interfaces. Our approach stems from the observation that throws clauses scale well for methods that throw exceptions to large numbers of direct callers (horizontally), but not for long chains of method calls (vertically). We present an extension to the javalanguage, called EPiC-java that incorporates the proposed approach as well as a prototype compiler and a reengineering tool for that extension. Application of the proposed approach to three open-source systems resulted in a considerable reduction in the number of throws clauses and a comparatively smaller number of EPCs, thus suggesting that maintainability is improved. Copyright 2013 ACM.
Recently, there has been much interest in multi-party session types (MPSTs) as a means of rigorously specifying protocols for interaction among multiple distributed participants. By capturing distributed interaction a...
详细信息
The Real-Time Specification for java (RTSJ) introduces a new memory management model which avoids interfering with the garbage collection process. Two types of memory areas are provided - immortal and scoped. Using th...
详细信息
ISBN:
(纸本)9781450321112
The Real-Time Specification for java (RTSJ) introduces a new memory management model which avoids interfering with the garbage collection process. Two types of memory areas are provided - immortal and scoped. Using this memory management model is not straightforward, since many issues need to be considered. A developer has to decide on the objects that will be allocated in immortal or scoped memory areas and on the memory space required at runtime. On the other hand, reference checks between memory areas constrain the design of the real-time applications and increase the complexity of the development process. In previous work, a new RTSJ case study was implemented and discussed using different scoped memory models. The case study showed the complexity of using the new RTSJ memory model and the space overhead incurred by immortal memory. In this paper, dynamic code slicing is employed as a debugging technique to explore constant increases in immortal memory. Two programming design patterns are presented for decreasing immortal memory overheads generated by specific data structures. Experimental results showed a significant decrease in immortal memory consumption at runtime. The work therefore provides a new approach for assisting developers in debugging and optimising scoped and immortal memory implementation. Copyright 2013 ACM.
College students have become the mainstream of the user Android intelligent mobile phone market. However, there are only few platforms based on Android for college students to study and communicate. Through the analys...
详细信息
When software components evolve, they change interfaces, which may break backward compatibility. We present a tool that facilitates checking whether a new version of component is source compatible with a previous vers...
详细信息
作者:
Anjo, IvoCachopo, JoãoESW
INESC-ID Lisboa Universidade Técnica de Lisboa Rua Alves Redol 9 1000-029 Lisboa Portugal
With multicore processors becoming ubiquitous on computing devices, the need for both parallelizing existing sequential applications and designing new parallel applications is greatly intensified. With our work, we in...
详细信息
Teaching genetics is complex and challenging due to the requirement of many basic biological concepts. In order to aid in the understanding of the Chi-squared test used in genetics, we have developed a statistical sof...
详细信息
Internal Domain-Specific languages (DSL) provide an elegant mechanism to reduce the code complexity of complex systems simulations programming. Many complex systems problems manifest themselves as networks. Graph anal...
详细信息
ISBN:
(纸本)9780889869431
Internal Domain-Specific languages (DSL) provide an elegant mechanism to reduce the code complexity of complex systems simulations programming. Many complex systems problems manifest themselves as networks. Graph analysis techniques can be employed to count the number of: separate components;circuits;paths;or distances in the network. Several other properties such as: mean and peak degree;component or community size;adjacency eigen-spectra, and so forth can also be calculated. Calculation of these properties gives a signature that can help classify a network as belonging to a particular category with known behaviours. In practice however, importing applications data into graph analysis software and managing these calculations can be complex. Domainspecific language techniques allow a high-level graph calculations language to be developed that invokes software components in a graph manipulations framework. We describe a prototype graph generation and analysis domainspecific language built using fluent interface techniques and the java programming language. We report on: attainable code complexity reduction, framework computational performance, and software engineering directions for internals DSLs for this sort of applications problem.
暂无评论