[comp.lang.c] Semantic defintions in standards

steve@hubcap.clemson.edu ("Steve" Stevenson) (07/26/90)

What is the status of attempts at the latest standard? What
methods are used to specify semantics? Are there any attempts to use
any of the ``formal semantics'' methods?





-- 
===============================================================================
Steve (really "D. E.") Stevenson           steve@hubcap.clemson.edu
Department of Computer Science,            (803)656-5880.mabell
Clemson University, Clemson, SC 29634-1906

khb@chiba.Eng.Sun.COM (chiba) (07/26/90)

In article <9848@hubcap.clemson.edu> steve@hubcap.clemson.edu ("Steve" Stevenson) writes:

   What is the status of attempts at the latest standard?

C became an ANSI standard in December '89.
Fortran 90 is in the midst of ISO processing for offical ISO draft status.


   What methods are used to specify semantics? 

X3J3 employs english. BNF is provided as an aid.

   Are there any attempts to use any of the ``formal semantics'' methods?

It is my understanding that the ISO Modula work uses VDM. Most other
standards bodies, that I am aware of, do not employ "formal semantics"
techniques. 
--
Keith H. Bierman    |*My thoughts are my own. !! kbierman@Eng.Sun.COM
It's Not My Fault   | MTS --Only my work belongs to Sun* khb@chiba.Eng.Sun.COM
I Voted for Bill &  | Advanced Languages/Floating Point Group (415 336 2648)   
Opus<khb@eng.sun.com> "When the going gets Weird .. the Weird turn PRO"

henry@zoo.toronto.edu (Henry Spencer) (07/27/90)

In article <KHB.90Jul25140420@chiba.Eng.Sun.COM> khb@chiba.Eng.Sun.COM (chiba) writes:
>   Are there any attempts to use any of the ``formal semantics'' methods?
>
>It is my understanding that the ISO Modula work uses VDM. Most other
>standards bodies, that I am aware of, do not employ "formal semantics"
>techniques. 

The problem with formal semantic specifications is that most programmers
cannot read them.  A standard, ideally, is a contract between the user
and the implementor, telling the user what he can count on and what he
shouldn't, and the implementor what he is allowed to do and what he
is forbidden to even consider.  As with any contract, you have a choice
of writing it in formal, precise language that only lawyers understand,
or doing the best you can on precision while keeping it human-readable.
Making a human-language standard precise and unambigous is difficult,
but a formal-language standard is inaccessible to many of the people who
need it most.  Most language designers and standards committees prefer
widely-accessible documents.

Arguably more programmers *should* be able to read formal specs.  The
fact is, they can't.  One either lives in the real world, or not.  Oddly
enough, most widely-used languages were designed by people who favored
living in the real world.
-- 
NFS:  all the nice semantics of MSDOS, | Henry Spencer at U of Toronto Zoology
and its performance and security too.  |  henry@zoo.toronto.edu   utzoo!henry

smryan@garth.UUCP (sous-realiste) (08/08/90)

In article <9848@hubcap.clemson.edu> steve@hubcap.clemson.edu ("Steve" Stevenson) writes:
>What is the status of attempts at the latest standard? What
>methods are used to specify semantics? Are there any attempts to use
>any of the ``formal semantics'' methods?

Or even formal syntax?
-- 
Her somber eyes consider all        ||/+\==/+\||                     Steven Ryan
that loom and tower, large and tall.||\=/++\=/||       ...!uunet!ingr!apd!smryan
Her everyday is always new          ||/=\++/=\||...!{apple|pyramid}!garth!smryan
and fills her eyes of frail blue.   ||\+/==\+/||   2400 Geng Road, Palo Alto, CA

henry@zoo.toronto.edu (Henry Spencer) (08/08/90)

In article <652@garth.UUCP> smryan@garth.UUCP (sous-realiste) writes:
>>What is the status of attempts at the latest standard? What
>>methods are used to specify semantics? Are there any attempts to use
>>any of the ``formal semantics'' methods?
>
>Or even formal syntax?

Formal syntax notations are normal nowadays (well, I can't speak for
the Fortran people :-), but they're normal everywhere else).  That does
not necessarily mean a yacc grammar, mind you, as there are a lot of
variations on good old BNF.
-- 
The 486 is to a modern CPU as a Jules  | Henry Spencer at U of Toronto Zoology
Verne reprint is to a modern SF novel. |  henry@zoo.toronto.edu   utzoo!henry

jlg@lanl.gov (Jim Giles) (08/09/90)

From article <1990Aug8.153448.2498@zoo.toronto.edu>, by henry@zoo.toronto.edu (Henry Spencer):
> In article <652@garth.UUCP> smryan@garth.UUCP (sous-realiste) writes:
> [...]
>>>any of the ``formal semantics'' methods?
>>Or even formal syntax?
> 
> Formal syntax notations are normal nowadays (well, I can't speak for
> the Fortran people :-), but they're normal everywhere else).  [...]

Well, the Fortran 77 standard gave syntax as "railroad tracks".  The
notation was actually equivalent to an LR(1) grammar for the language.
(The syntactical problems caused by insignificant blanks and misidentified
keywords can all be solved by a smart lexer - so the token level syntax
is LR(1).)

The Fortran 90 syntax is given is a pretty typical BNF notation.
I believe that it is again intended to be LR(1) - or even something
simpler for the free form input.

J. Giles