92 research outputs found

    New Directions in Programming Environments: Extensible Software

    Get PDF
    If we want software that can be adapted to our needs on the long run, extensibility is a main requirement. For a long time, extensibility has been in conflict with stability and/or efficiency. This situation has changed with recent software technologies. Thetools provided by software technology however must be complementedby a design which exploits their facilities for extensibility. We illustrate this using Voyager, a portable data analysis system basedon Oberon

    Extensible Statistical Software: On a Voyage to Oberon

    Get PDF
    Recent changes in software technology have opened new possibilitiesfor statistical computing. Conditions for creating efficient and reliableextensible systems have been largely improved by programming languages andsystems which provide dynamic loading and type-safety across module boundaries,even at run time. We introduce Voyager, an extensible data analysis systembased on Oberon, which tries to exploit some of these possibilities

    Supporting the evolution of software

    Get PDF
    2+122hlm.;24c

    Module Embedding

    Get PDF
    This paper proposes a code reuse mechanism called module embedding that enables the building of new modules from existing ones through inheritance, overriding of procedures, and overriding of types; the paper also describes an implementation scheme for this mechanism. Module embedding is beneficial when modules and classes are used in combination and need to be extended together, or when modules are more appropriate medium than classes

    Technological Spaces: An Initial Appraisal

    Get PDF
    In this paper, we propose a high level view of technological spaces (TS) and relations among these spaces. A technological space is a working context with a set of associated concepts, body of knowledge, tools, required skills, and possibilities. It is often associated to a given user community with shared know-how, educational support, common literature and even workshop and conference regular meetings. Although it is difficult to give a precise definition, some TSs can be easily identified, e.g. the XML TS, the DBMS TS, the abstract syntax TS, the meta-model (OMG/MDA) TS, etc. The purpose of our work is not to define an abstract theory of technological spaces, but to figure out how to work more efficiently by using the best possibilities of each technology. To do so, we need a basic understanding of the similarities and differences between various TSs, and also of the possible operational bridges that will allow transferring the results obtained in one TS to other TS. We hope that the presented industrial vision may help us putting forward the idea that there could be more cooperation than competition among alternative technologies. Furthermore, as the spectrum of such available technologies is rapidly broadening, the necessity to offer clear guidelines when choosing practical solutions to engineering problems is becoming a must, not only for teachers but for project leaders as well

    The Rascal meta-programming language - a lab for software analysis, transformation, generation & visualization

    Get PDF
    National audienceThis paper summarizes the goals and features of a do- main specific programming language called Rascal. On the one hand it is designed to facilitate software research -- research about software in general. On the other hand Rascal is applied to specific software portfolios as well, as a means to improve them and as a means to learn to understand them. Specifically, Rascal is used create tools that analyze, transform, generate or visualize source code of software products. Such tools are motivated by the need to im- prove quality of existing software or the need to lower its cost-of-ownership. More generally such tools are cre- ated to build laboratory experiments that observe and measure quality, or try and improve software quality, etc. In this paper we provide an overview of Rascal as a "domain specific language for meta programming". We first explain its goals and then its features. We end by highlighting some example applications in the area of software analysis and transformation

    Kassandra: The Automatic Grading System

    Get PDF
    An automatic grading system is presented for grading assignments in scientific computing. A student can interactively use this system to check the correctness of his program assignments. The grade for a correct solution is automatically recorded. This paper also considers the security problems with such an automatic grading system. (Also cross-referenced as UMIACS-TR-94-59

    Evolving Software with Extensible Modules

    Get PDF
    We present the design of the programming language Keris, an extension of Java with explicit support for software evolution. Keris introduces extensible modules as the basic building blocks for software. Modules are composed hierarchically revealing explicitly the architecture of systems. A distinct feature of the module design is that modules do not get linked manually. Instead, the wiring of modules gets infered. The module assembly and refinement mechanism of Keris is not restricted to the unanticipated extensibility of atomic modules. It also allows to extend fully linked systems by replacing selected submodules with compatible versions without needing to re-link the full system. Extensibility is type-safe and non-invasive; i.e. the extension of a module preserves the original version and does not require access to source code
    • …
    corecore