comp.lang.ada
 help / color / mirror / Atom feed
* Re: Mneson use experience, limits
       [not found]               ` <0d720a30e3699305d4695c57014bdd24@itmag.ru>
@ 2005-04-18 13:28                 ` Marius Amado Alves
  0 siblings, 0 replies; only message in thread
From: Marius Amado Alves @ 2005-04-18 13:28 UTC (permalink / raw)
  To: Xlex; +Cc: comp.lang.ada

>> a) Berkeley DB is not Ada
>
> Yes, that's true, but there is some Ada bindings:
> http://groups-beta.google.com/group/comp.lang.ada/browse_frm/thread/ 
> 5de3cdb361233cf6/9119fcb390feca4c#9119fcb390feca4c

I saw this little thread on Google. I get comp.lang.ada via the  
Ada-France email gateway which seems to be having problems lately. So  
please CC your replies to me.

On the subject:

It seems there is a binding to GDBM, not to Berkeley DB.

Speaking personally, I'd have to consider the cost of writing a binding  
to Berkeley DB vs. writing a persistent version of Ada.Containers as  
sketched on my Ada-Europe 2004 paper "A Theory of Persistent Containers  
and its Application to Ada." Call it SCOPE, for Signatured COntainers  
with PErsistence. Some preliminary experiments can be found here:

    http://www.liacc.up.pt/~maa/containers/

The main motivation is the prospect of using SCOPE together with the  
concurrency and distributed features of Ada to make an elegant and  
reliable database engine inherently more appropriate for Ada  
applications than any binding to an external C library.

SCOPE design is based on Ada.Containers (Ada 2005) and an additional  
uni-elementary container abstraction called Cells. Cells are written  
from scratch. SCOPE multi-elementary containers are a rewrite of  
Ada.Containers with:

- in the body: all allocation, writing and reading primitive operations  
replaced by cell operations, or by operations of a container based on  
Cells;

- in the spec: formal cell packages added (maybe generic, possible in  
Ada 2005); one for the main data; if required, another one for  
auxiliary data; the Element_Type may be dropped, as the main data cell  
package already defines it.

A persistence container is obtained by instantiation with the cell  
packages of the required persistence levels. Multiple instantiation can  
be hidden by means of predefined packages (generated automatically).

I'd love to see this project realised in great extent by means of  
automatic rewriting of an Ada.Containers implementation, probably using  
Adalog's tools Adasubst, AdaControl.

An alternate approach is to use storage pools instead of Cells. This  
requires designing a file-based storage pool.

(I think both approaches would make wonderful MSc projects.  
Unfortunately at my University Ada is not welcome currently. In a year  
or two when I become a doctor this might change.)

A copy of my Ada-Europe 2004 paper can be found here:

    http://www.softdevelcoop.org/marius/paper26final.ps.zip

(267k compressed, 1M uncompressed)




^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-04-18 13:28 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <f7c5fd48ded2e62c8a57437de6c60378@itmag.ru>
     [not found] ` <007372488ab7b9e95a561ecf4da2cec0@netcabo.pt>
     [not found]   ` <17e595fb5f544d56e24cc526a7522cb7@itmag.ru>
     [not found]     ` <848df2e0afdce93a00bbaba07c7a20c6@netcabo.pt>
     [not found]       ` <615587a1f75c2eaa7bce03822bfbb5e4@itmag.ru>
     [not found]         ` <05d589c15152631778ed212a4cb7e87c@netcabo.pt>
     [not found]           ` <fa47406468c059e294b67d3318796184@itmag.ru>
     [not found]             ` <abf8dff0ce84878358a69ea5a79f3d65@netcabo.pt>
     [not found]               ` <0d720a30e3699305d4695c57014bdd24@itmag.ru>
2005-04-18 13:28                 ` Mneson use experience, limits Marius Amado Alves

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox