Dynamic analysis is a promising technique for finding concurrency bugs in multithreaded programs. However, testing a dynamic analysis tool can be difficult. Researchers end up writing large amounts of small benchmark ...
详细信息
ISBN:
(纸本)9781605586564
Dynamic analysis is a promising technique for finding concurrency bugs in multithreaded programs. However, testing a dynamic analysis tool can be difficult. Researchers end up writing large amounts of small benchmark programs. Since the benchmarks themselves are concurrent programs, they may execute nondeterministically, complicating testing of the analysis tool. We propose testing dynamic analyses by writing traces in a simple trace description language, Tiddle. Our implementation, written in Haskell, generates deterministic multithreaded java programs for testing dynamic analyses. We report that it is substantially easier to write programs with incriminating bugs such as race conditions in Tiddle than the corresponding java source code version, reducing the amount of source code to maintain and understand. Although our implementation is targeted towards java, the ideas extend to any other languages which support mutable fields and multiple threads. Copyright 2009 ACM.
In the multicore era, sequential programs need to be refactored for parallelism. The next version of java provides ParallelArray, an array datastructure that supports parallel operations over the array elements. For e...
详细信息
ISBN:
(纸本)9781605587660
In the multicore era, sequential programs need to be refactored for parallelism. The next version of java provides ParallelArray, an array datastructure that supports parallel operations over the array elements. For example, one can apply a procedure to each element, or reduce all elements to a new element in parallel. Refactoring an array to a ParallelArray requires (i) analyzing whether the loop iterations are safe for parallel execution, and (ii) replacing loops with the equivalent parallel operations. When done manually, these tasks are non-trivial and time-consuming. This demo presents ReLooper, an Eclipse-based refactoring tool, that performs these tasks automatically. Preliminary experience with refactoring real programs shows that ReLooper is useful.
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 ...
详细信息
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 ...
详细信息
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 describe a framework for trace-based parallelization of recursive java programs. We also explore and evaluate the feasibility of using a hardware transactional memory (HTM) system to handle dependences. We design, ...
详细信息
ISBN:
(纸本)9781605585987
We describe a framework for trace-based parallelization of recursive java programs. We also explore and evaluate the feasibility of using a hardware transactional memory (HTM) system to handle dependences. We design, implement, and evaluate a system that takes as input a sequential program, identifies traces on it, and groups these traces into coarse-grain units of computation, or tasks. We then insert code that allows tasks to execute in parallel transactions using a fork/join paradigm. We also present a software algorithm that ensures sequential program order is maintained by transactional memory. We identify the associated issues and describe criteria that are necessary for java programs to execute successfully on HTM systems. Our evaluation using JOlden benchmarks indicates that the computational phases of the benchmarks can be executed effectively on HTM systems. The average speedup is 2.7 for four processors. We conclude that HTM is a viable solution to dealing with dependences when performing trace-based parallelization. Copyright 2009 ACM.
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.
暂无评论