Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #64625

Re: More physical source files

From James Kuyper <jameskuyper@verizon.net>
Newsgroups comp.lang.c
Subject Re: More physical source files
Date 2015-07-02 13:21 -0400
Organization Self
Message-ID <559572FC.3030308@verizon.net> (permalink)
References (5 earlier) <lnbnfw3kum.fsf@kst-u.example.com> <56d054c6-5316-46eb-b7b4-686bd405149d@googlegroups.com> <lnmvzf21kt.fsf@kst-u.example.com> <de40dc32-3557-4219-8eb8-c40d5481694d@googlegroups.com> <8761628png.fsf@bsb.me.uk>

Show all headers | View raw


On Thursday, July 2, 2015 at 11:29:35 AM UTC-4, David Kleinecke wrote:
> On Wednesday, July 1, 2015 at 11:08:11 AM UTC-7, Keith Thompson wrote:
> > David Kleinecke <dkleinecke@gmail.com> writes:
> > > I gather that error correcting would be possible in a conforming
> > > compiler. It is strictly compiling where that is not possible.
> >
> > I don't know what you mean by "strictly compiling".  There is
> > a concept of "strictly conforming", but it applies to programs,
> > not to compilers.  A compiler (more precisely an implementation)
> > is either conforming or not.  A program using an extension is not
> > strictly conforming, but it may be conforming ("conforming" is a
> > very loose criterion for programs).
>
> I garbled that. My bad. I meant a compiler that only accepts strictly
> conforming programs. Such compilers are not specifically mentioned in
> the standard but can be assume to exist. ...

It will make my writing easier if I have a name for the category you've
described above. While it was a misnomer on your part, the phrase
"strictly compiling" has not been given any other official meaning. I
hope you won't mind if I use it below to refer to an implementation that
only accepts strictly conforming programs.

I don't think it's reasonable to assume that any strictly compiling
implementations exist. A conforming implementation of C must accept all
strictly conforming programs. A strictly compiling implementation must
compile only strictly conforming programs. A strictly compiling
implementation that conformed to the C standard would, therefore, have
to perfectly distinguish strictly conforming programs from programs that
are not strictly conforming.
It can be shown that, in some cases, determining whether or not a
program is strictly conforming is equivalent to solving the halting
problem, a task that was long ago proven to be impossible. A compiler
must either conform to the C standard by compiling some programs that
are not strictly conforming, or qualify as strictly compiling by
rejecting some programs that are strictly conforming. No compiler can do
both. I doubt that there is any vendor, anywhere, who would consider
"strictly compiling" to be sufficiently important to sacrifice C
conformance. Most go in the opposite direction: C conformance is an
option that has to be actively selected. By default, they operate in a
non-conforming mode that supports a number of extensions that their
customers want to use.

The connection to the halting problem is simple: some C constructs have
behavior that is undefined only if some other piece of code with
particular characteristics has already been executed (double free()s,
for instance). Let the execution of one of the two constructs depend
upon whether or not a given subroutine ever returns. Then determining
whether the behavior of the program is undefined requires solving the
halting problem for that subroutine.
The connection to the halting problem is proven using code that can
trivially be fixed to avoid the undefined behavior: if the subroutine
does return, DON'T execute that line of code. However, it's just proof
of the more general principle: it can be arbitrarily hard to determine
whether or not any particular program is strictly conforming.

> ... Any program that compiles on
> one is, per the standard, portable to any conforming compiler without
> change. I think this is what gcc means by "pedantic".

No, it is not. What "pedantic" does is guarantee that gcc fully conforms
to the specified version of the C (or C++) standard. Without -pedantic,
 -ansi only enables all features of C89 - it doesn't enable the
mandatory diagnostics for some gnu features that C89 considered to be
syntax errors or constraint violations.
The -pedantic option doesn't guarantee that all programs accepted by gcc
are strictly conforming. For the reasons given above, like all
real-world compilers, there are many ways for a program to have
undefined behavior that gcc is incapable of detecting.

Back to comp.lang.c | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-06-27 11:19 -0700
  Re: More physical source files Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-06-27 11:54 -0700
    Re: More physical source files Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-06-27 21:20 +0100
  Re: More physical source files Bartc <bc@freeuk.com> - 2015-06-27 20:24 +0100
    Re: More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-06-29 07:14 -0700
      Re: More physical source files Keith Thompson <kst-u@mib.org> - 2015-06-29 08:16 -0700
        Re: More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-06-30 08:24 -0700
          Re: More physical source files Robert Wessel <robertwessel2@yahoo.com> - 2015-06-30 12:15 -0500
          Re: More physical source files Keith Thompson <kst-u@mib.org> - 2015-06-30 15:14 -0700
            Re: More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-07-01 08:38 -0700
              Re: More physical source files glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-07-01 16:43 +0000
                Re: More physical source files Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-07-01 18:52 +0100
                Re: More physical source files Keith Thompson <kst-u@mib.org> - 2015-07-01 11:21 -0700
                Re: More physical source files glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-07-01 18:36 +0000
                Re: More physical source files Richard Damon <Richard@Damon-Family.org> - 2015-07-01 22:33 -0400
                Re: More physical source files glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-07-02 19:11 +0000
              Re: More physical source files Keith Thompson <kst-u@mib.org> - 2015-07-01 11:08 -0700
                Re: More physical source files Richard Damon <Richard@Damon-Family.org> - 2015-07-01 22:30 -0400
                Re: More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-07-02 08:29 -0700
                Re: More physical source files Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-07-02 17:56 +0100
                Re: More physical source files James Kuyper <jameskuyper@verizon.net> - 2015-07-02 13:21 -0400
                Re: More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-07-03 08:54 -0700
                Re: More physical source files James Kuyper <jameskuyper@verizon.net> - 2015-07-04 12:23 -0400
                Re: More physical source files Martin Shobe <martin.shobe@yahoo.com> - 2015-07-04 11:36 -0500
                Re: More physical source files Keith Thompson <kst-u@mib.org> - 2015-07-02 16:42 -0700
                Re: More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-07-03 08:54 -0700
                Re: More physical source files Keith Thompson <kst-u@mib.org> - 2015-07-03 10:05 -0700
                Re: More physical source files glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-07-03 21:57 +0000
                Re: More physical source files James Kuyper <jameskuyper@verizon.net> - 2015-07-04 00:30 -0400
                Re: More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-07-04 08:08 -0700
                Re: More physical source files Richard Damon <Richard@Damon-Family.org> - 2015-07-04 12:21 -0400
                Re: More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-07-05 09:22 -0700
                Re: More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-07-05 09:49 -0700
                Re: More physical source files Keith Thompson <kst-u@mib.org> - 2015-07-05 18:16 -0700
                Re: More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-07-06 08:37 -0700
                Re: More physical source files James Kuyper <jameskuyper@verizon.net> - 2015-07-06 12:56 -0400
                Re: More physical source files Keith Thompson <kst-u@mib.org> - 2015-07-06 11:59 -0700
                Re: More physical source files James Kuyper <jameskuyper@verizon.net> - 2015-07-06 15:45 -0400
                Re: More physical source files Keith Thompson <kst-u@mib.org> - 2015-07-06 13:14 -0700
                Re: More physical source files Philip Lantz <prl@canterey.us> - 2015-07-07 01:10 -0700
                Re: More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-07-07 08:00 -0700
                Re: More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-07-07 07:55 -0700
                Re: More physical source files James Kuyper <jameskuyper@verizon.net> - 2015-07-07 13:13 -0400
                Re: More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-07-08 08:35 -0700
                Re: More physical source files James Kuyper <jameskuyper@verizon.net> - 2015-07-08 12:31 -0400
                Re: More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-07-09 08:50 -0700
                Re: More physical source files Richard Heathfield <rjh@cpax.org.uk> - 2015-07-09 16:56 +0100
                Re: More physical source files Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-07-09 13:31 -0700
                Re: More physical source files Keith Thompson <kst-u@mib.org> - 2015-07-09 15:03 -0700
                Re: More physical source files Ian Collins <ian-news@hotmail.com> - 2015-07-10 10:54 +1200
                Re: More physical source files David Kleinecke <dkleinecke@gmail.com> - 2015-07-10 09:52 -0700
                Re: More physical source files James Kuyper <jameskuyper@verizon.net> - 2015-07-09 14:32 -0400
                Re: More physical source files James Kuyper <jameskuyper@verizon.net> - 2015-07-05 13:41 -0400
                Re: More physical source files Richard Damon <Richard@Damon-Family.org> - 2015-07-05 14:17 -0400
                Re: More physical source files Keith Thompson <kst-u@mib.org> - 2015-07-04 12:36 -0700
                Re: More physical source files Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-07-04 15:19 -0700
                Re: More physical source files Keith Thompson <kst-u@mib.org> - 2015-07-04 15:42 -0700
                Re: More physical source files James Kuyper <jameskuyper@verizon.net> - 2015-07-04 19:04 -0400
                Re: More physical source files Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-07-05 03:25 -0700
                Re: More physical source files Keith Thompson <kst-u@mib.org> - 2015-07-05 09:18 -0700
                Re: More physical source files James Kuyper <jameskuyper@verizon.net> - 2015-07-05 14:11 -0400
                Re: More physical source files Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-07-05 13:41 -0700
                Re: More physical source files Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-10 19:00 -0700
                Re: More physical source files Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-10 18:57 -0700
                Re: More physical source files James Kuyper <jameskuyper@verizon.net> - 2015-07-04 12:50 -0400
                Re: More physical source files Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-11 08:39 -0700
      Re: More physical source files Bartc <bc@freeuk.com> - 2015-06-29 17:20 +0100
  Re: More physical source files Rosario19 <Ros@invalid.invalid> - 2015-06-28 11:57 +0200

csiph-web