163 research outputs found

    Static Analysis of Functional Programs

    Get PDF
    In this paper, the static analysis of programs in the functional programming language Miranda* is described based on two graph models. A new control-flow graph model of Miranda definitions is presented, and a model with four classes of callgraphs. Standard software metrics are applicable to these models. A Miranda front end for Prometrix, ¿, a tool for the automated analysis of flowgraphs and callgraphs, has been developed. This front end produces the flowgraph and callgraph representations of Miranda programs. Some features of the metric analyser are illustrated with an example program. The tool provides a promising access to standard metrics on functional programs

    Systematic evaluation of design choices for software development tools

    Get PDF
    [Abstract]: Most design and evaluation of software tools is based on the intuition and experience of the designers. Software tool designers consider themselves typical users of the tools that they build and tend to subjectively evaluate their products rather than objectively evaluate them using established usability methods. This subjective approach is inadequate if the quality of software tools is to improve and the use of more systematic methods is advocated. This paper summarises a sequence of studies that show how user interface design choices for software development tools can be evaluated using established usability engineering techniques. The techniques used included guideline review, predictive modelling and experimental studies with users

    Structured editing of literate programs

    Get PDF

    Towards automated support for extraction of reusable components

    Get PDF
    A cost effective introduction of software reuse techniques requires the reuse of existing software developed in many cases without aiming at reusability. This paper discusses the problems related to the analysis and reengineering of existing software in order to reuse it. We introduce a process model for component extraction and focus on the problem of analyzing and qualifying software components which are candidates for reuse. A prototype tool for supporting the extraction of reusable components is presented. One of the components of this tool aids in understanding programs and is based on the functional model of correctness. It can assist software engineers in the process of finding correct formal specifications for programs. A detailed description of this component and an example to demonstrate a possible operational scenario are given

    AN ENVIRONMENT FOR ENGINEERING EXTENDED AFFIX GRAMMAR ENVIRONMENTS

    Get PDF
    Existing formalisms for the specification of programming environments are complex and strongly biased by the problems of environment generation. It has been investigated whether a simple two-level grammar, describing a programming language, can be used without further modification for the generation of an environment for that language. We believe that there is enough information in most language definitions - albeit implicitly - to generate most of the tools used in syntax-directed editors. This paper proposes some simple and elegant improvements in the use of place- holders and templates, and in the unparsing mechanism. Although the improvements are implemented in a completely newly designed prototype they can also be applied to existing syntax-directed editors to improve their workability

    Generating direct manipulation program editors

    Get PDF
    Language specific editors are cognisant of the syntax and semantics of the programming language they manipulate. Despite the various potential advantages of language specific editors, they have not been widely accepted by software developers for serious software development. On the other hand direct manipulation editors, which are also cognisant of the entities they manipulate, have proven to be successful in other domains such as drawing and VLSI design tools. Thus, it is worth while investigating the incorporation of direct manipulation mechanisms into program editors. This paper presents a technique for specifying direct manipulation editing of programs which is amenable to the generation of language specific editors incorporating direct manipulation from a specification of the desired editing mechanisms

    Zipper-based embedding of modern attribute grammar extensions

    Get PDF
    This research abstract describes the research plan for a Ph.D project. We plan to define a powerful and elegant embedding of modern extensions to attribute grammars. Attribute grammars are a suitable formalism to express complex, multiple traversal algorithms. In recent years there has been a lot of work in attribute grammars, namely by defining new extensions to the formalism (forwarding and reference attribute grammars, etc), by proposing new attribute evaluation models (lazy and circular evaluators, etc) and by embedding attribute grammars (like first class attribute grammars). We will study how to design such extensions through a zipper-based embedding and we will study eficient evaluation models for this embedding. Finally, we will express several attribute grammars in our setting and we will analyse the performance of our implementation.(undefined
    • …
    corecore