caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Jacques Garrigue <garrigue@math.nagoya-u.ac.jp>
To: tews@tcs.inf.tu-dresden.de
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Why doesn't ocamlopt detect a missing ; after failwith statement?
Date: Mon, 29 Nov 2004 09:01:51 +0900 (JST)	[thread overview]
Message-ID: <20041129.090151.110958815.garrigue@math.nagoya-u.ac.jp> (raw)
In-Reply-To: <rlllcomep8.fsf@ithif59.inf.tu-dresden.de>

From: Hendrik Tews <tews@tcs.inf.tu-dresden.de>
> Jacques Garrigue <garrigue@math.nagoya-u.ac.jp> writes:
> 
>    Note that void in C is definitely not zero. You cannot have variables
> 
> C++ standard, 3.9.1.9: The void type has an empty set of values. ...
> 
> So I would say void is zero. On the other side you have functions
> returning void. Therefore I would conclude that the type theory
> of C++ is unsound.

Which is almost the same thing as saying that the definition
contradicts itself...
My point was just that, looking at the way void is used in C, it
clearly does not have the usual proporties of zero, and among them the
fact no function should be able to return zero, or that all pointers
to void should be NULL.

For this reason it seems to me at first that the actual semantics of
void in C is that of (\exists a. a) aka unit (i.e. a value we know
nothing about), not that of (\forall a.a) aka zero (the impossibility).
You can safely cast any pointer to a void pointer, but not the
opposite. Additionaly, for representation reasons, you cannot copy or
allocate values of type void, so that they are non-existent in
practice, but this looks more like a consequence than a definition.
Another meaning of void seems to be the empty product, which again is
unit, with the extract constraint that you cannot store such a value
in C.

This is just my personal take on the question. I just don't think that
there is any serious model theory behind C's void, just a bunch of
practical constraints.

Jacques Garrigue


  parent reply	other threads:[~2004-11-29  0:02 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-25 20:46 Richard Jones
2004-11-25 21:14 ` [Caml-list] " Nicolas Cannasse
2004-11-26  0:11   ` skaller
2004-11-26  0:44     ` Jacques Garrigue
2004-11-26  3:08       ` skaller
2004-11-26  5:25         ` Jacques Garrigue
2004-11-26  7:08           ` Nicolas Cannasse
2004-11-26 14:42             ` Jacques Garrigue
2004-11-26 17:01               ` Alain Frisch
2004-11-26 19:36             ` Michal Moskal
2004-11-26 17:01           ` Damien Doligez
2004-11-29  0:40             ` Jacques Garrigue
2004-11-29 11:07               ` [Caml-list] Why doesn't ocamlopt detect a missing ; afterfailwith statement? Frederic van der Plancke
2004-11-29 11:43                 ` Jacques Garrigue
2004-11-29 11:27               ` Frederic van der Plancke
2004-11-26 22:24           ` [Caml-list] Why doesn't ocamlopt detect a missing ; after failwith statement? Hendrik Tews
2004-11-27  3:47             ` skaller
2004-11-29  0:01             ` Jacques Garrigue [this message]
2004-11-29  7:52               ` Marcin 'Qrczak' Kowalczyk
2004-11-26  3:58       ` skaller
2004-11-26 19:16     ` Brian Hurt
2004-11-26  9:01   ` Richard Jones
2004-11-26  9:56     ` skaller
2004-11-26 13:32     ` Ville-Pertti Keinonen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20041129.090151.110958815.garrigue@math.nagoya-u.ac.jp \
    --to=garrigue@math.nagoya-u.ac.jp \
    --cc=caml-list@inria.fr \
    --cc=tews@tcs.inf.tu-dresden.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).