726 research outputs found

    Incremental and Modular Context-sensitive Analysis

    Full text link
    Context-sensitive global analysis of large code bases can be expensive, which can make its use impractical during software development. However, there are many situations in which modifications are small and isolated within a few components, and it is desirable to reuse as much as possible previous analysis results. This has been achieved to date through incremental global analysis fixpoint algorithms that achieve cost reductions at fine levels of granularity, such as changes in program lines. However, these fine-grained techniques are not directly applicable to modular programs, nor are they designed to take advantage of modular structures. This paper describes, implements, and evaluates an algorithm that performs efficient context-sensitive analysis incrementally on modular partitions of programs. The experimental results show that the proposed modular algorithm shows significant improvements, in both time and memory consumption, when compared to existing non-modular, fine-grain incremental analysis techniques. Furthermore, thanks to the proposed inter-modular propagation of analysis information, our algorithm also outperforms traditional modular analysis even when analyzing from scratch.Comment: 56 pages, 27 figures. To be published in Theory and Practice of Logic Programming. v3 corresponds to the extended version of the ICLP2018 Technical Communication. v4 is the revised version submitted to Theory and Practice of Logic Programming. v5 (this one) is the final author version to be published in TPL

    A model of software component interactions using the call graph technique

    Get PDF
    Interaction information that is related to operations between components is important, especially when the program needs to be modified and maintained. Therefore, the affected components must be identified and matched based on the requirement of the system. This information can be obtained through performing the code review technique, which requires an analyst to search for specific information from the source code, which is a very time consuming process. This research proposed a model for representing software component interactions where this information was automatically extracted from the source code in order to provide an effective display for the software components interaction representation. The objective was achieved through applying a research design methodology, which consists of five phases: awareness of the problem, suggestion, development, evaluation, and conclusion. The development phase was conducted by automatically extracting the components‘ interaction information using appropriate reverse engineering tools and supporting programs that were developed in this research. These tools were used to extract software information, extract the information of component interactions in software programs, and transform this information into the proposed model, which was in the form of a call graph. The produced model was evaluated using a visualization tool and by expert review. The visualization tool was used to display the call graph from a text format into a graphical view. The processed model evaluation was conducted through an expert review technique. The findings from the model evaluation show that the produced model can be used and manipulated to visualize the component interactions. It provides a process that allows a visualization display for analysts to view the interaction of software components in order to comprehend the components integrations that are involved. This information can be manipulated and improved the program comprehension, especially for other software maintenance purposes

    Incrementalizing Lattice-Based Program Analyses in Datalog

    Get PDF
    Program analyses detect errors in code, but when code changes frequently as in an IDE, repeated re-analysis from-scratch is unnecessary: It leads to poor performance unless we give up on precision and recall. Incremental program analysis promises to deliver fast feedback without giving up on precision or recall by deriving a new analysis result from the previous one. However, Datalog and other existing frameworks for incremental program analysis are limited in expressive power: They only support the powerset lattice as representation of analysis results, whereas many practically relevant analyses require custom lattices and aggregation over lattice values. To this end, we present a novel algorithm called DRedL that supports incremental maintenance of recursive lattice-value aggregation in Datalog. The key insight of DRedL is to dynamically recognize increasing replacements of old lattice values by new ones, which allows us to avoid the expensive deletion of the old value. We integrate DRedL into the analysis framework IncA and use IncA to realize incremental implementations of strong-update points-to analysis and string analysis for Java. As our performance evaluation demonstrates, both analyses react to code changes within milliseconds

    Taming the Static Analysis Beast

    Get PDF
    While industrial-strength static analysis over large, real-world codebases has become commonplace, so too have difficult-to-analyze language constructs, large libraries, and popular frameworks. These features make constructing and evaluating a novel, sound analysis painful, error-prone, and tedious. We motivate the need for research to address these issues by highlighting some of the many challenges faced by static analysis developers in today\u27s software ecosystem. We then propose our short- and long-term research agenda to make static analysis over modern software less burdensome

    Incremental Analysis of Programs

    Get PDF
    Algorithms used to determine the control and data flow properties of computer programs are generally designed for one-time analysis of an entire new input. Application of such algorithms when the input is only slightly modified results in an inefficient system. In this theses a set of incremental update algorithms are presented for data flow analysis. These algorithms update the solution from a previous analysis to reflect changes in the program. Thus, extensive reanalysis to reflect changes in the program. Thus, extensive reanalysis of programs after each program modification can be avoided. The incremental update algorithms presented for global flow analysis are based on Hecht/Ullman iterative algorithms. Banning\u27s interprocedural data flow analysis algorithms form the basis for the incremental interprocedural algorithms

    Educational Considerations, vol. 39(1) Full Issue

    Get PDF
    Educational Considerations, vol. 39(1)-Fall 2011-Full issu

    CLiFF Notes: Research In Natural Language Processing at the University of Pennsylvania

    Get PDF
    The Computational Linguistics Feedback Forum (CLIFF) is a group of students and faculty who gather once a week to discuss the members\u27 current research. As the word feedback suggests, the group\u27s purpose is the sharing of ideas. The group also promotes interdisciplinary contacts between researchers who share an interest in Cognitive Science. There is no single theme describing the research in Natural Language Processing at Penn. There is work done in CCG, Tree adjoining grammars, intonation, statistical methods, plan inference, instruction understanding, incremental interpretation, language acquisition, syntactic parsing, causal reasoning, free word order languages, ... and many other areas. With this in mind, rather than trying to summarize the varied work currently underway here at Penn, we suggest reading the following abstracts to see how the students and faculty themselves describe their work. Their abstracts illustrate the diversity of interests among the researchers, explain the areas of common interest, and describe some very interesting work in Cognitive Science. This report is a collection of abstracts from both faculty and graduate students in Computer Science, Psychology and Linguistics. We pride ourselves on the close working relations between these groups, as we believe that the communication among the different departments and the ongoing inter-departmental research not only improves the quality of our work, but makes much of that work possible

    Big Data Computing for Geospatial Applications

    Get PDF
    The convergence of big data and geospatial computing has brought forth challenges and opportunities to Geographic Information Science with regard to geospatial data management, processing, analysis, modeling, and visualization. This book highlights recent advancements in integrating new computing approaches, spatial methods, and data management strategies to tackle geospatial big data challenges and meanwhile demonstrates opportunities for using big data for geospatial applications. Crucial to the advancements highlighted in this book is the integration of computational thinking and spatial thinking and the transformation of abstract ideas and models to concrete data structures and algorithms

    Prozedurale Anforderungen an die maschinelle Sprachverarbeitung : Workshop während der Jahrestagung KI-94 Saarbrücken

    Get PDF
    Die Verarbeitung gesprochener Sprache stellt besondere Anforderungen an die Architektur und die Gestaltung einzelner Komponenten in Systemen zur maschinelle Sprachverarbeitung Der Workshop thematisiert die Konsequenzen, die sich aus der Forderung nach inkrementeller und zeitsynchroner Verarbeitung, sowie aus der inhärenten Unsicherheit bei der Interpretation des Sprachsignals ergeben. Sprachliche Kommunikation, insbesondere in natürlichen Dialogsituationen, unterliegt einer Reihe von einschneidenden prozeduralen Anforderungen. Solche Anforderungen ergeben sich zum einen aus der strikten Bindung von Sprachperzeption und -produktion an die zeitliche Dimension des Sprachsignals. Die prinzipielle Begrenztheit der menschlichen (und maschinellen) Verarbeitungskapazität setzt hierbei zwangsläufig eine hocheffiziente Organisation der Verarbeitungsprozesse voraus, um auch unter dem Einfluß von Streßfaktoren ein Schritthalten der Verarbeitung mit den Erfordernissen der jeweiligen Kommunikationssituation gewährleisten zu können. Prozedurale Anforderungen resultieren zum anderen aus der erheblichen intra- und interindividuellen Varianz des Sprachsignals. Sie stellt eine wesentliche Quelle von Erkennungsunsicherheit dar und hat zur Folge, dass jedwede interpretierende Beschreibung des sprachlichen Inputs nur Hypothesencharakter tragen kann. Im Bereich der Schriftsprache ist die Zeitdimension auf Anordnungsrelationen zwischen sprachlichen Zeichen reduziert. Erkennungsunsicherheit spielt - zumindest bei der tastaturgebundenen Eingabe - keine entscheidende Rolle. Nur aufgrund dieser Abstraktionen ist es letztendlich auch möglich, eine Verarbeitungsaufgabe vollständig auf der Basis rein deklarativer Spezifikationen zu beschreiben und von einem kombinatorischen und atemporalen Deduktionsmechanismus verarbeiten zu lassen. Wenn nunmehr in diesem Workshop gerade die prozeduralen Aspekte der zeitlichen Strukturierung und der Verwaltung konkurrierender Hypothesen in den Mittelpunkt gestellt werden, so versteht sich das keineswegs als Absage an die Verwendung deklarativer Repräsentationsformalismen. Vielmehr wird hierbei gerade zu klären sein, auf welche Weise deklarative Spezifikationen in eine geeignete Verarbeitungsarchitektur eingebetet werden können, um auf dieser Grundlage die gewünschten Verarbeitungscharakteristika zu erzielen. Als Ausgangspunkt, Vergleichsmaßstab und Inspirationsquelle bietet sich naturgemäß das menschliche Vorbild an, ist es doch bisher einzig der Mensch der über Sprachverarbeitungskapazitäten der angestrebten Art verfügt. Eine wesentliche Eigenschaft natürlicher Sprachverarbeitung ist ihre Inkrementalität. Teilabschnitte einer sprachlichen Äußerung werden dabei auf den verschiedenen Ebenen zeitlich parallel und praktisch verzögerungsfrei bearbeitet Insbesondere schließt inkrementelle Verarbeitung ausdrücklich das traditionell dominierende Verarbeitungsmodell aus, das vom Vorliegen vollständiger Eingabedaten schon bei Verarbeitungsbeginn ausgeht. Zum einen ermöglicht erst eine inkrementelle Verarbeitung ein natürliches Dialogverhalten, das sich etwa durch unmittelbare Reaktionen auf die Beiträge der Dialogpartner, sowie die Fähigkeit zur Übernahme der Dialoginitiative auszeichne. Zum anderen ist sie Voraussetzung für die dynamische Generierung von Diskurserwartungen, dem wohl wirksamsten Mittel zur Suchraumbeschränkung beim Sprachverstehen. Die Forderung nach inkrementeller Verarbeitung besteht für ein Sprachverarbeitungssystem in seiner Gesamtheit Inkrementalität kann in ihren Vorzügen nur dann voll zur Wirkung kommen, wenn sie auf allen Ebenen des Verarbeitungsprozesses durchgängig realisiert ist. Nicht zuletzt aus diesem Grunde sind auf dem Workshop Beiträge zu inkrementellen Verfahren in so unterschiedlichen Bereichen wie der Worterkennung, der syntaktischen Analyse und der Generierung vertreten. Menschliche Sprachverarbeitung verläuft in ihren wesentlichen Zügen zeitsynchron. Eine solche Forderung auch auf maschinelle Sprachverarbeitungssysteme zu übertragen, scheint auf den ersten Blick nahe liegend, ist aber angesichts der kombinatorischen Eigenschaften der üblichen Verarbeitungsalgorithmen durchaus nicht selbstverständlich und schon gar nicht trivial. Die Anpassung der Verarbeitungsprozesse an den aktuell gegebenen zeitlichen Verarbeitungsdruck erfordert ein explizites und zeitsensitives Scheduling für die vorhandenen Verarbeitungskapazitäten Fragen der Aufmerksamkeitsfokussierung und des systematischen Vergessens von Teilergebnissen werden zwangsläufig eine wichtige Rolle spielen. Grundlage dafür sind Relevanzabschätzungen, die mit der erforderlichen Zuverlässigkeit wiederum nur vor dem Hintergrund von aussagekräftigen Diskurserwartungen getroffen werden können. Zu all diesen Fragestellungen befindet sich die Forschung noch ganz am Anfang

    Prozedurale Anforderungen an die maschinelle Sprachverarbeitung : Workshop während der Jahrestagung KI-94 Saarbrücken

    Get PDF
    Die Verarbeitung gesprochener Sprache stellt besondere Anforderungen an die Architektur und die Gestaltung einzelner Komponenten in Systemen zur maschinelle Sprachverarbeitung Der Workshop thematisiert die Konsequenzen, die sich aus der Forderung nach inkrementeller und zeitsynchroner Verarbeitung, sowie aus der inhärenten Unsicherheit bei der Interpretation des Sprachsignals ergeben. Sprachliche Kommunikation, insbesondere in natürlichen Dialogsituationen, unterliegt einer Reihe von einschneidenden prozeduralen Anforderungen. Solche Anforderungen ergeben sich zum einen aus der strikten Bindung von Sprachperzeption und -produktion an die zeitliche Dimension des Sprachsignals. Die prinzipielle Begrenztheit der menschlichen (und maschinellen) Verarbeitungskapazität setzt hierbei zwangsläufig eine hocheffiziente Organisation der Verarbeitungsprozesse voraus, um auch unter dem Einfluß von Streßfaktoren ein Schritthalten der Verarbeitung mit den Erfordernissen der jeweiligen Kommunikationssituation gewährleisten zu können. Prozedurale Anforderungen resultieren zum anderen aus der erheblichen intra- und interindividuellen Varianz des Sprachsignals. Sie stellt eine wesentliche Quelle von Erkennungsunsicherheit dar und hat zur Folge, dass jedwede interpretierende Beschreibung des sprachlichen Inputs nur Hypothesencharakter tragen kann. Im Bereich der Schriftsprache ist die Zeitdimension auf Anordnungsrelationen zwischen sprachlichen Zeichen reduziert. Erkennungsunsicherheit spielt - zumindest bei der tastaturgebundenen Eingabe - keine entscheidende Rolle. Nur aufgrund dieser Abstraktionen ist es letztendlich auch möglich, eine Verarbeitungsaufgabe vollständig auf der Basis rein deklarativer Spezifikationen zu beschreiben und von einem kombinatorischen und atemporalen Deduktionsmechanismus verarbeiten zu lassen. Wenn nunmehr in diesem Workshop gerade die prozeduralen Aspekte der zeitlichen Strukturierung und der Verwaltung konkurrierender Hypothesen in den Mittelpunkt gestellt werden, so versteht sich das keineswegs als Absage an die Verwendung deklarativer Repräsentationsformalismen. Vielmehr wird hierbei gerade zu klären sein, auf welche Weise deklarative Spezifikationen in eine geeignete Verarbeitungsarchitektur eingebetet werden können, um auf dieser Grundlage die gewünschten Verarbeitungscharakteristika zu erzielen. Als Ausgangspunkt, Vergleichsmaßstab und Inspirationsquelle bietet sich naturgemäß das menschliche Vorbild an, ist es doch bisher einzig der Mensch der über Sprachverarbeitungskapazitäten der angestrebten Art verfügt. Eine wesentliche Eigenschaft natürlicher Sprachverarbeitung ist ihre Inkrementalität. Teilabschnitte einer sprachlichen Äußerung werden dabei auf den verschiedenen Ebenen zeitlich parallel und praktisch verzögerungsfrei bearbeitet Insbesondere schließt inkrementelle Verarbeitung ausdrücklich das traditionell dominierende Verarbeitungsmodell aus, das vom Vorliegen vollständiger Eingabedaten schon bei Verarbeitungsbeginn ausgeht. Zum einen ermöglicht erst eine inkrementelle Verarbeitung ein natürliches Dialogverhalten, das sich etwa durch unmittelbare Reaktionen auf die Beiträge der Dialogpartner, sowie die Fähigkeit zur Übernahme der Dialoginitiative auszeichne. Zum anderen ist sie Voraussetzung für die dynamische Generierung von Diskurserwartungen, dem wohl wirksamsten Mittel zur Suchraumbeschränkung beim Sprachverstehen. Die Forderung nach inkrementeller Verarbeitung besteht für ein Sprachverarbeitungssystem in seiner Gesamtheit Inkrementalität kann in ihren Vorzügen nur dann voll zur Wirkung kommen, wenn sie auf allen Ebenen des Verarbeitungsprozesses durchgängig realisiert ist. Nicht zuletzt aus diesem Grunde sind auf dem Workshop Beiträge zu inkrementellen Verfahren in so unterschiedlichen Bereichen wie der Worterkennung, der syntaktischen Analyse und der Generierung vertreten. Menschliche Sprachverarbeitung verläuft in ihren wesentlichen Zügen zeitsynchron. Eine solche Forderung auch auf maschinelle Sprachverarbeitungssysteme zu übertragen, scheint auf den ersten Blick nahe liegend, ist aber angesichts der kombinatorischen Eigenschaften der üblichen Verarbeitungsalgorithmen durchaus nicht selbstverständlich und schon gar nicht trivial. Die Anpassung der Verarbeitungsprozesse an den aktuell gegebenen zeitlichen Verarbeitungsdruck erfordert ein explizites und zeitsensitives Scheduling für die vorhandenen Verarbeitungskapazitäten Fragen der Aufmerksamkeitsfokussierung und des systematischen Vergessens von Teilergebnissen werden zwangsläufig eine wichtige Rolle spielen. Grundlage dafür sind Relevanzabschätzungen, die mit der erforderlichen Zuverlässigkeit wiederum nur vor dem Hintergrund von aussagekräftigen Diskurserwartungen getroffen werden können. Zu all diesen Fragestellungen befindet sich die Forschung noch ganz am Anfang
    corecore