Persistent programming language
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
Programming languages that natively and seamlessly allow objects to continue existing after the program has been closed down are called persistent programming languages. JADE is one such language.
A persistent programming language is a programming language extended with constructs to handle persistent data. It is distinguished from embedded SQL in at least two ways:
In a persistent programming language:
- The query language is fully integrated with the host language and both share the same type system.
- Any format changes required between the host language and the database are carried out transparently.
In Embedded SQL:
- Where the host language and data manipulation language have different type systems, code conversion operates outside of the OO type system, and hence has a higher chance of having undetected errors.
- Format conversion must be handled explicitly and takes a substantial amount of code.
Using Embedded SQL, a programmer is responsible for writing explicit code to fetch data into memory or store data back to the database. In a persistent programming language, a programmer can manipulate persistent data without having to write such code explicitly.
The drawbacks of persistent programming languages include:
- While they are powerful, it is easy to make programming errors that damage the database.
- It is harder to do automatic high-level optimization.
- They do not support declarative querying well.
Examples
[edit | edit source]See also
[edit | edit source]- Object-relational mapping
- Object-oriented database management systems
- Object prevalence
- Phantom OS - persistent OS project
References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).