Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.compilers > #2870
| Path | csiph.com!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end |
|---|---|
| From | George Neuner <gneuner2@comcast.net> |
| Newsgroups | comp.compilers |
| Subject | Re: What is the semantics of a language? |
| Date | Wed, 26 Jan 2022 14:24:13 -0500 |
| Organization | A noiseless patient Spider |
| Lines | 98 |
| Sender | news@iecc.com |
| Approved | comp.compilers@iecc.com |
| Message-ID | <22-01-113@comp.compilers> (permalink) |
| References | <22-01-081@comp.compilers> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=us-ascii |
| Content-Transfer-Encoding | 8bit |
| Injection-Info | gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="6443"; mail-complaints-to="abuse@iecc.com" |
| Keywords | semantics |
| Posted-Date | 26 Jan 2022 14:48:25 EST |
| X-submission-address | compilers@iecc.com |
| X-moderator-address | compilers-request@iecc.com |
| X-FAQ-and-archives | http://compilers.iecc.com |
| Xref | csiph.com comp.compilers:2870 |
Show key headers only | View raw
On Sat, 22 Jan 2022 00:08:35 +0000, Roger L Costello <costello@mitre.org> wrote: >Hello Compiler Experts! > >Ah! I found the answer to the question: > > What is the semantics of a language? > >Section 3.4 of the Bison specification [1] has the answer: > >3.4 Defining Language Semantics > >The grammar rules for a language determine only the syntax. The >semantics are determined by the semantic values associated with >various tokens and groupings, ... This part of the statement is an example of circular reasoning and is absolutely meaningless. >... and by the actions taken when various groupings are recognized. This part is valid - there may be distinction necessary between actions taken at compile time vs actions taken at run time, but in any case actions DO define semantics. >Niklaus Wirth agrees with the Bison specification. In the introduction of his book, Compiler Construction, he says [2]: > >The translation process is now guided by the structure of the analysed >text. The text is decomposed, parsed into its components according to >the given syntax. For the most elementary components, their semantics >is recognized, and the meaning (semantics) of the composite parts is >the result of the semantics of their components. Naturally, the >meaning of the source text must be preserved by the translation. > >Do you agree that that is the definition of the semantics of a language? I agree that Wirth's statement is very similar to what is in the Bison manual. Not having either the Bison manual or Wirth's book handy, I will comment only on the quoted statements above. I will (perhaps naively) assume that in both cases there is further explanation in the respective texts. The problem with both statements is that neither defines what is meant by "semantic value". Bison assumes that the reader understands what is a token, what is the "value" of a token, and what a token "value" means in context of a given grouping of tokens. [Of course, the developer /must/ know these things, but that statement clearly was not written for a beginner.] Wirth's statement makes an analogous mistake while also introducing a distinction between "elementary" components whose semantics somehow simply can be "recognized", and "composites" which somehow take their semantics from some confluence of the semantics of their constituent components (although that is not explicitly stated and so may be unclear to the reader). I learned addition in /elementary/ school - so is addition elementary? Or is it composite? The reader has to know - or be told - that in the context of compiling "2" should be considered elementary but "1 + 1" should be considered composite. [This leaves aside whether or not the the addition might be evaluated at compile time and only the result inserted into the object code.] For comparison, the Lisp manual explicitly defines what is literal data and says that literal data is "self evaluating": e.g., "42" will evaluate to the /integer/ value 42, and that the resulting value will satisfy certain testing predicates such as integerp, rationalp, etc. If, instead, you wanted a floating point value, you need to convert the integer or write the literal in a different way. Although somewhat blatantly obvious, Lisp makes clear that literals do have semantics - ie. that they are self-evaluating, that the result of evaluation is a value of a certain "type", and what it means to be a value of a certain type. Other languages also explicitly define these things in their manuals and/or standards ... I'm simply picking on Lisp because, AFAIK, it was the first to rigorously do so. >/Roger > >[1] Section 3.4 of the Bison specification: https://www.gnu.org/software/bison/manual/bison.html#Semantics > >[2] See page 6, fourth paragraph in Compiler Construction by Niklaus Wirth: https://people.inf.ethz.ch/wirth/CompilerConstruction/CompilerConstruction1.pdf >[That's one definition. But I suspect we will hear it's far from the only one. -John] YMMV, George
Back to comp.compilers | Previous | Next — Previous in thread | Next in thread | Find similar
What is the semantics of a language? Roger L Costello <costello@mitre.org> - 2022-01-22 00:08 +0000
Re: What is the semantics of a language? luser droog <luser.droog@gmail.com> - 2022-01-24 11:39 -0800
Re: What is the semantics of a language? gah4 <gah4@u.washington.edu> - 2022-01-25 01:19 -0800
Re: What is the semantics of a language? George Neuner <gneuner2@comcast.net> - 2022-01-26 14:24 -0500
Re: What is the semantics of a language? gah4 <gah4@u.washington.edu> - 2022-01-26 13:21 -0800
Re: What is the semantics of a language? Louis Krupp <lkrupp@invalid.pssw.com.invalid> - 2022-02-18 04:16 -0700
csiph-web