Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!enother.net!peer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news.iecc.com!.POSTED!nerds-end From: Ivan Godard Newsgroups: comp.compilers Subject: Re: Formatting of Language LRMs Date: Thu, 03 Jul 2014 22:30:12 -0700 Organization: A noiseless patient Spider Lines: 25 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <14-07-009@comp.compilers> References: <14-06-010@comp.compilers> <14-06-016@comp.compilers> <14-06-021@comp.compilers> <14-07-004@comp.compilers> NNTP-Posting-Host: news.iecc.com Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: miucha.iecc.com 1404481984 67131 2001:470:1f07:1126:0:676f:7373:6970 (4 Jul 2014 13:53:04 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Fri, 4 Jul 2014 13:53:04 +0000 (UTC) Keywords: semantics Posted-Date: 04 Jul 2014 09:53:04 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com X-Received-Bytes: 2147 X-Received-Body-CRC: 1534427107 Xref: csiph.com comp.compilers:1299 On 7/3/2014 2:06 AM, Costello, Roger L. wrote: > What are "executable semantics"? > > If I were to create a document containing executable semantics, what > would I do with it? You would apply it to a purported program and "execute" it and see if you got diagnostics. Am executable spec is in effect the checking part of a compiler. How would it differ from a document containing, > say, Java? If the document were a compiler written in Java (i.e. a recognizer and checker) then formally there is no difference. Practically, an immense difference. VWG is an ASL for specifying languages. All of Algol68 in VWG was about four pages of appendix; a compiler for Algol68 written in Java would be much more than that, even after you strip out optimization and code generation. Also, the specification in VWG lends itself to use of metatools: make a change to the grammar and verify that the revision is complete, consistent and not redundant. Not something easy to do when the language is expressed by a Java recognizer.