7,700 research outputs found
SAGA: A project to automate the management of software production systems
The project to automate the management of software production systems is described. The SAGA system is a software environment that is designed to support most of the software development activities that occur in a software lifecycle. The system can be configured to support specific software development applications using given programming languages, tools, and methodologies. Meta-tools are provided to ease configuration. Several major components of the SAGA system are completed to prototype form. The construction methods are described
Contributions to the Construction of Extensible Semantic Editors
This dissertation addresses the need for easier construction and extension of language tools. Specifically, the construction and extension of so-called semantic editors is considered, that is, editors providing semantic services for code comprehension and manipulation. Editors like these are typically found in state-of-the-art development environments, where they have been developed by hand. The list of programming languages available today is extensive and, with the lively creation of new programming languages and the evolution of old languages, it keeps growing. Many of these languages would benefit from proper tool support. Unfortunately, the development of a semantic editor can be a time-consuming and error-prone endeavor, and too large an effort for most language communities. Given the complex nature of programming, and the huge benefits of good tool support, this lack of tools is problematic. In this dissertation, an attempt is made at narrowing the gap between generative solutions and how state-of-the-art editors are constructed today. A generative alternative for construction of textual semantic editors is explored with focus on how to specify extensible semantic editor services. Specifically, this dissertation shows how semantic services can be specified using a semantic formalism called refer- ence attribute grammars (RAGs), and how these services can be made responsive enough for editing, and be provided also when the text in an editor is erroneous. Results presented in this dissertation have been found useful, both in industry and in academia, suggesting that the explored approach may help to reduce the effort of editor construction
Assessing schematic knowledge of introductory probability theory
[Abstract]: The ability to identify schematic knowledge is an important goal for both assessment
and instruction. In the current paper, schematic knowledge of statistical probability theory is
explored from the declarative-procedural framework using multiple methods of assessment.
A sample of 90 undergraduate introductory statistics students was required to classify 10
pairs of probability problems as similar or different; to identify whether 15 problems
contained sufficient, irrelevant, or missing information (text-edit); and to solve 10 additional
problems. The complexity of the schema on which the problems were based was also
manipulated. Detailed analyses compared text-editing and solution accuracy as a function of
text-editing category and schema complexity. Results showed that text-editing tends to be
easier than solution and differentially sensitive to schema complexity. While text-editing and
classification were correlated with solution, only text-editing problems with missing
information uniquely predicted success. In light of previous research these results suggest
that text-editing is suitable for supplementing the assessment of schematic knowledge in
development
A model for inter-module analysis and optimizing compilation
Recent research into the implementation of logic programming
languages has demonstrated that global program analysis can be used to speed up execution by an order of magnitude. However, currently such global program analysis requires the program to be analysed as a whole: sepárate compilation of modules is not supported. We describe and empirically evalúate a simple model for extending global program
analysis to support sepárate compilation of modules. Importantly, our model supports context-sensitive program analysis and multi-variant specialization of procedures in the modules
Language Parametric Module Management for IDEs
An integrated development environment (IDE) monitors all the changes that a user makes to source code modules and responds accordingly by flagging errors, by reparsing, by rechecking, or by recompiling modules and by adjusting visualizations or other information derived from a module. A module manager is the central component of the IDE that is responsible for this behavior. Although the overall functionality of a module manager in a given IDE is fixed, its actual behavior strongly depends on the programming languages it has to support. What is a module? How do modules depend on each other? What is the effect of a change to a module? We propose a concise design for a language parametric module manager: a module manager that is parameterized with the module behavior of a specific language. We describe the design of our module manager and discuss some of its properties. We also report on the application of the module manager in the construction of IDEs for the specification language ASF+SDF as well as for Java. Our overall goal is the rapid development (generation) of IDEs for programming languages and domain specific languages. The module manager presented here represents a next step in the creation of such generic language workbenches
User-centred design of flexible hypermedia for a mobile guide: Reflections on the hyperaudio experience
A user-centred design approach involves end-users from the very beginning. Considering users at the early stages compels designers to think in terms of utility and usability and helps develop the system on what is actually needed. This paper discusses the case of HyperAudio, a context-sensitive adaptive and mobile guide to museums developed in the late 90s. User requirements were collected via a survey to understand visitors’ profiles and visit styles in Natural Science museums. The knowledge acquired supported the specification of system requirements, helping defining user model, data structure and adaptive behaviour of the system. User requirements guided the design decisions on what could be implemented by using simple adaptable triggers and what instead needed more sophisticated adaptive techniques, a fundamental choice when all the computation must be done on a PDA. Graphical and interactive environments for developing and testing complex adaptive systems are discussed as a further
step towards an iterative design that considers the user interaction a central point. The paper discusses
how such an environment allows designers and developers to experiment with different system’s behaviours and to widely test it under realistic conditions by simulation of the actual context evolving over time. The understanding gained in HyperAudio is then considered in the perspective of the
developments that followed that first experience: our findings seem still valid despite the passed time
MultiView-Merlin: An experiment in tool integration
The experiment described in this paper involved the integration of a process-centred software development environment (Merlin) and a multi-view integrated software development environment (MultiView). These two tools were developed separately from each other, with no expectation that they would ever be integrated into a single integrated software engineering environment. This paper first briefly presents the separate environments and then describes the technique used to integrate them. This technique centres on the development of an adaptor process to mediate between the environments. It was first necessary to identify the point at which to connect the two environments, and then to design and implement an appropriate process to pass commands between them. This work has resulted in enhancements to both of the individual tools and has created a combined environment which exploits the advantages of both of the original environments
Syntax tree fingerprinting: a foundation for source code similarity detection
Plagiarism detection and clone refactoring in software depend on one common concern: nding similar source chunks across large repositories. However, since code duplication in software is often the result of copy-paste behaviors, only minor modi cations are expected between shared codes. On the contrary, in a plagiarism detection context, edits are more extensive and exact matching strategies show their limits. Among the three main representations used by source code similarity detection tools, namely the linear token sequences, the Abstract Syntax Tree (AST) and the Program Depen- dency Graph (PDG), we believe that the AST could e ciently support the program analysis and transformations required for the advanced similarity detection process. In this paper we present a simple and scalable architecture based on syntax tree nger- printing. Thanks to a study of several hashing strategies reducing false-positive collisions, we propose a framework that e ciently indexes AST representations in a database, that quickly detects exact (w.r.t source code abstraction) clone clusters and that easily retrieves their corresponding ASTs. Our aim is to allow further processing of neighboring exact matches in order to identify the larger approximate matches, dealing with the common modi cation patterns seen in the intra-project copy-pastes and in the plagiarism cases
- …