tag:blogger.com,1999:blog-8288194986820249216.post3476896318157080018..comments2024-03-22T05:09:17.789-07:00Comments on Abstract Heresies: Joe Marshallhttp://www.blogger.com/profile/03233353484280456977noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-8288194986820249216.post-57767395718610172502010-04-15T08:03:06.629-07:002010-04-15T08:03:06.629-07:00Rog asks: How many languages have formal semantic...<a href="http://www.blogger.com/profile/02471808724169296390" rel="nofollow">Rog</a> asks: <i>How many languages have formal semantics?</i><br><br />Few that I know of. (I assume you mean <em>published</em> formal semantics. Presumably <em>all</em> of them have <em>some</em> semantics even if no one knows what they are.)<br><br><br /><a href="http://www.blogger.com/profile/03407339997157446200" rel="nofollow">Kazimir Majorinc</a> said: <em>I think that semantics would be description what happens with computer during execution of the program.</em><br><br />That would be the <em>operational</em> semantics. There are other ways of expressing semantics: denotational and axiomatic are the two main approaches and there are dozens of variations.<br><br><br /><em>I'm not sure about term "formal" as it implies lack of meaning, while semantics is about meaning.</em><br><br />In the arguments I have about programs and meanings, I often find that people think I'm trying to nitpick about little academic details. I'll ask “How can I <em>know</em> this program does what I think it does?” and I'll get replies like ‘You just know, ok? If it bothers you, go off with the program verification weenies and analyze to your heart's content.’ But I'm interested across the entire spectrum of analysis from casual reasoning to proof chains. (Actually, I don't care much for proofs, I assume someone does and I'll hear if they prove or disprove something interesting.) So when I say “formal”, I'm using the term to contrast against “informal” or “casual” analysis where a programmer looks at a program for a few moments and gets some idea about what it does. <em>That</em> is a kind of analysis, and it is <em>crucial</em> to developing software. If you cannot analyze software at <em>that</em> level, you're pretty much stuck.Joe Marshallhttps://www.blogger.com/profile/03233353484280456977noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-46545955367179835232010-04-15T02:18:13.405-07:002010-04-15T02:18:13.405-07:00I think that semantics would be description what h...I think that semantics would be description what happens with computer during execution of the program. There should be only one semantics, although style of presentation can differ. <br /><br />Then that reality can be described using mathematical abstractions, this time on many different ways. <br /><br />I'm not sure about term "formal" as it implies lack of meaning, while semantics is about meaning. So, it can be confusing. Maybe concrete and abstract semantics, or real and ideal semantics.Kazimir Majorinchttps://www.blogger.com/profile/03407339997157446200noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-11890084261730667992010-04-15T02:17:09.857-07:002010-04-15T02:17:09.857-07:00How many languages have formal semantics?How many languages have formal semantics?roghttps://www.blogger.com/profile/02471808724169296390noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-80105282868733253812010-04-14T20:30:03.557-07:002010-04-14T20:30:03.557-07:00"Yes you need to understand if you want to en..."Yes you need to understand if you want to enjoy programming."<br />I don't think so, actually (not for me). I enjoy being confused, and the process of learning. This is part of enjoying programming for me: learning new stuff. If I can write serviceable code at the same time as trying to figure things out, all the better : )<br /><br />"How did you decide *what* to copy and paste? Did you just choose two points in the source code at random? Or did you attempt to discover rudimentary meaning?"<br />Right, there are degrees of understanding. I think the threshold where you can start writing code (when I get to beyond copy/pasting) is always a significant milestone for me in learning new programming stuff.<br /><br />Also maybe related is the relative difficulty in reading vs writing code in a given language ( <a href="http://www.inform-fiction.org/I7/Welcome.html" rel="nofollow">inform 7</a> sis maybe most exemplary as an example of this). You can understand a piece of code in I7 without too much effort - it pretty much explains itself, but that doesn't mean at all that you have to know the underlying grammatical rules or constructs that would enable you to write such code yourself.Stephen Lavellehttps://www.blogger.com/profile/06196127397721259722noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-43390614987080388112010-04-14T16:02:33.591-07:002010-04-14T16:02:33.591-07:00From the R6RS standard:
"It is important to ...From the R6RS standard:<br /><br />"It is important to distinguish between the mathematical numbers, the Scheme objects that attempt to model them, the machine representations used to implement the numbers, and notations used to write numbers."grant rettkehttps://www.blogger.com/profile/09439997834215273665noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-85517267239130406182010-04-14T16:02:12.738-07:002010-04-14T16:02:12.738-07:00Yes you need to understand if you want to enjoy pr...Yes you need to understand if you want to enjoy programming.grant rettkehttps://www.blogger.com/profile/09439997834215273665noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-53522728029941848822010-04-14T12:31:38.997-07:002010-04-14T12:31:38.997-07:00How did you decide *what* to copy and paste? Did ...How did you decide *what* to copy and paste? Did you just choose two points in the source code at random? Or did you attempt to discover rudimentary meaning? “I don't know what exactly this does, but it looks like it does it 3 times, and I want it to do 4 times” or “this piece of opaque code seems to generate the doohicky because if I comment it out, the doohicky is gone, but the surrounding stuff is still there”.Joe Marshallhttps://www.blogger.com/profile/03233353484280456977noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-44530512284472025132010-04-14T11:53:41.761-07:002010-04-14T11:53:41.761-07:00I don't know if a human needs to understand - ...I don't know if a human needs to understand - I've done plenty of 'programming' in unfamiliar setups/environments by copy/pasting, modifying some key things, or programming by mimesis.<br /><br />This can lead to problems, natch, but things can get done this way.<br /><br />"Of course, a human needs to understand."<br />Different people have very different understandings of that term :PStephen Lavellehttps://www.blogger.com/profile/06196127397721259722noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-14503858145693839612010-04-14T11:53:40.477-07:002010-04-14T11:53:40.477-07:00I don't know if a human needs to understand - ...I don't know if a human needs to understand - I've done plenty of 'programming' in unfamiliar setups/environments by copy/pasting, modifying some key things, or programming by mimesis.<br /><br />This can lead to problems, natch, but things can get done this way.<br /><br />"Of course, a human needs to understand."<br />Different people have very different understandings of that term :PStephen Lavellehttps://www.blogger.com/profile/06196127397721259722noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-83697515130972915432010-04-14T08:15:46.409-07:002010-04-14T08:15:46.409-07:00Understanding is a tricky thing. A compiler produ...Understanding is a tricky thing. A compiler produces useful programs in the target language, but it doesn't "understand" the semantics, does it?<br /><br />Of course, a human needs to understand.mquanderhttps://www.blogger.com/profile/04628649386002008189noreply@blogger.com