home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / specific / 516 < prev    next >
Encoding:
Internet Message Format  |  1992-11-07  |  12.9 KB

  1. Path: sparky!uunet!charon.amdahl.com!pacbell.com!decwrl!sdd.hp.com!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!agate!doc.ic.ac.uk!uknet!newcastle.ac.uk!bach!brian
  2. From: B.J.King@newcastle.ac.uk (Brian King)
  3. Newsgroups: comp.specification
  4. Subject: Re: Semantic definition style
  5. Message-ID: <Bx8MLp.67x@newcastle.ac.uk>
  6. Date: 5 Nov 92 10:03:24 GMT
  7. References: <720801988.16035@minster.york.ac.uk>
  8. Organization: University of Newcastle upon Tyne, UK, NE1 7RU
  9. Lines: 211
  10. Nntp-Posting-Host: bach
  11.  
  12. song@minster.york.ac.uk writes:
  13.  
  14. >I am aware that there are four different styles to define semantics.
  15. >    operational
  16. >    denotational
  17. >    algebraic 
  18. >    axiomatic
  19. >Could anyone give some comments on the following questions:
  20. >    what is the relations among these semantics,
  21. >    what is the purpose of each, 
  22. >    any references on them
  23. >    what is semantics defined in the CSP book
  24.  
  25. >Many thanks,
  26.  
  27. >Ji,
  28.  
  29. OK,
  30.  
  31. Firstly I have found the following to be useful references in
  32. this particular area.
  33.  
  34. [Ada, 1980] "The Formal Definition of the Ada Programming Language", Honeywell Inc., 1980.
  35. .XP
  36. [Backus, 1960] "The Syntax and Semantics of the Proposed international Algerbraic Language of the Zurich ACM-GAMM
  37. Conference", \fIInformation Processing\fP, UNESCO, Paris, pp. 125-132, 1960.
  38. .XP
  39. [Chomsky, 1959] "On Certain Formal Properties of Grammars", \fIInformation and Control\fP, \fI2\fP, pp. 137-167,
  40. 1959.
  41. .XP
  42. [Donahue, 1976] "Complimentary Definitions of Programming Language Semantics", Lecture Notes in Computer Science,
  43. No. 42, Springer-Verlag, New-York, 1976.
  44. .XP
  45. [Dunlop et al., 1982] "A Comparative Analysis of Functional Correctness", ACM Computing Surveys, \fI14\fP, 2, pp.
  46. 229-244, 1982. 
  47. .XP
  48. [Gordon, 1979] "The Denotational Description of Programming Languages, An Introduction, Springer-Verlag, New-York,
  49. 1979.
  50. .XP
  51. [Hoare et al., 1973] "An Axiomatic Defintion of the Programming Language Pascal", \fIActa Informatica\fP, \fI2\fP,
  52. pp. 335-355, 1973.
  53. .XP
  54. [Hoare et al., 1974] "Consistent and Complementary Formal Theories of the Semantics of Programming Languages",
  55. \fIActa Informatica\fP, \fI3\fP, pp. 135-153, 1974.
  56. .XP
  57. [Lucas et al., 1969] "On the Formal Defintion of PL/I", \fI Ann. Rev. Auto. Prog.\fP, \fI6\fP, 3, pp. 105-182,
  58. 1969.
  59. .XP
  60. [Marcotty et al., 1976] "A Sampler of Formal Definitions", ACM Computing Surveys, \fI8\fP, 2, pp. 191-275, 1976.
  61.  
  62. Can I offer the following text as a description to the background and use of
  63. theses formal semnatic methods. (Flame away). Honestly, I would appreciate
  64. comments on this text. I used this in a report about a year ago (so I am not sure
  65. that I would agree 100%, but I think it is not bad as a starter!). Comments ?  
  66.  
  67. .NH
  68. Theoretical Models
  69.  
  70. .LP
  71. The design and implementation of programming languages illustrates the complex interaction of theory and practice.
  72. Many early language designs grew out of practical needs, with little or no input from theory. However, the
  73. successes and failures of the early programming languages led to some early formal models of programming language
  74. syntax and semantics, which in turn spawned better programming languages. These newer languages still contained a
  75. number of design and implementation errors which required yet better theoretical models. Detailed below is a precis
  76. of some of the major theoretical models that have had a significant impact upon the design and practice programming
  77. languages.
  78. .LP
  79. It may be stated that theoretical models fall into two categories, namely qualitative or quantitative. Theoretical
  80. models may be \fIqualitative\fP or \fIconceptual\fP, describing practice in terms of an underlying set of basic
  81. concepts with not attempt made to provide any formal mathematical description of those concepts. Alternatively,
  82. theoretical models may be \fIquantitative\fP or \fIformal\fP, describing practice in terms of a precise
  83. mathematical model that can be studied, analyzed and manipulated using a series  of mathematical tools. A number of
  84. formal models have been proposed for describing individual aspects of languages and their respective
  85. implementations. A number of these theoretical models are described below.
  86.  
  87. .NH2
  88. Formal grammars
  89.  
  90. .LP
  91. The area of programming language design and implementation to receive some of the earliest attention was that of
  92. syntax and translation. Within this area the class of theoretical models that have proved to be most useful are
  93. defined as formal grammars. The BNF grammar is an example of a formal grammar. BNF consists of a set of productions
  94. or grammar rules that recursively define a set of valid character sequences. The BNF grammar model was developed by
  95. Backus and Naur for the description of the syntax of the ALGOL 60 programming language [Backus, 1960]. 
  96.  
  97. Another formal grammar was developed by the linguist Chomsky [Chomsky, 1959]. He developed a hierarchy of four
  98. types of formal grammar, of which the context-free grammar bears a significant resemblance to the BNF grammar.
  99. Another grammar, the regular grammar, was simpler than the BNF but however was unable to represent as complex a set
  100. of constraints. However, the context-sensitive and unrestricted grammars developed by Chomsky were able to express
  101. constraints that were beyond the ability of the BNF. 
  102.  
  103. Following Chomksy's pioneering work, numerous other formal grammars were developed, each exploring a different way
  104. of defining the sort of constraints needed for actual programming languages. The context-sensitive and unrestricted
  105. grammars, whilst being more powerful that BNF, turned out to be incorrect models for programming languages. Many
  106. recent grammar forms have been developed in an attempt to overcome the limitations of these previous forms.
  107.  
  108. In practice, the description of the syntax of a new programming language is always routinely made using a formal
  109. grammar. Most commonly some variant of BNF grammar is used for the definition, but often a more powerful form,
  110. called a two-level grammar, is used. Theoretical studies have clarified the limits of BNF grammars and hence it is
  111. now commonly understood that some classes of syntactic constraints cannot be described with them. Often, these are
  112. described via attaching some informal notes to a BNF. The users of a language now routinely use a formal grammar to
  113. answer questions about syntax. Implementors of a language also routinely use a formal grammar to generate a parser
  114. for the language.
  115.  
  116. .NH2
  117. Problems in Semantics
  118.  
  119. .LP
  120. The definition of semantics in most programming language manuals is given in ordinary prose. In order to define the
  121. syntax of a construct a production from a BNF or other formal grammar is provided. Added to this formal syntax is a
  122. few paragraphs and (hopefully) a number of examples to define the semantics. Unfortunately it has been the case,
  123. that the prose is ambiguous in meaning leading to different interpretations of the semantics of a language
  124. construct. The consequences of such problems include may affect both programmer and implementor. Firstly, a
  125. programmer may misunderstand what the program will do when executed and also an implementor may implement a program
  126. construct in a manner different from other implementors of the same programming language. Hence, as with syntax,
  127. methods are required to provide a precise, readable and concise definition of the semantics of a programming
  128. language.
  129.  
  130. The problem of semantic definition has been a research topic for a considerable period. However, unlike the area of
  131. syntactical definition, satisfactory solutions have been rare. Many different methods of formal definitions have
  132. been developed and these may be subdivided into three general classes :-
  133. .RS
  134. .IP \(bu
  135. Operational Methods
  136. .IP \(bu
  137. Denotational or Functional Methods and 
  138. .IP \(bu
  139. Axiomatic Methods.
  140. .RE
  141.  
  142. .LP
  143. \fBOperational methods\fP
  144. .LP
  145. An operational definition of a programming language is a definition organized around a formal model of how programs
  146. in the language are executed on a virtual computer. It corresponds to an abstraction from the viewpoint of how the
  147. language is implemented. The Vienna Definition Language is an example of an operational approach.
  148.  
  149. \fBDenotational methods\fP
  150. .LP
  151. A second class of semantic definition methods attempt to directly construct a definition of the function that each
  152. program computes. The definition is built up hierarchically through definition of the function computed by each
  153. individual program construct. Ultimately, a complete functional model of an entire program may be derived. The
  154. method of \fIdenotational semantics\fP and the method of \fIfunctional semantics\fP are examples of this approach.
  155.  
  156. \fBAxiomatic methods\fP
  157. .LP
  158. A third class of methods for semantic definition define the semantics of each syntactic construct in the language
  159. directly by giving an axiom or rule of inference that may be used to deduce the effect of execution of that
  160. construct. In order to understand the meaning of an entire program it is necessary to use the axioms and rules of
  161. inference in manner similar to ordinary proofs within the area of mathematics. The method of \fIaxiomatic
  162. semantics\fP is an example of this method.
  163.  
  164. .NH3
  165. Discussion
  166.  
  167. .LP
  168. The various alternative semantic definition methods within each of these classes have provided the basis for
  169. extensive formal study of issues relating to programming language semantics. The work of program correctness proofs
  170. has been closely associated with the development of axiomatic semantics. Denotational semantics have provided the
  171. basis for a deeper sense in which a program computes a function. Finally, operational semantics have led to
  172. discovery of subtle issues in language implementations that are often not apparent to the language implementors.
  173. semantic definition studies upon ition of most of Pascal is given by Hoare and Wirth [1973]. Donahue [1976] and
  174. ml semantic definitions are becoming more an accepted part of the definition of new programming languages. One of
  175. the requirements imposed during the definition of Ada was that a formal semantic definition was required for Ada.
  176. The operational formal definition of PL/I was used as the basis for the standard PL/I definition; although it
  177. should be added that the formal notation was not eventually retained within the standard. The effect of formal
  178. semantic definition studies upon theoretical models of programming languages has not been as great as the effect of
  179. formal grammars upon the definition of syntax. 
  180.  
  181. No single semantic definition method has been found useful for both user and implementor. The operational methods
  182. often provide good formal models of implementation, but the definitions are often too detailed to be of value to an
  183. user. Denotational methods do not provide much guidance to the implementor and have usually proven too complex to
  184. be of direct value to the users. Axiomatic methods are more directly understandable by the language user, but
  185. generally it has been found that they cannot be used to completely define a language without the definition
  186. becoming extremely complex; providing little guidance to the implementor.
  187.  
  188. To date, the major impact of semantic definition of programming languages has been the use of such a definition
  189. during the design of a language to detect and clarify subtle points that might lead to ambiguities in the language
  190. definition. It should be noted however, that the final definition is still ordinarily presented using prose. The
  191. denotational semantic definition of Ada was found to play a significant role in the development of the programming
  192. language, yet only English prose and a BNF grammar are utilised to present the language formally.
  193.  
  194. .NH3
  195. Literature
  196.  
  197. .LP
  198. Marcotty et al. [1976] survey the issues relating to formal semantic definition and describe several methods.
  199. Gordon [1979] provides an good introduction to denotational semantics. Dunlop and Basili [1982] describe Mills
  200. functional semantics and contrast and compare it with denotational semantics. Lucas and Walk [1969] describe the
  201. operational method called the Vienna Definition Language that was used for the formal definition of PL/I. A
  202. denotational semantic definition of most of Ada is given in [Ada, 1980] and an axiomatic definition of most of
  203. Pascal is given by Hoare and Wirth [1973]. Donahue [1976] and Hoare and Lauer [1974] contrasts these various
  204. approaches and recommend a combination of equivalent definitions, each used for different purposes. 
  205. Hoare and Lauer [1974] contrasts these various approaches and recommend a combination of equivalent definitions,
  206. each used for different purposes.
  207.  
  208. Happy reading. Hopefully there are some pointers in there for you.
  209.  
  210. Regards
  211.  
  212. Brian
  213.  
  214. Brian J. King           | Voice: +44 91 222 8557  Fax: +44 91 261 1182  
  215. Engineering Design Centre      | JANET: B.J.King@uk.ac.ncl 
  216. The University          | Internet:B.J.King%newcastle.ac.uk@cunyvm.cuny.edu
  217. Newcastle upon Tyne NE1 7RU UK | UUCP : ...!mcvax!ukc!ncl.ac.uk!B.J.King
  218.  
  219. Brian J. King        | Voice: +44 91 222 6000 ext 8558  Fax: +44 91 261 1182    
  220. Engineering Design Centre      | JANET: B.J.King@uk.ac.ncl 
  221. The University           | Internet:B.J.King%newcastle.ac.uk@cunyvm.cuny.edu
  222. Newcastle upon Tyne NE1 7RU UK | UUCP : ...!mcvax!ukc!ncl.ac.uk!B.J.King
  223.