Annotations provide a limited way of extending java in order to tailor the language for specific tasks. This paper describes a proposal for a java extension which generalises Annotations to allow java to be a platform...
详细信息
ISBN:
(纸本)9780769533537
Annotations provide a limited way of extending java in order to tailor the language for specific tasks. This paper describes a proposal for a java extension which generalises Annotations to allow java to be a platform for developing Domain Specific languages.
Annotations are a recent feature introduced in languages such as java, C#, and other languages of the .NET family, which allow programmers to attach arbitrary, structured and typed metadata to their code. These langua...
详细信息
ISBN:
(纸本)9783540897613
Annotations are a recent feature introduced in languages such as java, C#, and other languages of the .NET family, which allow programmers to attach arbitrary, structured and typed metadata to their code. These languages run on top of so-called virtual execution. environments, e.g. the JVM for java, and the CLR for .NET languages, which allow for the run-time generation of executable code. In this paper we explore flow annotations and the dynamic code generation capability can be used together to provide programmers with high-level methods for dynamic generation and modification of an application's code - at run-tune. The paper introduces the @javalanguage, which is;in extension to java allowing annotation of arbitrary statements, and the JDAsm library, which is an infrastructure for bytecode manipulation which uses @java annotations to pinpoint the locations and code fragments that arc: being manipulated. Together;they allow type-safe and fully symbolic runtime code modification and generation without any need to explicitly address bytecode instructions.
In this paper we propose an abstract certification technique for java which is based on rewriting logic, a very general logical and semantic framework efficiently implemented in the functional programminglanguage Mau...
详细信息
ISBN:
(纸本)9783540797067
In this paper we propose an abstract certification technique for java which is based on rewriting logic, a very general logical and semantic framework efficiently implemented in the functional programminglanguage Maude. Starting from a specification of the java semantics written in Maude, we develop an abstract, finite-state operational semantics also written in Maude which is appropriate for program verification. As a by-product of the abstract verification, a dependable safety certificate is delivered which consists of a set of (abstract) rewriting proofs that can be easily checked by the code consumer using a standard rewriting logic engine. Our certification methodology extends to other programminglanguages by simply replacing the concrete semantics of java by a semantics for the programminglanguage at hand. The abstract proof-carrying code technique has been implemented and successfully tested on several examples, which demonstrate the feasibility of our approach.
A Distributed java Virtual Machine (DJVM) is a cluster-wide set of extended JVMs that enables parallel execution of a multithreaded java application. It has proven effectiveness for scaling scientific applications. Ho...
详细信息
ISBN:
(纸本)9780769534343
A Distributed java Virtual Machine (DJVM) is a cluster-wide set of extended JVMs that enables parallel execution of a multithreaded java application. It has proven effectiveness for scaling scientific applications. However, leveraging DJVMs to cluster real-life web applications with commercial server workloads has not been well studied. This paper presents a new generic clustering approach based on DJVMs that promote user transparency and global object sharing for web application servers. We port Apache Tomcat to our JESSICA2 DJVM and study the performance of a wide range of web applications running on the server. Our experimental results show that this approach can scale better than the traditional clustering approach, particularly for cache-centric web applications.
A recent study on how inheritance is used in open source java software revealed a surprising number of interfaces that were neither implemented nor extended. While innocent explanations for this exist (the interfaces ...
详细信息
ISBN:
(纸本)9780769534466
A recent study on how inheritance is used in open source java software revealed a surprising number of interfaces that were neither implemented nor extended. While innocent explanations for this exist (the interfaces are part of frameworks that only clients of the frameworks implement), it does raise the question of how much "dead code" exists in applications. Dead code usually refers to code within a function that cannot be executed, but unused interfaces, and more generally unused public methods, represent dead code at the "design" level, and so can potentially have a significant impact on future maintenance costs. This paper presents a large empirical study on existence of design decisions that are unused. This study examined 100 open source java applications. The results show a significant level of unused design decisions.
The Real-time Specification for java extends the java platform to support real-time processing and introduces a region-based memory model, called scoped memory, which side-steps the java garbage collector. While scope...
详细信息
ISBN:
(纸本)9780769531328
The Real-time Specification for java extends the java platform to support real-time processing and introduces a region-based memory model, called scoped memory, which side-steps the java garbage collector. While scoped memory succeeds in protecting real-time tasks from execution time jitter practical experience points to shortcomings. This paper takes stock of the state of the art in memory management for RTSJ programs.
The new era of multi-core processing challenges software designers to efficiently exploit the parallelism that is now massively available. Programmers have to exchange the conventional sequential programming paradigm ...
详细信息
ISBN:
(纸本)9780769531090
The new era of multi-core processing challenges software designers to efficiently exploit the parallelism that is now massively available. Programmers have to exchange the conventional sequential programming paradigm for parallel programming: single-threaded designs must be decomposed into dependent, interacting tasks. The java programming language has built-in thread support and is therefore suitable for the development of parallel software, but programming multi-threaded applications is a tedious task. Therefore we are working on a framework and tool support to alleviate the burden of threads, synchronisation and locking, based on process networks. This paper describes our initial ideas for this new programming model.
A software birthmark means the inherent characteristics of a program that can be used to identify the program. By means of comparing the birthmarks of programs, the fact of the software theft can be detected. In this ...
详细信息
ISBN:
(纸本)9780769531267
A software birthmark means the inherent characteristics of a program that can be used to identify the program. By means of comparing the birthmarks of programs, the fact of the software theft can be detected. In this paper a static java birthmark is proposed by utilizing a set of behaviors as the characteristics of the java applications. A behavior denotes a sequence of bytecodes which share their operands through the operand stack. We evaluate the proposed birthmark with respect to two properties required for birthmark, i.e., credibility and resilience. The empirical results show that the proposed birthmark is credible and resilient to program transformation. Therefore, the proposed birthmark can be used for identifying the software's originality.
A coding pattern is a frequent sequence of method calls and control statements to implement a particular behavior. Coding patterns include copy-and-pasted code, crosscutting concerns and implementation idioms. Duplica...
详细信息
ISBN:
(纸本)9780769534299
A coding pattern is a frequent sequence of method calls and control statements to implement a particular behavior. Coding patterns include copy-and-pasted code, crosscutting concerns and implementation idioms. Duplicated code fragments and crosscutting concerns that spread across modules are problematic in software maintenance. In this paper, we propose a sequential pattern mining approach to capture coding patterns in java programs. We have defined a set of rides to translate java source code into a sequence database for pattern mining, and applied PrefixSpan algorithm to the sequence database. As a case study, we have applied our tool to six open-source programs and manually investigated the resultant patterns. We report coding patterns that are candidates of aspects and several logging patterns that are well-known crosscutting concerns but hard to modularize.
Both the spreading and the capabilities of mobile devices have dramatically increased over the last years, Nowadays, many mobile devices are able to run java applications, that call create Internet connections, send S...
详细信息
ISBN:
(纸本)9783540886242
Both the spreading and the capabilities of mobile devices have dramatically increased over the last years, Nowadays, many mobile devices are able to run java applications, that call create Internet connections, send SMS messages, and perform other expensive or dangerous operations on the mobile device. Hence, all adequate security support is required to meet the needs of this new and evolving scenario. This paper proposes an approach to enhance the security support of java, Micro Edition, based oil the monitoring of the usage of mobile device resources performed by MIDlets. A process algebra based language is used to define the security policy and a reference monitor based architecture is exploited to monitor the resource usage. The paper also presents the implementation of a prototype running on a real mobile device, along with some preliminary performance evaluation.
暂无评论