comp.lang.ada
 help / color / mirror / Atom feed
From: eachus@spectre.mitre.org (Robert I. Eachus)
Subject: Re: Why C++ is successful
Date: 1998/07/30
Date: 1998-07-30T00:00:00+00:00	[thread overview]
Message-ID: <EACHUS.98Jul30153757@spectre.mitre.org> (raw)
In-Reply-To: 35BF49E8.136D75C2@earthling.net

In article <35BF49E8.136D75C2@earthling.net> Charles Hixson <charleshixson@earthling.net> writes:

 > But what Ada REALLY needs is a good garbage collection mechanism.  And
 > saying "Do it by hand" doesn't qualify as good!

   The Ada philosophy is to give the programmer the tools he needs and
to allow him the freedom to create types (classes) that do what is
required for that type.  Of course there are also predefined types and
where appropriate there are directions given to the compiler writers
about those types:

   A.4.4(106): 

                     Implementation Advice

   Bounded string objects should not be implemented by implicit
pointers and dynamic allocation.


   A.4.5(88):

                     Implementation Requirements

  No storage associated with an Unbounded_String object shall be lost
upon assignment or scope exit.

    Now if you are creating a type that needs special storage
management, my experience is that it requires about six lines.  If you
are creating something more ordinary, just use components of
predefined types like Unbounded_String, and don't worry about garbage
collection.

     Yes, it is possible to write code in Ada that leaks
memory absent garbage collection, but is well behaved if garbage
collection is provided, as it is by some implementations.  But such
programs are rare.  For the large majority of Ada programs, memory
management is not an issue.  (Or at least, it isn't an issue if there
ISN'T a garbage collector.)   For a much smaller set, but probably much
larger than the set where general garbage collection is helpful, you
do need to put in some storage management code.  But with Ada 95, the
most I have ever had to do was about one page of code.  (Create a type
descended from Controlled that cleans itself up when no longer visible
by calling Unchecked_Deallocation.  These objects are often used for
communication between tasks where a simple protected type won't
do. However, I'd say that 90% of such cases all you have to do is use
Unbounded_Strings.)

    I'll post a very useful example to comp.lang.ada soon.
--

					Robert I. Eachus

with Standard_Disclaimer;
use  Standard_Disclaimer;
function Message (Text: in Clever_Ideas) return Better_Ideas is...




  parent reply	other threads:[~1998-07-30  0:00 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <35AE4621.2EBC7F6A@eiffel.com>
     [not found] ` <7hAr1.3249$9E2.2188373@news.teleport.com>
     [not found]   ` <35AF70B9.61C5BF88@oma.com>
     [not found]     ` <N.19980718.jjru@sisyphus.demon.co.uk>
     [not found]       ` <35B32BDC.5C2C@dmu.ac.uk>
     [not found]         ` <N.19980720.ulio@sisyphus.demon.co.uk>
     [not found]           ` <35B47EAD.3AA9@dmu.ac.uk>
     [not found]             ` <N.19980722.gwka@sisyphus.demon.co.uk>
     [not found]               ` <35B60AC4.D703E836@hso.link.com>
1998-07-25  0:00                 ` Bug story Fergus Henderson
1998-07-29  0:00                   ` Robert I. Eachus
     [not found] ` <6p83vj$657$1@news.intellistor.com>
     [not found]   ` <35B79E7D.6068DCDF@eiffel.com>
     [not found]     ` <6pg7fg$qhi$1@news.interlog.com>
     [not found]       ` <901533851.20058.0.nnrp-04.9e980ba3@news.demon.co.uk>
     [not found]         ` <35be2a94.57352308@netnews.msn.com>
1998-07-28  0:00           ` Why C++ is successful Rakesh Malhotra
1998-07-29  0:00             ` Tom Moran
1998-07-29  0:00               ` Ell
1998-07-29  0:00                 ` Tom Moran
1998-07-29  0:00                   ` Ell
1998-07-29  0:00             ` Dave Martin
1998-07-29  0:00               ` Jean-Pierre Rosen
1998-07-29  0:00               ` John McCabe
1998-07-29  0:00                 ` nabbasi
1998-08-08  0:00                   ` Michael Young
1998-07-29  0:00               ` Rakesh Malhotra
1998-07-29  0:00               ` Pat Rogers
1998-07-29  0:00                 ` Brian Rogoff
1998-07-29  0:00                   ` John McCabe
1998-07-29  0:00                   ` Charles Hixson
1998-07-29  0:00                     ` falis
1998-07-30  0:00                     ` Robert I. Eachus [this message]
1998-07-31  0:00                       ` Charles Hixson
1998-08-01  0:00                     ` Jay Martin
1998-08-02  0:00                       ` Robert Dewar
1998-08-01  0:00                         ` Jay Martin
1998-08-02  0:00                           ` Matthew Heaney
1998-08-02  0:00                             ` Jay Martin
1998-08-02  0:00                               ` Matthew Heaney
1998-08-02  0:00                           ` Matthew Heaney
1998-08-02  0:00                             ` Lars Farm
1998-08-02  0:00                               ` Matthew Heaney
1998-08-02  0:00                                 ` Lars Farm
1998-08-10  0:00                               ` Robert I. Eachus
1998-07-29  0:00                 ` Juan Carlos Gil Montoro
1998-07-29  0:00                   ` Pat Rogers
1998-07-29  0:00                     ` Jay Martin
1998-07-30  0:00                       ` dennison
1998-07-30  0:00                     ` Ell
1998-07-29  0:00                       ` Larry Elmore
1998-07-30  0:00                         ` Jeffrey C. Dege
1998-08-01  0:00                           ` Robert Dewar
1998-07-30  0:00                         ` Ell
1998-07-29  0:00                       ` Pat Rogers
1998-07-30  0:00                         ` Ell
1998-07-30  0:00                         ` Ell
1998-08-06  0:00 Robert Dewar
1998-08-07  0:00 ` harald.mueller
1998-08-07  0:00   ` Brian Rogoff
1998-08-07  0:00     ` Timothy Welch
1998-08-08  0:00       ` Robert Dewar
1998-08-08  0:00         ` Larry Elmore
1998-08-08  0:00         ` Phlip
1998-08-08  0:00         ` Jeffrey C. Dege
1998-08-08  0:00           ` Patrick Logan
1998-08-10  0:00           ` Laurent GUERBY
1998-08-12  0:00             ` Andy Ward
1998-08-12  0:00               ` Matt Kennel
1998-08-14  0:00               ` Robert Dewar
1998-08-13  0:00                 ` nasser
1998-08-19  0:00                   ` Don Harrison
1998-08-14  0:00                 ` Patrick Doyle
1998-08-16  0:00                   ` Robert Dewar
1998-08-16  0:00                     ` Patrick Doyle
1998-08-18  0:00                     ` Martin Tom Brown
1998-08-16  0:00                   ` Robert Dewar
1998-08-16  0:00                     ` Patrick Doyle
1998-08-14  0:00                 ` Jean-Pierre Rosen
1998-08-14  0:00                   ` Robert Martin
1998-08-16  0:00                     ` Robert Dewar
1998-08-16  0:00                       ` Rick Smith
1998-08-17  0:00                         ` Robert Dewar
1998-08-17  0:00                           ` Rick Smith
1998-08-16  0:00                       ` Robert Martin
1998-08-15  0:00                   ` Patrick Doyle
1998-08-15  0:00                     ` Jean-Pierre Rosen
1998-08-16  0:00                       ` Patrick Doyle
1998-08-16  0:00                       ` Robert Dewar
1998-08-17  0:00                         ` Jean-Pierre Rosen
1998-08-15  0:00                   ` Mr Ada
1998-08-16  0:00                     ` Robert Dewar
1998-08-16  0:00                   ` Robert Dewar
1998-08-14  0:00                 ` Ell
1998-08-17  0:00                   ` Robert I. Eachus
1998-08-17  0:00                     ` Patrick Logan
1998-08-18  0:00                       ` Samuel Tardieu
1998-08-11  0:00           ` stilcom
1998-08-12  0:00             ` Jeffrey C. Dege
1998-08-12  0:00               ` Andrew Koenig
1998-08-14  0:00               ` Stefan Tilkov
1998-08-08  0:00       ` Dale Stanbrough
1998-08-07  0:00   ` Robert Dewar
1998-08-08  0:00     ` Patrick Logan
1998-08-07  0:00 ` Jason Stokes
1998-08-08  0:00   ` Robert Dewar
1998-08-10  0:00     ` Robert I. Eachus
1998-08-11  0:00     ` n
1998-08-14  0:00       ` Robert Dewar
     [not found]         ` <35D455AC.9225EAA7@hercii.mar.lmco.com>
1998-08-14  0:00           ` Robert L. Spooner
1998-08-10  0:00   ` Darren New
  -- strict thread matches above, loose matches on Subject: below --
1998-08-06  0:00 Robert Dewar
1998-08-06  0:00 ` Martin Dowie
1998-08-06  0:00 ` William Clodius
1998-08-22  0:00 dewar
replies disabled

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