2008 Proceedings of the Tenth Workshop on Algorithm Engineering and Experiments (ALENEX) 2008
DOI: 10.1137/1.9781611972887.4
|View full text |Cite
|
Sign up to set email alerts
|

Implementing Partial Persistence in Object-Oriented Languages

Abstract: A partially persistent data structure is a data structure which preserves previous versions of itself when it is modified. General theoretical schemes are known (e.g. the fat node method ) for making any data structure partially persistent. To our knowledge however no general implementation of these theoretical methods exists to date. This paper evaluates different methods to achieve this goal and presents the first working implementation of partial persistence in the object-oriented language Java. Our approac… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
5
0

Year Published

2008
2008
2021
2021

Publication Types

Select...
4
1

Relationship

1
4

Authors

Journals

citations
Cited by 7 publications
(5 citation statements)
references
References 41 publications
0
5
0
Order By: Relevance
“…In one project, because of existing interfaces, there were certain requirement specifications that had to be met. This portion of the project is better handled by a traditional RQ3: When scientists produce high-level requirements they rely on developers to prioritize them [29] DI2: Scientific software developers see redesign as a waste of time that risks breaking the "science" of a program [29] DI3: Object Oriented Design helps produce useful software [32][33][34] development method. In order to address the discrepancy, it was effective to utilize a method from Boehm and Turner to blend agile and traditional methodologies in order to minimize the risk in the development process.…”
Section: The Developer Forms a Basic Idea Of What Is Needed And Beginsmentioning
confidence: 99%
See 1 more Smart Citation
“…In one project, because of existing interfaces, there were certain requirement specifications that had to be met. This portion of the project is better handled by a traditional RQ3: When scientists produce high-level requirements they rely on developers to prioritize them [29] DI2: Scientific software developers see redesign as a waste of time that risks breaking the "science" of a program [29] DI3: Object Oriented Design helps produce useful software [32][33][34] development method. In order to address the discrepancy, it was effective to utilize a method from Boehm and Turner to blend agile and traditional methodologies in order to minimize the risk in the development process.…”
Section: The Developer Forms a Basic Idea Of What Is Needed And Beginsmentioning
confidence: 99%
“…The other three studies [32][33][34] dealt with projects that sought to provide modular functionality. Each of the authors found that the use of a programming language that allowed them to utilize an Object-Oriented design paradigm was necessary for their project to be successful.…”
Section: Design Issuesmentioning
confidence: 99%
“…Practically, researchers have developed generic tools, implemented in various object-oriented programming languages, to convert any data structure into a partially or fully persistent one by simply adding one keyword to its source code [13]. In other words, persistence can be obtained easily from a developer's point of view, which further motivates the development of algorithms making use of persistent structures.…”
Section: Applications Of Persistencementioning
confidence: 99%
“…If the data structure is made persistent, one can then retrieve all the information that has been swept through, by going back to previous versions. For instance, this can be used to solve optimally the segment intersection problem [1].Practically, researchers have developed generic tools, implemented in various object-oriented programming languages, to convert any data structure into a partially or fully persistent one by simply adding one keyword to its source code [13]. In other words, persistence can be obtained easily from a developer's point of view, which further motivates the development of algorithms making use of persistent structures.Finally, confluent persistence is useful in many contexts where one wants to backup all versions of some information.…”
mentioning
confidence: 99%
“…Compared to an array, whose size is fixed (at compile time or at run-time), the size of a vector can vary and memory management is handled automatically. In the computing literature, this data structure has been discussed under many names, including dynamic array [16,33], dynamic table [11], extendible array [32], extensible array [8], flexible array (term used in Algol 68), growable array [31], resizable array [10], and variable-length array [6,37]. As to the vector class in C++, its full specification together with all associated operations can be found in the C++ standard [9,19].…”
Section: Standard-compliant Vector and Relevant Extensionsmentioning
confidence: 99%