comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Verified compilers?
Date: Wed, 7 Mar 2012 21:17:34 +0100
Date: 2012-03-07T21:17:34+01:00	[thread overview]
Message-ID: <1psd0g0womgxi.1sle7ol12x3d5.dlg@40tude.net> (raw)
In-Reply-To: 9rplcgF5a2U1@mid.individual.net

On Wed, 07 Mar 2012 19:49:04 +0200, Niklas Holsti wrote:

> On 12-03-07 11:12 , Dmitry A. Kazakov wrote:
> 
>> I was always wondering why people bother to study grammars, LR, LL parsers
>> and other useless stuff.
> 
> Grammars and the notion of parsing (derivations) rigorously define what 
> a given string of characters means, in some formally defined language.

No. A grammar defines some formal language: a set of strings. The meaning
(program language semantics) is defined informally or else by another
language into which these strings are translated.

The grammar defines only syntax. Even that is defined incompletely for most
cases, e.g. X : constant := 10**(10**(10**10)). Though nobody sheds a tear
about it. An attempt to render all errors as syntax errors would reach
nothing but unreadable diagnostics. Semantic error messages are much easier
to understand. So syntax error messages are few and trivial, e.g. "end if
expected." If I needed to recognize the infamous {ab, aabb, aaabbb, ...}
why should I bother about the grammar? I would count a's and b's and
compare two numbers. That is.

Furthermore the merits of formal grammar definitions are debatable, because
the complexity of grammar descriptions usually make it impossible to judge
if a given string do belong to the formal language or not. Normally BNF is
all one needs to define syntax.

> As far as I can see, the only alternative would be to define the meaning 
> of a language by defining a specific interpreter as the standard 
> interpreter, and defining the meaning of a sentence as whatever this 
> interpreter does, when interpreting this sentence.

Rather translation is the only way to formally define the semantics.

>> This is a great example of making a "science" out
>> of nothing and for nothing.
> 
> The various types of grammars and the corresponding parsing procedures 
> help us understand which parsing methods work for which kinds of 
> grammars.

Maybe, but they are totally irrelevant for the grammars of real programming
languages. On one hand these classes do not capture real differences
between syntaxes of programming languages. On the other hand, the classes
they do describe have no other practical interest than torturing students
of CS classes.

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



  reply	other threads:[~2012-03-07 20:17 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-21 15:42 Verified compilers? Yannick Duchêne (Hibou57)
2012-02-24  1:41 ` Shark8
2012-02-24  8:52   ` Georg Bauhaus
2012-02-24 17:36   ` Peter C. Chapin
2012-03-06  1:27 ` Randy Brukardt
2012-03-06 17:24   ` Shark8
2012-03-06 17:43     ` Dmitry A. Kazakov
2012-03-06 19:03       ` Shark8
2012-03-07  5:33       ` Yannick Duchêne (Hibou57)
2012-03-07  9:12         ` Dmitry A. Kazakov
2012-03-07 17:49           ` Niklas Holsti
2012-03-07 20:17             ` Dmitry A. Kazakov [this message]
2012-03-07 23:28               ` Usefulness of Formal Notions in Programming (was: Verified compilers?) Georg Bauhaus
2012-03-08  9:24                 ` Usefulness of Formal Notions in Programming Dmitry A. Kazakov
2012-03-08 10:30                   ` Nasser M. Abbasi
2012-03-08 12:37                     ` Dmitry A. Kazakov
2012-03-08  0:42               ` Verified compilers? Randy Brukardt
2012-03-08  9:25                 ` Dmitry A. Kazakov
2012-03-08 18:10                   ` Niklas Holsti
2012-03-08 20:41                     ` Dmitry A. Kazakov
2012-03-08 18:02               ` Niklas Holsti
2012-03-08 20:40                 ` Dmitry A. Kazakov
2012-03-09  0:44                   ` Georg Bauhaus
2012-03-09 22:13                   ` Niklas Holsti
2012-03-10 10:36                     ` Dmitry A. Kazakov
2012-03-10 20:35                       ` Niklas Holsti
2012-03-11  9:47                         ` Dmitry A. Kazakov
2012-03-11 22:22                           ` Niklas Holsti
2012-03-12  5:12                             ` Niklas Holsti
2012-03-12  9:43                             ` Dmitry A. Kazakov
2012-03-14  8:36                               ` Niklas Holsti
2012-03-14  9:24                                 ` Georg Bauhaus
2012-03-14 11:14                                   ` REAL (was: Verified compilers?) stefan-lucks
2012-03-14 12:59                                     ` REAL Dmitry A. Kazakov
2012-03-14 13:30                                       ` REAL Georg Bauhaus
2012-03-14 13:51                                         ` REAL Dmitry A. Kazakov
2012-03-14 20:37                                           ` REAL Brian Drummond
2012-03-14 21:52                                             ` REAL Dmitry A. Kazakov
2012-03-14 13:52                                         ` REAL georg bauhaus
2012-03-14 17:42                                         ` REAL Jeffrey Carter
2012-03-14 10:14                                 ` Verified compilers? Dmitry A. Kazakov
2012-03-14 20:13                                   ` Niklas Holsti
2012-03-11 10:55                         ` Georg Bauhaus
2012-03-10 13:46                     ` Brian Drummond
2012-03-07  1:00     ` Randy Brukardt
2012-03-07 12:42   ` Stuart
2012-03-08  1:06     ` Randy Brukardt
2012-03-08  9:04       ` Jacob Sparre Andersen
2012-03-08  9:37         ` Dmitry A. Kazakov
2012-03-08 11:23           ` Simon Wright
2012-03-08 12:27             ` Dmitry A. Kazakov
2012-03-08 10:23         ` Brian Drummond
2012-03-08 23:38           ` Bill Findlay
2012-03-09 13:56             ` Brian Drummond
2012-03-09 14:43               ` Shark8
2012-03-09 21:51                 ` Brian Drummond
2012-03-09 15:49               ` Bill Findlay
2012-03-09 20:34                 ` Brian Drummond
2012-03-09 19:40               ` Jeffrey Carter
2012-03-09 20:39                 ` Brian Drummond
2012-03-09 23:59               ` phil.clayton
2012-03-08 15:23         ` Peter C. Chapin
2012-03-09  2:04         ` Randy Brukardt
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox