Repository logo
 

Applying Mutable Object Snapshots to a High-level Object-Oriented Language

dc.access.optionOpen Access
dc.contributor.advisorHills, Mark
dc.contributor.authorDavis, Matthew C
dc.contributor.departmentComputer Science
dc.date.accessioned2019-02-12T16:01:02Z
dc.date.available2019-02-12T16:01:02Z
dc.date.created2018-12
dc.date.issued2018-11-30
dc.date.submittedDecember 2018
dc.date.updated2019-01-08T21:13:21Z
dc.degree.departmentComputer Science
dc.degree.disciplineMS-Software Engineering
dc.degree.grantorEast Carolina University
dc.degree.levelMasters
dc.degree.nameM.S.
dc.description.abstractSoftware Engineers are familiar with mutable and immutable object state. Mutable objects shared across modules may lead to unexpected results as changes to the object in one module are visible to other modules sharing the object. When provided a mutable object as input in Java, it is common practice to defensively create a new private copy of the object bearing the same state via cloning, serializing/de-serializing, specialized object constructor, or third-party library. No universal approach exists for all scenarios and each common solution has well-known problems. This research explores the applicability of concepts within the Computer Engineering storage field related to snapshots. This exploration results in a simplified method of memory snapshotting implemented within OpenJDK 10. A novel runtime-managed method is proposed for declaring intent for object state to be unshared within the method signature. Preliminary experiments evaluate the attributes of this approach. A path for future research is proposed, including differential snapshots, alternative block sizes, improving performance, and exploring a tree of snapshots as a foundation to reason about changes to object state over time.
dc.format.mimetypeapplication/pdf
dc.identifier.urihttp://hdl.handle.net/10342/7032
dc.language.isoen
dc.publisherEast Carolina University
dc.subjectSnapshot
dc.subjectruntime
dc.subjectmutability
dc.subjectHotSpot
dc.subjectclone
dc.subjectserialize
dc.subjectcopy constructor
dc.subject.lcshComputer storage devices
dc.subject.lcshComputer engineering
dc.subject.lcshProgramming languages (Electronic computers)
dc.subject.lcshJava (Computer program language)
dc.titleApplying Mutable Object Snapshots to a High-level Object-Oriented Language
dc.typeMaster's Thesis
dc.type.materialtext

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
DAVIS-MASTERSTHESIS-2018.pdf
Size:
1.25 MB
Format:
Adobe Portable Document Format