From: "Jed" <jehdiah@orbitway.net>
Subject: Re: Why use C++?
Date: Thu, 11 Aug 2011 05:57:32 -0500
Date: 2011-08-11T05:57:32-05:00 [thread overview]
Message-ID: <j20cif$dr6$1@dont-email.me> (raw)
In-Reply-To: 150vz10ihvb5a.1lysmewa1muz4$.dlg@40tude.net
"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
news:150vz10ihvb5a.1lysmewa1muz4$.dlg@40tude.net...
> On Thu, 11 Aug 2011 03:20:55 -0500, Jed wrote:
>
>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
>> news:1d8wyhvpcmpkd.ggiui9vebmtl.dlg@40tude.net...
>>> On Wed, 10 Aug 2011 17:37:28 -0500, Randy Brukardt wrote:
>>>
>>>> There are uses for wrapping types, but they are far less likely than
>>>> wanting
>>>> overflow detection. The default should be to catch errors, not turn
>>>> them
>>>> into different ones.
>>>
>>> The OP mentioned image processing, the behavior frequently needed
>>> there is
>>> saturated integer arithmetic, which is nether ranged nor modular.
>>>
>>> As for modular types, wrapping is the mathematically correct
>>> behavior,
>>> it is not an error.
>>>
>>> You just cannot provide every possible arithmetic at the language
>>> level.
>>>
>>
>> What do you think the practical level of limitation is?
>
> Types that cannot be constructed by the operations of the types algebra
> provided by the language. Richer the algebra is, less built-in types
> needed.
Will you give an example to clarify please?
>
>> Were you thinking "beyond integers" with your statement?
>
> There is nothing special in integer types, except that for the types
> algebra you need ordinal numerals (i.e. at least one integer type).
I know a little bit (enough to "be dangerous") of Intel assembly, and it
looks like C/C++ integer types are a direct reflection of what is at that
level. Even the fact that by default, integer literals are signed. So in
that respect, I think they are special. They are chosen for efficiency as
a direct reflection of hardware (I'm not saying all hardware is the same,
mind you).
>
>> What kinds of integer types would
>> you like to see built-in to a hypothetical ideal language?
>
> As little as possible. Usage of predefined integer types makes design
> more
> fragile. E.g. it is bad when somebody uses Ada's Integer, or C++ int
> (OK,
> in C++ there is no other option), instead of introducing a type
> reflecting
> the application semantics rather than the decision of some compiler
> vendor
> motivated by other concerns.
>
You have to build those types though based upon the built-in ones, yes?
If so, aren't modular, wrapping and overflow-checked equally good for
something and all worthy of being in a language? Of course there is
signed, unsigned and the different bit widths as candidates also. And are
not those built-ins good to use "raw" in many cases? Are you suggesting
that a language have NO types? There is assembly language for that (and
the instruction set pretty much dictates what types you have to work with
at that level).
next prev parent reply other threads:[~2011-08-11 10:57 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <fb9f787c-af06-427a-82b6-b0684e8dcbc5@s2g2000vby.googlegroups.com>
[not found] ` <j1kaj8$dge$1@adenine.netfront.net>
[not found] ` <1e292299-2cbe-4443-86f3-b19b8af50fff@c29g2000yqd.googlegroups.com>
[not found] ` <j1tha5$11q5$1@adenine.netfront.net>
[not found] ` <1fd0cc9b-859d-428e-b68a-11e34de84225@gz10g2000vbb.googlegroups.com>
2011-08-10 19:05 ` Why use C++? Niklas Holsti
2011-08-10 22:37 ` Randy Brukardt
2011-08-10 22:49 ` Ludovic Brenta
2011-08-12 4:54 ` Randy Brukardt
2011-08-11 7:54 ` Dmitry A. Kazakov
2011-08-11 8:20 ` Jed
2011-08-11 9:13 ` Dmitry A. Kazakov
2011-08-11 10:57 ` Jed [this message]
2011-08-11 11:43 ` Georg Bauhaus
2011-08-12 5:07 ` Jed
2011-08-11 13:11 ` Nomen Nescio
2011-08-11 15:11 ` Paul
2011-08-12 5:15 ` Jed
2011-08-12 21:39 ` Fritz Wuehler
2011-08-14 6:52 ` Jed
2011-08-14 8:13 ` Nomen Nescio
2011-08-11 15:09 ` Dmitry A. Kazakov
2011-08-12 5:03 ` Jed
2011-08-12 8:32 ` Georg Bauhaus
2011-08-12 13:15 ` Hyman Rosen
2011-08-12 22:09 ` Randy Brukardt
2011-08-12 15:14 ` Jed
2011-08-12 17:20 ` Georg Bauhaus
2011-08-12 19:51 ` Jed
2011-08-12 21:22 ` Ludovic Brenta
2011-08-14 7:00 ` Jed
2011-08-16 13:06 ` Ludovic Brenta
2011-08-13 9:37 ` Georg Bauhaus
2011-08-14 5:22 ` Jed
2011-08-13 10:27 ` Georg Bauhaus
2011-08-14 5:35 ` Jed
2011-08-14 20:13 ` Georg Bauhaus
2011-08-15 11:38 ` Georg Bauhaus
2011-08-13 11:02 ` Georg Bauhaus
2011-08-14 5:56 ` Jed
2011-08-12 9:21 ` Dmitry A. Kazakov
2011-08-12 13:26 ` Jed
2011-08-12 14:30 ` Dmitry A. Kazakov
2011-08-12 19:06 ` Jed
2011-08-12 20:05 ` Dmitry A. Kazakov
2011-08-13 7:53 ` Jed
2011-08-13 9:15 ` Dmitry A. Kazakov
2011-08-13 9:29 ` Ian Collins
2011-08-13 9:52 ` Dmitry A. Kazakov
2011-08-13 11:10 ` Ian Collins
2011-08-13 11:46 ` Georg Bauhaus
2011-08-13 20:30 ` Ian Collins
2011-08-13 11:54 ` Brian Drummond
2011-08-13 13:12 ` Simon Wright
2011-08-14 11:01 ` Brian Drummond
2011-08-14 4:54 ` Jed
2011-08-14 4:35 ` Jed
2011-08-14 6:46 ` Dmitry A. Kazakov
2011-08-14 4:49 ` Jed
2011-08-14 6:51 ` Dmitry A. Kazakov
2011-08-14 4:29 ` Jed
2011-08-14 7:29 ` Dmitry A. Kazakov
2011-08-16 8:18 ` Nick Keighley
2011-08-16 8:47 ` Dmitry A. Kazakov
2011-08-16 9:52 ` Nick Keighley
2011-08-16 10:39 ` Dmitry A. Kazakov
2011-08-16 10:23 ` Georg Bauhaus
2011-08-16 10:58 ` Dmitry A. Kazakov
2011-08-16 11:44 ` Georg Bauhaus
2011-08-16 14:51 ` Bill Findlay
2011-08-16 19:13 ` Dmitry A. Kazakov
2011-08-16 19:23 ` Bill Findlay
2011-08-12 11:48 ` Stuart Redmann
2011-08-12 13:12 ` Vinzent Hoefler
2011-08-12 15:50 ` Stuart Redmann
2011-08-12 17:02 ` Bill Findlay
2011-08-15 12:59 ` Vinzent Hoefler
2011-08-12 5:02 ` Randy Brukardt
2011-08-12 5:16 ` Robert Wessel
2011-08-12 16:39 ` Adam Beneschan
2011-08-12 5:24 ` Jed
2011-08-12 6:51 ` Paavo Helde
2011-08-12 7:41 ` Georg Bauhaus
2011-08-12 15:50 ` Fritz Wuehler
2011-08-12 19:59 ` Jed
2011-08-13 8:06 ` Stephen Leake
2011-08-12 9:40 ` Dmitry A. Kazakov
2011-08-12 9:45 ` Ludovic Brenta
2011-08-12 10:48 ` Georg Bauhaus
2011-08-12 15:56 ` Ludovic Brenta
2011-08-13 8:08 ` Stephen Leake
2011-08-18 13:39 ` Louisa
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox