tag:blogger.com,1999:blog-5722310642266356003.post3281531236297526003..comments2024-01-07T23:21:32.676+01:00Comments on The Axis of Eval: Fear and Loathing at the Lisp Syntax-Semantics InterfaceUnknownnoreply@blogger.comBlogger3125tag:blogger.com,1999:blog-5722310642266356003.post-63066944845509832402012-05-18T05:35:34.326+02:002012-05-18T05:35:34.326+02:00Instead of “syntax”, how about “structure” for the...Instead of “syntax”, how about “structure” for the AST, and “skin” for its textual (or graphical) representation?<br /><br />I think structure editors are a red herring here. They only replace the skin; the structure remains the same, and it's the important part.<br /><br />"Lisp semantics has no syntax" isn't a profound concept; it's a simple matter of modularity. Lisp keeps its skin separate from its structure and its semantics, so they don't complicate each other. The skin doesn't have special cases for each special form (with a few exceptions, like quote and backquote), and the structure doesn't have a different representation for each semantic feature (except symbols and literals). If the structure distinguished special forms from function calls from non-form lists, it would be more complex, and it would take a large benefit to be worth complicating the heart of the language.<br /><br />(I sometimes wish funcalls, special forms, and nonform lists had different skins, but this wish is based more on aesthetics and a desire for theoretical clarity than on any practical problem.)Arcane Sentimenthttps://www.blogger.com/profile/04144052171693893368noreply@blogger.comtag:blogger.com,1999:blog-5722310642266356003.post-20456949298269758852012-04-05T15:26:20.710+02:002012-04-05T15:26:20.710+02:00I think I'm using a wider definition of syntax...I think I'm using a wider definition of <em>syntax</em> - to me the <em>data</em> passed to the evaluator still has (or is?) syntax.<br /><br />What the evaluator does is effectively <em>parse</em> the data passed to it (e.g. extract the operator of a compound form and evaluate it.)<br /><br />But I'll have to meditate more on your "Lisp semantics has no syntax".Manuel Simonihttps://www.blogger.com/profile/07840673741485280526noreply@blogger.comtag:blogger.com,1999:blog-5722310642266356003.post-75160655987521949882012-04-05T07:13:43.293+02:002012-04-05T07:13:43.293+02:00I agree and disagree. :-) Here's how I'd ...I agree and disagree. :-) Here's how I'd put it.<br /><br />There are no syntactic puns here, and no syntax-semantics interface. For about as long as I've known Lisp, I've heard "Lisp has no syntax". I didn't fully grok what the saying meant until pretty recently. Lisp <i>semantics</i> has no syntax. Lisp has syntax to express data, but no syntax at all to express semantics. It's true that <i>data</i> is being used, through the evaluator algorithm, to represent both the combiner calls and their operands (such as let bindings), but that's not syntax (so, no syntactic puns). The syntax is already gone before anything interfaces with the semantics.<br /><br />I do agree that the success of Lisp depends quite heavily on the fact that it has no syntax dedicated to semantics. But this means that, to the extent that a language introduces syntax dedicated to semantics, to just that extent the language becomes less Lisp.John Shutthttps://www.blogger.com/profile/00041398073010099077noreply@blogger.com