comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: memory management in Ada: tedious without GC?
Date: Sun, 18 May 2008 11:31:15 +0200
Date: 2008-05-18T11:31:15+02:00	[thread overview]
Message-ID: <143d9t4zvr3jh$.1iwejgp9vpckx$.dlg@40tude.net> (raw)
In-Reply-To: ef669aad-89dd-4ac2-8911-ba4687c6dd6a@u6g2000prc.googlegroups.com

On Sun, 18 May 2008 01:50:21 -0700 (PDT), jhc0033@gmail.com wrote:

> On May 18, 12:03 am, Martin Krischik <krisc...@users.sourceforge.net>
> wrote:

>> #include <vector> is missing for it to become "perfectly legal". This is the
>> typical cheat of C++ advocates - selling there standart library as
>> languages features.
> 
> So if the C++ standard said: "<vector> is included by default", that
> would make C++ a better language in your opinion?

Right, actually less built-in types a language has, the better the language
is.

The problem with C++ and vector is not that vector is not built-in. It is
that vector cannot have a treatment fully equal to a built-in type:

1. Its body cannot be allocated on the stack.
2. It is not a proper type (requires parametrization)
3. Optimization. I have doubts that small vectors could be passed by value,
loops over them unrolled, values cached in registers, that static bounds
checking could be enforced at compile time and skipped at run-time etc.

Further, the array abstraction is incomplete:

4. It does not have a class over the element type
5. It does not have a class over the index type

(Ada does not have 4-5 either)

>> But that is unfair as vector<> can be implemented in any language including
>> assember.
> 
> Oh, panlinguistic guru, I'd like to see you try to implement "STL" in
> C! I wonder if you'll go for macros or void* type casts with type
> sizes as explicit parameters. How will you implement automatic memory
> management and deep copy semantics for arbitrary user-constructed type
> parameters?

This is a misunderstanding. Clearly, it is doable in any Turing-complete
language. The problem is how much an implementation could be disguised as a
normal array type. However, because assembler does not have much types
anyway, where is a problem? (:-))

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2008-05-18  9:31 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
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 [this message]
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