1996
AUTHORSCem Evrendilek , Asuman Dogac , Tolga Gesli
ABSTRACTIn conventional object oriented programming languages, objects are transient, that is they are destroyed upon program termination. Storing objects using explicit file access methods may cause objects to lose their manipulation and access semantics since the objects with different declarations may have the same storage representation. In this work persistence is added to C++ in DOS environment through a preprocessor and a class library developed in C++, such that the access and manipulation semantics of objects are preserved. The new language is called C**. The disk management of objects declared as persistent are automatically handled by the system through a virtual memory management emulation. Persistency is implemented as a storage class that is completely orthogonal to type. In other words, persistency is a property of objects, not their classes. Language changes are kept to a minimum, thus among the existing persistent C++ implementations, C** requires the minimum coding effort. Furthermore objects of any complexity with arbitrary level of pointer indirections to any type of object is supported. As a result, objects are stored on disk as they are represented in memory. Upward compatibility with C++ is preserved. The hybrid object identifier (OID) mechanism implemented in C** enables dynamic clustering and reduction in the object table size. Although there are several other persistent C++ implementations, the implementation technique of C** is original in that it provides the user with transparent type modifications and uses operator overloading extensively in realizing persistency. To the best of our knowledge C** is the first persistent C++ implementation on DOS with persistence as a storage class. More... »
PAGES235-251
Advances in Databases and Information Systems
ISBN
978-3-540-76014-6
978-1-4471-1486-4
http://scigraph.springernature.com/pub.10.1007/978-1-4471-1486-4_16
DOIhttp://dx.doi.org/10.1007/978-1-4471-1486-4_16
DIMENSIONShttps://app.dimensions.ai/details/publication/pub.1010296669
JSON-LD is the canonical representation for SciGraph data.
TIP: You can open this SciGraph record using an external JSON-LD service: JSON-LD Playground Google SDTT
[
{
"@context": "https://springernature.github.io/scigraph/jsonld/sgcontext.json",
"about": [
{
"id": "http://purl.org/au-research/vocabulary/anzsrc-for/2008/0806",
"inDefinedTermSet": "http://purl.org/au-research/vocabulary/anzsrc-for/2008/",
"name": "Information Systems",
"type": "DefinedTerm"
},
{
"id": "http://purl.org/au-research/vocabulary/anzsrc-for/2008/08",
"inDefinedTermSet": "http://purl.org/au-research/vocabulary/anzsrc-for/2008/",
"name": "Information and Computing Sciences",
"type": "DefinedTerm"
}
],
"author": [
{
"affiliation": {
"alternateName": "Scientific and Technological Research Council of Turkey",
"id": "https://www.grid.ac/institutes/grid.426409.d",
"name": [
"Software Research and Development Center, Scientific and Technical Research Council of Turkey, Turkey"
],
"type": "Organization"
},
"familyName": "Evrendilek",
"givenName": "Cem",
"id": "sg:person.013633220171.70",
"sameAs": [
"https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.013633220171.70"
],
"type": "Person"
},
{
"affiliation": {
"alternateName": "Scientific and Technological Research Council of Turkey",
"id": "https://www.grid.ac/institutes/grid.426409.d",
"name": [
"Software Research and Development Center, Scientific and Technical Research Council of Turkey, Turkey"
],
"type": "Organization"
},
"familyName": "Dogac",
"givenName": "Asuman",
"id": "sg:person.01074167140.73",
"sameAs": [
"https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.01074167140.73"
],
"type": "Person"
},
{
"affiliation": {
"alternateName": "Scientific and Technological Research Council of Turkey",
"id": "https://www.grid.ac/institutes/grid.426409.d",
"name": [
"Software Research and Development Center, Scientific and Technical Research Council of Turkey, Turkey"
],
"type": "Organization"
},
"familyName": "Gesli",
"givenName": "Tolga",
"type": "Person"
}
],
"citation": [
{
"id": "https://doi.org/10.1002/spe.4380151003",
"sameAs": [
"https://app.dimensions.ai/details/publication/pub.1002286109"
],
"type": "CreativeWork"
},
{
"id": "https://doi.org/10.1145/125223.125244",
"sameAs": [
"https://app.dimensions.ai/details/publication/pub.1011188702"
],
"type": "CreativeWork"
},
{
"id": "https://doi.org/10.1016/0950-5849(90)90018-m",
"sameAs": [
"https://app.dimensions.ai/details/publication/pub.1017803818"
],
"type": "CreativeWork"
},
{
"id": "https://doi.org/10.1016/0950-5849(90)90018-m",
"sameAs": [
"https://app.dimensions.ai/details/publication/pub.1017803818"
],
"type": "CreativeWork"
},
{
"id": "https://doi.org/10.1145/125223.125238",
"sameAs": [
"https://app.dimensions.ai/details/publication/pub.1030412708"
],
"type": "CreativeWork"
},
{
"id": "https://doi.org/10.1145/62070.45066",
"sameAs": [
"https://app.dimensions.ai/details/publication/pub.1033823296"
],
"type": "CreativeWork"
}
],
"datePublished": "1996",
"datePublishedReg": "1996-01-01",
"description": "In conventional object oriented programming languages, objects are transient, that is they are destroyed upon program termination. Storing objects using explicit file access methods may cause objects to lose their manipulation and access semantics since the objects with different declarations may have the same storage representation. In this work persistence is added to C++ in DOS environment through a preprocessor and a class library developed in C++, such that the access and manipulation semantics of objects are preserved. The new language is called C**. The disk management of objects declared as persistent are automatically handled by the system through a virtual memory management emulation. Persistency is implemented as a storage class that is completely orthogonal to type. In other words, persistency is a property of objects, not their classes. Language changes are kept to a minimum, thus among the existing persistent C++ implementations, C** requires the minimum coding effort. Furthermore objects of any complexity with arbitrary level of pointer indirections to any type of object is supported. As a result, objects are stored on disk as they are represented in memory. Upward compatibility with C++ is preserved. The hybrid object identifier (OID) mechanism implemented in C** enables dynamic clustering and reduction in the object table size. Although there are several other persistent C++ implementations, the implementation technique of C** is original in that it provides the user with transparent type modifications and uses operator overloading extensively in realizing persistency. To the best of our knowledge C** is the first persistent C++ implementation on DOS with persistence as a storage class.",
"editor": [
{
"familyName": "Eder",
"givenName": "Johann",
"type": "Person"
},
{
"familyName": "Kalinichenko",
"givenName": "Leonid A.",
"type": "Person"
}
],
"genre": "chapter",
"id": "sg:pub.10.1007/978-1-4471-1486-4_16",
"inLanguage": [
"en"
],
"isAccessibleForFree": false,
"isPartOf": {
"isbn": [
"978-3-540-76014-6",
"978-1-4471-1486-4"
],
"name": "Advances in Databases and Information Systems",
"type": "Book"
},
"name": "A Preprocessor Approach to Persistent C++",
"pagination": "235-251",
"productId": [
{
"name": "doi",
"type": "PropertyValue",
"value": [
"10.1007/978-1-4471-1486-4_16"
]
},
{
"name": "readcube_id",
"type": "PropertyValue",
"value": [
"310deec813a3f99784ff30347a420fff6ed1d4e225c8c097e8c87777e3c2ef08"
]
},
{
"name": "dimensions_id",
"type": "PropertyValue",
"value": [
"pub.1010296669"
]
}
],
"publisher": {
"location": "London",
"name": "Springer London",
"type": "Organisation"
},
"sameAs": [
"https://doi.org/10.1007/978-1-4471-1486-4_16",
"https://app.dimensions.ai/details/publication/pub.1010296669"
],
"sdDataset": "chapters",
"sdDatePublished": "2019-04-15T21:00",
"sdLicense": "https://scigraph.springernature.com/explorer/license/",
"sdPublisher": {
"name": "Springer Nature - SN SciGraph project",
"type": "Organization"
},
"sdSource": "s3://com-uberresearch-data-dimensions-target-20181106-alternative/cleanup/v134/2549eaecd7973599484d7c17b260dba0a4ecb94b/merge/v9/a6c9fde33151104705d4d7ff012ea9563521a3ce/jats-lookup/v90/0000000001_0000000264/records_8690_00000249.jsonl",
"type": "Chapter",
"url": "http://link.springer.com/10.1007/978-1-4471-1486-4_16"
}
]
Download the RDF metadata as: json-ld nt turtle xml License info
JSON-LD is a popular format for linked data which is fully compatible with JSON.
curl -H 'Accept: application/ld+json' 'https://scigraph.springernature.com/pub.10.1007/978-1-4471-1486-4_16'
N-Triples is a line-based linked data format ideal for batch operations.
curl -H 'Accept: application/n-triples' 'https://scigraph.springernature.com/pub.10.1007/978-1-4471-1486-4_16'
Turtle is a human-readable linked data format.
curl -H 'Accept: text/turtle' 'https://scigraph.springernature.com/pub.10.1007/978-1-4471-1486-4_16'
RDF/XML is a standard XML format for linked data.
curl -H 'Accept: application/rdf+xml' 'https://scigraph.springernature.com/pub.10.1007/978-1-4471-1486-4_16'
This table displays all metadata directly associated to this object as RDF triples.
98 TRIPLES
23 PREDICATES
32 URIs
20 LITERALS
8 BLANK NODES