<div dir="ltr">Another good reference is the "as-if" rule in C. It's similar to operational semantics, but may have enough denotational semantics semantics to be what you're looking for. Don't know of a canonical reference, but Google is useful:<br>
<a href="http://docs.sun.com/app/docs/doc/819-5265/6n7c29d9f?l=ko&a=view">http://docs.sun.com/app/docs/doc/819-5265/6n7c29d9f?l=ko&a=view</a><br><br><div class="gmail_quote">On Thu, Jul 31, 2008 at 20:00, Terry Reedy <span dir="ltr"><<a href="mailto:tjreedy@udel.edu">tjreedy@udel.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d"><br>
<br>
David Borowitz wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Precisely: you're talking about two different accepted definitions of semantics:<br>
<a href="http://en.wikipedia.org/wiki/Formal_semantics_of_programming_languages" target="_blank">http://en.wikipedia.org/wiki/Formal_semantics_of_programming_languages</a><br>
<br>
I'm not going to say one type of formal semantics is better than another, but it's nice when everyone is at least on the same page :)<br>
</blockquote>
<br></div>
Thank you for the reference. I see that denotational and operational are just the beginning of the semantics of semantics.<br>
<br>
In writing about and comparing algorithms, I need a term that is slightly in between but closer to operational than merely denotational. I am thinking of using 'operationally equivalent' to describe two algorithms that are denotationally (functionally) identical and which compute the same essential intermediate objects (values) in the same order, while not being 'operationally identical' (which would make them the same thing).<br>
<br>
Wikipedia refers 'operational equivalence' to 'observational equivalence'. Other hits from Google suggest that it have been used variably to mean things from operationally identical to merely denotationally (functionally identical), but therefore a complete substitute in the users operations.<br>
<br>
In the present case, we agree that [genexp] == list(genexp] in the Python meaning, denotational and operational, of '==', which is to compare the denotational meaning of two expressions (the resulting objects and their values). I also claim a bit more: [genexp] could be but does not have to be, and in current CPython is not, operationally identical to list(genexp). But I do expect that it is operationally equivalent in the sense above. The essential objects and operations are the list contents and the list that starts empty and grows one reference at a time via append().<br>
<br>
Terry Jan Reedy<div><div></div><div class="Wj3C7c"><br>
<br>
_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-ideas" target="_blank">http://mail.python.org/mailman/listinfo/python-ideas</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>It is better to be quotable than to be honest.<br> -Tom Stoppard<br><br>Borowitz<br>
</div>