Chapter 7: A Sharing Analysis for SAFE

Peña, Ricardo; Segura, Clara; Montenegro, Manuel
September 2007
Trends in Functional Programming Volume 7;2007, Vol. 7, p109
Book Chapter
We present a sharing analysis for the functional language Safe. This is a first-order eager language with facilities for programmer-controlled destruction and copying of data structures. It provides also regions, i.e. disjoint parts of the heap where the programmer may allocate data structures. The analysis gives upper approximations to the sets of variables respectively sharing a recursive substructure, or any substructure, of a given variable. Its results will be used to guarantee that destruction facilities and region management are done in a safe way. In order to have a modular and efficient analysis, we provide signatures for functions, which summarize their sharing behaviour. The paper ends up describing the implementation of the analysis and some examples.


Related Articles

  • Improving Bit-Vector Representation of Points-To Sets Using Class Hierarchy. Toussi, Hamid A.; Khademzadeh, Ahmed // International Journal of Computer Theory & Engineering;Jun2013, Vol. 5 Issue 3, p494 

    Points-to analysis is the problem of approximating run-time values of pointers statically or at compile-time. Points-to sets are used to store the approximated values of pointers during points-to analysis. Memory usage and running time limit the ability of points-to analysis to analyze large...

  • Clusters and Dialogues for Set Implementations. Katzenelson, Jacob // IEEE Transactions on Software Engineering;May79, Vol. 5 Issue 3, p256 

    The extensible set language (ESL) uses clusters for extending the set oriented language and for mapping the sets and their operators into base language data structure and operators. The main difficulty in this mapping is the dependency among clusters, i.e., the use of one data structure requires...

  • Data Structured Programming: Program Design without Arrays and Pointers. Mills, Harlan D.; Linger, Richard C. // IEEE Transactions on Software Engineering;Feb86, Vol. 12 Issue 2, p192 

    Structured programming introduced a new discipline for accessing the instructions of a program. In suitable programming languages, this discipline can be described in terms of program design without gotos. It can be shown, for example, that any functional result achievable in a programming...

  • TEST MODULES.  // Perl Review;Summer2008, Vol. 4 Issue 3, p18 

    The article focuses on several test modules for use with Practical Extraction & Report Language (PERL) that run in conjunction with Test::More. It states that Test::Deep provides very flexible comparison functions for data structures. It notes that Test::Inline is one of the first test modules...

  • Control Computations and the Design of Loop Control Structures. Pratt, Terrence W. // IEEE Transactions on Software Engineering;Mar78, Vol. 4 Issue 2, p81 

    The control computation for a loop in a program is that part of the program concerned with the initialization, incrementation, and testing of the variables that determine the flow of control into, through, and out of the loop. The elements of loop control computatlions are identified and their...

  • Mapping the Interface Description Language Type Model into C. Karen Shannon; Richard Snodgrass // IEEE Transactions on Software Engineering;Nov89, Vol. 15 Issue 11, p1333 

    The Interface Description Language (IDL) is a notation for describing the characteristics of data structures passed among collections of cooperating processes in a programming environment. In this paper we discuss a mapping from IDL to C data structures and macro definitions that supports the...

  • Object Serialization: A Study of Techniques of Implementing Binary Serialization in C++, Java and .NET. Tauro, Clarence J. M.; Ganesan, N.; Mishra, Saumya; Bhagwat, Anupama // International Journal of Computer Applications;May2012, Vol. 45, p25 

    The process of converting a data structure or object state into a storable format is referred to as serialization. The resurrection of the stored data in the same or another computer environment is referred to as deserialization. Binary Serialization is converting the object in binary format and...

  • An Empirical Comparison of Textual and Graphical Data Structure Documentation for Cobol Programs. Lehman, John A. // IEEE Transactions on Software Engineering;Sep89, Vol. 15 Issue 9, p1131 

    This correspondence presents the results of an experimental investigation into the comparative usefulness of textual tools (what Yourdon calls "data dictionaries") and graphical tools (what Yourdon calls "data structure diagrams") for the program understanding phase of Cobol program maintenance....

  • Basics of Design. Wong, William // Electronic Design;9/1/2006, Vol. 54 Issue 19, p32a 

    The article features the graphical-based and text-based programming languages, which are algorithms that make it possible to represent program flow, data structures, and other aspects of the application. Graphical programming environments show the connection and the objects together in the same...


Read the Article


Sorry, but this item is not currently available from your library.

Try another library?
Sign out of this library

Other Topics