When several incompatible implementations of a single API are in use in a java program, the danger exists that instances from different implementations may inadvertently be mixed, leading to errors. In this paper we s...
详细信息
ISBN:
(纸本)9781605585987
When several incompatible implementations of a single API are in use in a java program, the danger exists that instances from different implementations may inadvertently be mixed, leading to errors. In this paper we show how to use generics to prevent such mixing. The core idea of the approach is to add a type parameter to the interfaces of the API, and tie the classes that make up an implementation to a unique choice of type parameter. In this way methods of the API can only be invoked with arguments that belong to the same implementation. We show that the presence of a type parameter in the interfaces does not violate the principle of interface-based programming: clients can still completely abstract over the choice of implementation. In addition, we demonstrate how code can be reused between different implementations, how implementations can be defined as extensions of other implementations, and how different implementations may be mixed in a controlled and safe manner. To explore the feasibility of the approach, gauge its usability, and identify any issues that may crop up in practical usage, we have refactored a fairly large existing API-based application suite, and we report on the experience gained in the process. Copyright 2009 ACM.
This paper presents the development of a virtual and remote laboratory for the use of the well-known Ball and Beam non-linear process. The authors use a novel connection between Easy java Simulations and C++ in order ...
详细信息
We have developed Modular Policy language (MPL) for embedding rule-based security monitors into java programs. Our monitors can capture and save all kind of information related to monitored program execution and then ...
详细信息
Modern software requirements are more diverse than before and can only be timely fulfilled via the extensive use of libraries. As a result, modern programmers spend a significant fraction of their time just mixing and...
详细信息
ISBN:
(纸本)9781595936189
Modern software requirements are more diverse than before and can only be timely fulfilled via the extensive use of libraries. As a result, modern programmers spend a significant fraction of their time just mixing and matching these libraries. programminglanguage success becomes, then, more dependent on the quality and broadness of the accompanying libraries than on the language intrinsic characteristics. In spite of its recognized qualities, Common Lisp lags behind other languages as regards the quality and availability of its libraries. We argue that the best solution to overcome this problem is to automatically translate to Common Lisp the best libraries that are available in other languages. In this paper, we specifically address the translation of java libraries using the Jnil translator tool and we provide a detailed explanation of the problems found and the lessons learned during the translation of a large java library. Although many problems remain to be solved, the experiment proved the feasibility of the translation process and significantly increased our confidence in the future of Common Lisp. Copyright 2009 ACM.
Mobile web services are playing an import role in the mobile information system. However, their security is a critical issue cumbering their application and development. The digital signature is the indispensable way ...
详细信息
We show that the bytecode injection approach used in common java profilers, such as HPROF and JProfiler, disables some program optimizations that are performed when the same program is running without a profiler. This...
详细信息
ISBN:
(纸本)9781605587660
We show that the bytecode injection approach used in common java profilers, such as HPROF and JProfiler, disables some program optimizations that are performed when the same program is running without a profiler. This behavior is present in both the client and the server mode of the HotSpot JVM.
Learning how to program is a universal problem that is facing many students in introductory programming courses. This multinational problem created the need for an effective and easy to use learning system. The system...
详细信息
Domain-specific language (DSL) utilization comes in three sorts: internal, external, and language workbench. An internal DSL is confined to the hosting language. An external DSL is freed from confinement in the hostin...
详细信息
ISBN:
(纸本)9781605587660
Domain-specific language (DSL) utilization comes in three sorts: internal, external, and language workbench. An internal DSL is confined to the hosting language. An external DSL is freed from confinement in the hosting language, but surrenders all native tool support in return. A language workbench incorporates external DSLs into the development environment, thus bridging the tool-support gap that exists between external and internal DSLs. DSL workbenches hold the most promise for DSL based development. Yet they are also the least utilized. In this work, we present a concrete example of a language workbench. Our language workbench facilitates DSL based development in java, where the DSLs are external to java and yet enjoy java-like automatic tool support.
This paper deals with a project that aims at improving students engineering skills especially when the actors of the project, the tasks to be achieved and the knowledge, are distributed between several different count...
详细信息
ISBN:
(纸本)9780889868168
This paper deals with a project that aims at improving students engineering skills especially when the actors of the project, the tasks to be achieved and the knowledge, are distributed between several different countries. The goal is to obtain a digital environment that is capable of hosting distributed and cooperative practical activities for groups of students from different universities and different countries working together on the same activities. In the following sections we lay out our implementation of the virtual classroom metaphor and we describe how we distributed our virtual worlds (X3D/VRML, javaScript and AJAX). Further in the article we explain how we coped with the constant need for change and extensions in the context of distributed virtual environments: new objects to fill the ever-growing 3D world, and in the context of pedagogical activities: new activities, new topics, new methods, etc, by the means of a plug-in-like concept.
Computer programs that facilitate analysis of atonal music are indispensable tools for music theorists. However, most of the programs currently available on the Web are limited to the derivation of Tn/TnI types and in...
详细信息
暂无评论