comp.lang.ada
 help / color / mirror / Atom feed
From: anon@anon.org (anon)
Subject: Re: memory management in Ada: tedious without GC?
Date: Fri, 16 May 2008 22:45:00 GMT
Date: 2008-05-16T22:45:00+00:00	[thread overview]
Message-ID: <M7oXj.345831$cQ1.46545@bgtnsc04-news.ops.worldnet.att.net> (raw)
In-Reply-To: 4ddef8bf-b5b1-4d7e-b75b-386cd6c8402c@l17g2000pri.googlegroups.com

        Ada is design for creating a hard optimized Ada partition (program) 
that uses no GC. In a true optimized partition the "New" function should be 
only used in the initialization stage and the "Deallocation" (free) function 
during the finalization stage. In this design the programmer can create 
their own memory management package that is needed by the partition 
which can be optimized to fit the needs of the execution of that 
partition. This way the partition does not have to wait for memory 
resources from the OS or other programs. The exception is memory page 
swapping which can be controlled by the partition in some cases.

        As for being error-prone, the answer is no.  The partition request 
all of the needed memory before it continues with the execution. In this 
way the Ada run-time system knows that it has the memory necessary for 
the execution of the partition . It might seam to be wasteful, but a hard 
optimized partition only waste a small amount of memory. The unused part 
of the allocated memory block. 


        Also, forget "C++  like" design structure it design from "C".  Ada 
and most other compilers are written using the C libraries structures not 
"C++ like".  But for some reason a lot of "C++" programmers are trying to 
alter the facts and saying "C++" instead of C. Also, the Java low-level 
routines are written in C as well. 


In <4ddef8bf-b5b1-4d7e-b75b-386cd6c8402c@l17g2000pri.googlegroups.com>, "jhc0033@gmail.com" <jhc0033@gmail.com> writes:
>I'm mostly soliciting answers from Ada programmers who know C++ RAII
>well (Skip this if you use the words "C" and "C++" interchangeably,
>please. Your answers will be misleading at best):
>
>As I understood from reading the Memory Management section of
>Wikibooks on Ada, Ada's memory management facilities are roughly
>equivalent to
>
>a. C++-like "new"
>b. C++-like "delete"
>c. Java-like "finally"
>d. your implementation may or may not have GC
>
>Did I misunderstand?
>
>To me, this seems much, much more error-prone and tedious that C++'s
>RAII approach, where you almost never have to worry about deallocation
>(i.e. "b" and "c" above), even in the presence of exceptions, unless
>you have GC. Besides, RAII applies to a bunch of other things, like
>thread locks, database connections, files - not just memory.




  parent reply	other threads:[~2008-05-16 22:45 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-16 17:44 memory management in Ada: tedious without GC? jhc0033
2008-05-16 18:56 ` Ludovic Brenta
2008-05-16 20:42 ` Maciej Sobczak
2008-05-16 21:45   ` Ivan Levashew
2008-05-16 22:59   ` Peter C. Chapin
2008-05-17  5:24     ` jhc0033
2008-05-17  7:50       ` Ivan Levashew
2008-05-16 23:05   ` Randy Brukardt
2008-05-19  3:50   ` Matthew Heaney
2008-05-19  7:55     ` Dmitry A. Kazakov
2008-05-19 13:18       ` Georg Bauhaus
2008-05-19 14:16         ` Dmitry A. Kazakov
2008-05-23 23:15       ` Robert A Duff
2008-05-24  0:45         ` Randy Brukardt
2008-05-24  8:25         ` Dmitry A. Kazakov
2008-05-24 16:14           ` Robert A Duff
2008-05-24 19:04             ` Dmitry A. Kazakov
2008-05-24 20:52               ` Robert A Duff
2008-05-25  8:12                 ` Dmitry A. Kazakov
2008-05-25 11:28                   ` Maciej Sobczak
2008-05-25 12:35                   ` Robert A Duff
2008-05-26  8:16                     ` Dmitry A. Kazakov
2008-05-24 19:39             ` Georg Bauhaus
2008-05-24 20:45               ` Robert A Duff
2008-05-19  8:35     ` Maciej Sobczak
2008-05-19 15:11       ` Matthew Heaney
2008-05-19 21:13         ` Maciej Sobczak
2008-05-23 23:03         ` Robert A Duff
2008-05-24  0:12           ` Adam Beneschan
2008-05-16 22:45 ` anon [this message]
2008-05-17  7:34 ` Pascal Obry
2008-05-17 15:11   ` Bob Klungle
2008-05-17 15:27     ` Pascal Obry
2008-05-17 16:18       ` Georg Bauhaus
2008-05-20  8:04         ` Ole-Hjalmar Kristensen
2008-05-20  8:01       ` Ole-Hjalmar Kristensen
2008-05-20 10:03         ` Martin Krischik
2008-05-17 17:23     ` Martin Krischik
2008-05-17 16:51   ` Maciej Sobczak
2008-05-17 17:45     ` Pascal Obry
2008-05-17 22:28       ` Samuel Tardieu
2008-05-18  7:03         ` Martin Krischik
2008-05-18  8:50           ` jhc0033
2008-05-18  9:31             ` Dmitry A. Kazakov
2008-05-18 14:10               ` Maciej Sobczak
2008-05-18 14:59                 ` Dmitry A. Kazakov
2008-05-18 20:51                   ` Maciej Sobczak
2008-05-19  8:36                     ` Dmitry A. Kazakov
2008-05-18 15:03             ` Martin Krischik
2008-05-18 18:27               ` jhc0033
2008-05-19  4:12                 ` Matthew Heaney
2008-05-19  8:39                   ` Maciej Sobczak
2008-05-19 15:37                     ` Matthew Heaney
2008-05-19 21:21                       ` Maciej Sobczak
2008-05-19 23:02                         ` Matthew Heaney
2008-05-19 10:27                 ` Martin Krischik
2008-05-17 22:42       ` Peter C. Chapin
2008-05-18  6:58         ` Martin Krischik
2008-05-18  6:52     ` Martin Krischik
2008-05-18 14:16       ` Maciej Sobczak
2008-05-17 14:30 ` Brian Drummond
2008-05-17 16:47   ` Maciej Sobczak
2008-05-19 14:45     ` Brian Drummond
2008-05-20  7:42       ` Maciej Sobczak
2008-05-20 18:01         ` jayessay
2008-05-18  8:06   ` Simon Wright
2008-05-18 14:21     ` Maciej Sobczak
2008-05-18 20:48       ` Simon Wright
2008-05-19 14:40     ` Brian Drummond
2008-05-19  3:44 ` Matthew Heaney
replies disabled

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