1,295 research outputs found

    ImageJ2: ImageJ for the next generation of scientific image data

    Full text link
    ImageJ is an image analysis program extensively used in the biological sciences and beyond. Due to its ease of use, recordable macro language, and extensible plug-in architecture, ImageJ enjoys contributions from non-programmers, amateur programmers, and professional developers alike. Enabling such a diversity of contributors has resulted in a large community that spans the biological and physical sciences. However, a rapidly growing user base, diverging plugin suites, and technical limitations have revealed a clear need for a concerted software engineering effort to support emerging imaging paradigms, to ensure the software's ability to handle the requirements of modern science. Due to these new and emerging challenges in scientific imaging, ImageJ is at a critical development crossroads. We present ImageJ2, a total redesign of ImageJ offering a host of new functionality. It separates concerns, fully decoupling the data model from the user interface. It emphasizes integration with external applications to maximize interoperability. Its robust new plugin framework allows everything from image formats, to scripting languages, to visualization to be extended by the community. The redesigned data model supports arbitrarily large, N-dimensional datasets, which are increasingly common in modern image acquisition. Despite the scope of these changes, backwards compatibility is maintained such that this new functionality can be seamlessly integrated with the classic ImageJ interface, allowing users and developers to migrate to these new methods at their own pace. ImageJ2 provides a framework engineered for flexibility, intended to support these requirements as well as accommodate future needs

    Nu: Enabling Modularity in Multilingual, Multienvironment, Distributed Systems

    Get PDF
    The contribution of this work is a novel aspect-oriented programming model that we call Nu. The Nu programming model adds only one new concept, join point dispatch, to the object-oriented programming model. No new programming language constructs are added. The constructs in existing aspect languages are expressed in terms of join point dispatch resulting in a significant simplification of aspect languages. We make two claims about the potential benefits of our approach. First, that it will enable transparent modularization of even those crosscutting concerns that transcend the language and environment boundaries. Second, that it will simplify the AOP language model resulting in the ease-of-use, ease-of-learning, and reduced cost to build supporting tools

    The OCarePlatform : a context-aware system to support independent living

    Get PDF
    Background: Currently, healthcare services, such as institutional care facilities, are burdened with an increasing number of elderly people and individuals with chronic illnesses and a decreasing number of competent caregivers. Objectives: To relieve the burden on healthcare services, independent living at home could be facilitated, by offering individuals and their (in)formal caregivers support in their daily care and needs. With the rise of pervasive healthcare, new information technology solutions can assist elderly people ("residents") and their caregivers to allow residents to live independently for as long as possible. Methods: To this end, the OCarePlatform system was designed. This semantic, data-driven and cloud based back-end system facilitates independent living by offering information and knowledge-based services to the resident and his/her (in)formal caregivers. Data and context information are gathered to realize context-aware and personalized services and to support residents in meeting their daily needs. This body of data, originating from heterogeneous data and information sources, is sent to personalized services, where is fused, thus creating an overview of the resident's current situation. Results: The architecture of the OCarePlatform is proposed, which is based on a service-oriented approach, together with its different components and their interactions. The implementation details are presented, together with a running example. A scalability and performance study of the OCarePlatform was performed. The results indicate that the OCarePlatform is able to support a realistic working environment and respond to a trigger in less than 5 seconds. The system is highly dependent on the allocated memory. Conclusion: The data-driven character of the OCarePlatform facilitates easy plug-in of new functionality, enabling the design of personalized, context-aware services. The OCarePlatform leads to better support for elderly people and individuals with chronic illnesses, who live independently. (C) 2016 Elsevier Ireland Ltd. All rights reserved

    EarlGray: A Component-Based Java Virtual Machine for embedded Systems.

    Get PDF

    Revisiting visitors for modular extension of executable DSMLs

    Get PDF
    Executable Domain-Specific Modeling Languages (xDSMLs) are typically defined by metamodels that specify their abstract syntax, and model interpreters or compilers that define their execution semantics. To face the proliferation of xDSMLs in many domains, it is important to provide language engineering facilities for opportunistic reuse, extension, and customization of existing xDSMLs to ease the definition of new ones. Current approaches to language reuse either require to anticipate reuse, make use of advanced features that are not widely available in programming languages, or are not directly applicable to metamodel-based xDSMLs. In this paper, we propose a new language implementation pattern, named Revisitor, that enables independent extensibility of the syntax and semantics of metamodel-based xDSMLs with incremental compilation and without anticipation. We seamlessly implement our approach alongside the compilation chain of the Eclipse Modeling Framework, thereby demonstrating that it is directly and broadly applicable in various modeling environments. We show how it can be employed to incrementally extend both the syntax and semantics of the fUML language without requiring anticipation or re-compilation of existing code, and with acceptable performance penalty compared to classical handmade visitors

    StreamJIT: A Commensal Compiler for High-Performance Stream Programming

    Get PDF
    There are many domain libraries, but despite the performance benefits of compilation, domain-specific languages are comparatively rare due to the high cost of implementing an optimizing compiler. We propose commensal compilation, a new strategy for compiling embedded domain-specific languages by reusing the massive investment in modern language virtual machine platforms. Commensal compilers use the host language's front-end, use host platform APIs that enable back-end optimizations by the host platform JIT, and use an autotuner for optimization selection. The cost of implementing a commensal compiler is only the cost of implementing the domain-specific optimizations. We demonstrate the concept by implementing a commensal compiler for the stream programming language StreamJIT atop the Java platform. Our compiler achieves performance 2.8 times better than the StreamIt native code (via GCC) compiler with considerably less implementation effort.United States. Dept. of Energy. Office of Science (X-Stack Award DE-SC0008923)Intel Corporation (Science and Technology Center for Big Data)SMART3 Graduate Fellowshi

    Developing a Generic Debugger for Advanced-Dispatching Languages

    Get PDF
    Programming-language research has introduced a considerable number of advanced-dispatching mechanisms in order to improve modularity. Advanced-dispatching mechanisms allow changing the behavior of a function without modifying their call sites and thus make the local behavior of code less comprehensible. Debuggers are tools, thus needed, which can help a developer to comprehend program behavior but current debuggers do not provide inspection of advanced-\ud dispatching-related language constructs. In this paper, we present a debugger which extends a traditional Java debugger with the ability of debugging an advanced-dispatching language constructs and a user interface for inspecting this

    User interface design and development: the role of open source systems

    Get PDF
    Open Source movement has tremendously influenced Information industry, in particular the Digital Library Environment where the Information Systems and services are inevitable. This has helped the Library and Information Centers in developing User Interface to render web based services to the patrons. Wherever the network infrastructure and the target users are in place, the design and development of IR user interface using Open Source system for a specific application is very much possible. This paper highlights the role of Open Source Systems in detail and explains a prototype IR User Interface which was developed in-house at Indira Gandhi Centre for Atomic Research, Kalpakkam
    corecore