home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / specific / 529 < prev    next >
Encoding:
Text File  |  1992-11-13  |  6.1 KB  |  113 lines

  1. Newsgroups: comp.specification
  2. Path: sparky!uunet!mcsun!sunic!dkuug!daimi!pdm
  3. From: pdm@daimi.aau.dk (Peter D. Mosses)
  4. Subject: Re: Semantic definition style
  5. In-Reply-To: ogden@seal.cis.ohio-state.edu (William F Ogden)
  6. Message-ID: <1992Nov13.084826.26088@daimi.aau.dk>
  7. Summary: not a word about action semantics :-)
  8. Keywords: structural operational semantics, denotational semantics
  9. Sender: pdm@daimi.aau.dk (Peter D. Mosses)
  10. Reply-To: pdm@daimi.aau.dk (Peter D. Mosses)
  11. Organization: DAIMI: Computer Science Department, Aarhus University, Denmark
  12. References: <720801988.16035@minster.york.ac.uk> <1992Nov11.195443.23006@cis.ohio-state.edu>
  13. Date: Fri, 13 Nov 92 08:48:26 GMT
  14. Lines: 97
  15.  
  16. In article <1992Nov11.195443.23006@cis.ohio-state.edu>, ogden@seal (William F Ogden) writes:
  17.  
  18. >Another primary objective of semantics is to define formally for users
  19. >precisely what they can expect a program will do in all possible
  20. >situations. To meet this objective, operational semantics are a very
  21. >tempting approach. They generally can be viewed as defining some sort of
  22. >automaton and reducing the problem of giving semantics for the programming
  23. >language to one of translating the high level language programs into
  24. >programs for the automata and then using the usual sequence of states
  25. >(computational history) semantics which are the norm when supplying
  26. >semantics for automata. The intermediate automata usually have a simpler
  27. >and more appropriate architecture than say a 68000 presents. but the
  28. >idea is still roughly to explain the semantics of a program by examining
  29. >what happens when you compile it for a machine with a really nice
  30. >architecture. This implementation oriented approach could be expected
  31. >to communicate better with programmers.
  32.  
  33. The style of `structural' operational semantics advocated by Plotkin
  34. et al. does *not* involve any translation!  The main point is
  35. precisely to avoid consideration of all the small, boring steps that
  36. low-level machines make, and to specify only the bigger transitions
  37. that are of interest at the programming language level.
  38.  
  39. >A third major objective of semantics is to define formally for
  40. >implementors precisely what effect their compilers/interpreters are
  41. >supposed to produce under all circumstances. This is the objective
  42. >which seems to favor denotational semantics. Denotational semantics
  43. >are explicit semantics, as opposed to the implicit semantics which result
  44. >from the operational approach. I.e., operational semantics produce a
  45. >welter of irrelevant information (computational histories), from which the
  46. >essential information (the input/output pairs, in the case of sequential
  47. >programs) must be extracted. 
  48.  
  49. But the denotations of statements, declarations, etc., are not I/O
  50. relations!  They necessarily deal with *auxiliary* entities, such as
  51. environments and stores, whose relevance to particular implementations
  52. is not nearly so direct as that of the I/O relation.  Moreover, to
  53. model interleaving (i.e., unspecified order of evaluation in the
  54. presence of side-effects) one uses so-called `resumptions' as
  55. denotations; these are very closely related to computations.  It seems
  56. that one cannot get `fully abstract' denotations for such constructs.
  57.  
  58. >If, for example, a compiler writer has a
  59. >target architecture that is wildly different from that of the automaton
  60. >used in the operational semantics for his source language or even if
  61. >he's just writing a highly optimizing compiler, he's got a real problem
  62. >in relating the computational histories his output code will produce
  63. >to those described by the semantics. Denotational semantics address this
  64. >problem by attempting to produce minimalist semantics which tell the
  65. >compiler writer exactly the effect his compiled code should produce and
  66. >nothing more. 
  67.  
  68. The trouble is that this effect is `encoded' as intricate compositions
  69. of pure, higher-order functions, which can be quite difficult to
  70. relate to an intended implementation.  Similar problems arise if one
  71. tries to use concurrent processes as denotations, instead of
  72. functions: one ends up losing sight of the *concepts* of the described
  73. language, which involve scopes, variable allocation, assignments,
  74. sequencing, etc. (as well as functions and processes, of course).
  75.  
  76. >The main drawback of this Spartan approach seems to be
  77. >that, of necessity, it leads us into such unfamiliar topics as minimal
  78. >fixed points, etc. and thereby makes it more difficult to meet the other
  79. >two primary objectives of semantics.
  80.  
  81. The use of minimal fixed points is neither more nor less difficult to
  82. explain than that of recursive (i.e., self-calling) procedures.
  83. Readers of semantic descriptions don't usually need to understand
  84. *why* things with certain desirable properties exist.  In fact in the
  85. mid '60s, Strachey was happily using minimal fixed point operators in
  86. denotational descriptions, long before the existence of a mathematical
  87. model for them was shown!
  88.  
  89. Another, more technical drawback of the use of Scott domains in
  90. denotational semantics is the following.  A semantics is usually
  91. intended to specify a *class* of implementations, not just one
  92. implementation.  I don't see any reason why a class of continuous
  93. functions should be representable by a single continuous function.
  94. E.g., consider a language where the value in an uninitialized variable
  95. is an arbitrary number (not necessarily the same one each time); to
  96. represent this denotationally involves unbounded nondeterminism, which
  97. conflicts with the usual continuity assumption.
  98.  
  99. >Now algebraic semantics would seem to be predicated on the dubious
  100. >proposition that computation is entirely describable within a limited
  101. >first-order subarea of mathematics -- namely algebra.
  102.  
  103. - which can specify Turing machine computations, and hence is
  104. universal.  In any case, there are `first-order' models for domains,
  105. e.g., Scott's P-omega model, where continuous functions are
  106. represented by their approximation graphs.
  107.  
  108. -- 
  109. Peter D. Mosses | Computer Science Department | <pdmosses@daimi.aau.dk> 
  110. ~~~~~~~~~~~~~~~ | Aarhus University           | Phone: +45 86 12 71 88 
  111.                 | Ny Munkegade, Building 540  | Fax:   +45 86 13 57 25 
  112.                 | DK-8000 Aarhus C,  Denmark  | Telex: 64767 aausci dk
  113.