<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-5247789</id><updated>2009-02-20T17:31:09.016-08:00</updated><title type='text'>Only Syntax</title><subtitle type='html'>Journal of my investigation into the development of a new programming language</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://onlysyntax.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default'/><link rel='alternate' type='text/html' href='http://onlysyntax.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Carl</name><uri>http://www.blogger.com/profile/06745593015566949390</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5247789.post-110632562036559700</id><published>2005-01-21T08:40:00.000-08:00</published><updated>2005-01-21T08:40:20.366-08:00</updated><title type='text'></title><summary type='text'>Screenshot from Scatterplot </summary><link rel='replies' type='application/atom+xml' href='http://onlysyntax.blogspot.com/feeds/110632562036559700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5247789&amp;postID=110632562036559700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/110632562036559700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/110632562036559700'/><link rel='alternate' type='text/html' href='http://onlysyntax.blogspot.com/2005/01/screenshot-from-scatterplot.html' title=''/><author><name>Carl</name><uri>http://www.blogger.com/profile/06745593015566949390</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13865634936865703077'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5247789.post-110615616893793240</id><published>2005-01-19T09:18:00.000-08:00</published><updated>2005-01-19T09:47:06.803-08:00</updated><title type='text'></title><summary type='text'>Refactoring RectangleI have run across two representations of rectangles (actually Axis-Aligned Bounding Boxes, or AABBs). Mac OS represents them (or at least once did) as the four integers left, top, right, bottom; Windows represents them as the position point (generally if not always meaning the top left) and a two-dimensional Size structure. I think both of these are poorly factored </summary><link rel='replies' type='application/atom+xml' href='http://onlysyntax.blogspot.com/feeds/110615616893793240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5247789&amp;postID=110615616893793240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/110615616893793240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/110615616893793240'/><link rel='alternate' type='text/html' href='http://onlysyntax.blogspot.com/2005/01/refactoring-rectanglei-have-run-across.html' title=''/><author><name>Carl</name><uri>http://www.blogger.com/profile/06745593015566949390</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13865634936865703077'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5247789.post-110566629993111252</id><published>2005-01-13T17:07:00.000-08:00</published><updated>2005-01-13T17:53:40.353-08:00</updated><title type='text'></title><summary type='text'>Testability of ProceduresI'm using the Pascal distinction of functions (which return a value) and procedures (which don't) here. Procedures in the C family are just functions with the void return type.For zero button testing, I've come up with syntax that I'm very happy with: expect...returns. This allows tests to be written right in the function body. For instance:two_times x:. . expect </summary><link rel='replies' type='application/atom+xml' href='http://onlysyntax.blogspot.com/feeds/110566629993111252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5247789&amp;postID=110566629993111252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/110566629993111252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/110566629993111252'/><link rel='alternate' type='text/html' href='http://onlysyntax.blogspot.com/2005/01/testability-of-procedures-im-using.html' title=''/><author><name>Carl</name><uri>http://www.blogger.com/profile/06745593015566949390</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13865634936865703077'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5247789.post-110566429110453591</id><published>2005-01-13T16:42:00.000-08:00</published><updated>2005-01-13T17:54:37.893-08:00</updated><title type='text'></title><summary type='text'>PropertiesOne of the nice features of C# is properties; from the outside they behave like instance variables but internally they act more like functions. Each property has a getter and/or setter (named, reasonably enough, "get" and "set").C#'s setters use the keyword "value" for the value being passed in. If I put properties into my language, I think I may instead use the name of the thing, </summary><link rel='replies' type='application/atom+xml' href='http://onlysyntax.blogspot.com/feeds/110566429110453591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5247789&amp;postID=110566429110453591' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/110566429110453591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/110566429110453591'/><link rel='alternate' type='text/html' href='http://onlysyntax.blogspot.com/2005/01/properties-one-of-nice-features-of-c.html' title=''/><author><name>Carl</name><uri>http://www.blogger.com/profile/06745593015566949390</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13865634936865703077'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5247789.post-110566321471460160</id><published>2005-01-13T16:23:00.000-08:00</published><updated>2005-01-13T17:40:32.110-08:00</updated><title type='text'></title><summary type='text'>Nest Shading I've been playing with C# and Python lately, working my way toward an editor for my language, and working on some of the language ideas as well. The picture below is a screenshot from my C# app, holding Python code. I like Python's indentation-based blocks, and plan to use the same approach in my own language.I was focussing on the ability to highlight code that failed tests, as </summary><link rel='replies' type='application/atom+xml' href='http://onlysyntax.blogspot.com/feeds/110566321471460160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5247789&amp;postID=110566321471460160' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/110566321471460160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/110566321471460160'/><link rel='alternate' type='text/html' href='http://onlysyntax.blogspot.com/2005/01/nest-shading-ive-been-playing-with-c.html' title=''/><author><name>Carl</name><uri>http://www.blogger.com/profile/06745593015566949390</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13865634936865703077'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5247789.post-110566194949498754</id><published>2005-01-13T16:19:00.000-08:00</published><updated>2005-01-13T16:19:09.496-08:00</updated><title type='text'></title><summary type='text'>Example of nest shading </summary><link rel='replies' type='application/atom+xml' href='http://onlysyntax.blogspot.com/feeds/110566194949498754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5247789&amp;postID=110566194949498754' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/110566194949498754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/110566194949498754'/><link rel='alternate' type='text/html' href='http://onlysyntax.blogspot.com/2005/01/example-of-nest-shading.html' title=''/><author><name>Carl</name><uri>http://www.blogger.com/profile/06745593015566949390</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13865634936865703077'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5247789.post-106623933851704060</id><published>2003-10-15T10:22:00.000-07:00</published><updated>2003-10-15T10:36:36.166-07:00</updated><title type='text'></title><summary type='text'>RangesThere are lots of ways to ask questions about ranges:(1, 5) contains x?x is_in (1, 5)Today I was looking at some C code and saw this common pattern:1 &lt; x &amp;&amp; x &lt; 5And, really, the natural way to represent this would be:1 &lt; x &lt; 5But that doesn't work in any language I'm familiar with, because their logic is more machine-focussed.  The result of operator &lt; from the right </summary><link rel='replies' type='application/atom+xml' href='http://onlysyntax.blogspot.com/feeds/106623933851704060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5247789&amp;postID=106623933851704060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/106623933851704060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/106623933851704060'/><link rel='alternate' type='text/html' href='http://onlysyntax.blogspot.com/2003/10/ranges-there-are-lots-of-ways-to-ask.html' title=''/><author><name>Carl</name><uri>http://www.blogger.com/profile/06745593015566949390</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13865634936865703077'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5247789.post-92471554</id><published>2003-04-11T22:41:00.000-07:00</published><updated>2003-04-11T22:53:52.000-07:00</updated><title type='text'></title><summary type='text'>Language Futures Linkvia Lambda the Ultimate, Paul Graham's The Hundred-Year Language says lots of interesting things.  Like:One way to design a language is to just write down the program you'd like to be able to write, regardless of whether there is a compiler that can translate it or hardware that can run it. When you do this you can assume unlimited resources. It seems like we ought to be </summary><link rel='replies' type='application/atom+xml' href='http://onlysyntax.blogspot.com/feeds/92471554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5247789&amp;postID=92471554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/92471554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/92471554'/><link rel='alternate' type='text/html' href='http://onlysyntax.blogspot.com/2003/04/language-futures-link-via-lambda.html' title=''/><author><name>Carl</name><uri>http://www.blogger.com/profile/06745593015566949390</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13865634936865703077'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5247789.post-92244400</id><published>2003-04-08T14:01:00.000-07:00</published><updated>2003-04-08T14:01:18.700-07:00</updated><title type='text'></title><summary type='text'>Guiding Principle - ClarityCan there be emergent guiding principles?  As I play with these ideas, I'm finding myself reacting to this feature or that one of one language or another, looking at that reaction, and trying to analyze what drives it.So at some level, the primary basis for all of my decisions here is visceral.  But what makes me react the way I do?  I think there are genuine, </summary><link rel='replies' type='application/atom+xml' href='http://onlysyntax.blogspot.com/feeds/92244400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5247789&amp;postID=92244400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/92244400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/92244400'/><link rel='alternate' type='text/html' href='http://onlysyntax.blogspot.com/2003/04/guiding-principle-clarity-can-there-be.html' title=''/><author><name>Carl</name><uri>http://www.blogger.com/profile/06745593015566949390</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13865634936865703077'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5247789.post-92168162</id><published>2003-04-07T12:36:00.000-07:00</published><updated>2003-04-10T12:57:27.000-07:00</updated><title type='text'></title><summary type='text'>AdjectivesPart of the art of programming, in languages I've worked with at least, is balancing nouns and verbs.  Before there were modules, data structures and objects, routines (verbs) had to bear all of the organizational burden of a program.  Transferring some of that burden to data structures (nouns) can be a great simplification.Human language, of course, has much more than nouns and </summary><link rel='replies' type='application/atom+xml' href='http://onlysyntax.blogspot.com/feeds/92168162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5247789&amp;postID=92168162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/92168162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/92168162'/><link rel='alternate' type='text/html' href='http://onlysyntax.blogspot.com/2003/04/adjectives-part-of-art-of-programming.html' title=''/><author><name>Carl</name><uri>http://www.blogger.com/profile/06745593015566949390</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13865634936865703077'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5247789.post-92081870</id><published>2003-04-06T01:12:00.000-08:00</published><updated>2003-04-06T01:20:50.000-08:00</updated><title type='text'></title><summary type='text'>Conditionals: Question/Answer/ActionHere is what I want to use for conditionals:    [is] a &gt; 5?        if so:  print "big"        if not: print "small"    [is] a &gt; 5?        yes:            print "big"            subtract 3 from a        no:            print "small"            add 2 to a    [what is] a?        it &gt; 5:    print "big"        it &gt; 3:    print "medium"        </summary><link rel='replies' type='application/atom+xml' href='http://onlysyntax.blogspot.com/feeds/92081870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5247789&amp;postID=92081870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/92081870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/92081870'/><link rel='alternate' type='text/html' href='http://onlysyntax.blogspot.com/2003/04/conditionals-questionansweraction-here.html' title=''/><author><name>Carl</name><uri>http://www.blogger.com/profile/06745593015566949390</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13865634936865703077'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5247789.post-92081821</id><published>2003-04-06T01:10:00.000-08:00</published><updated>2003-04-06T01:10:32.170-08:00</updated><title type='text'></title><summary type='text'>Conditionals: ELSE IFTo me, one clue that ELSE IF is problematic is its many, many names (ELIF, ELSIF, ELSEIF).  In my own programming projects, I've found that when I don't have a good name for something, it means I don't really have the concept right.  Of course, various languages have settled on their own terms for this, but that most of them are abbreviations (and low-leverage abbreviations</summary><link rel='replies' type='application/atom+xml' href='http://onlysyntax.blogspot.com/feeds/92081821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5247789&amp;postID=92081821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/92081821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/92081821'/><link rel='alternate' type='text/html' href='http://onlysyntax.blogspot.com/2003/04/conditionals-else-if-to-me-one-clue.html' title=''/><author><name>Carl</name><uri>http://www.blogger.com/profile/06745593015566949390</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13865634936865703077'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5247789.post-92035854</id><published>2003-04-05T03:31:00.000-08:00</published><updated>2003-04-07T08:51:53.000-07:00</updated><title type='text'></title><summary type='text'>Welcome to Only SyntaxHello and welcome to my investigation into developing a new programming language.  I'm calling it "Only Syntax" (the blog, not the as-yet-unnamed language) because syntax is what is driving me to think there needs to be YAPL.  I suspect that if it gets any attention at all, a primary criticism will be that my language isn't "really" any different from existing programming</summary><link rel='replies' type='application/atom+xml' href='http://onlysyntax.blogspot.com/feeds/92035854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5247789&amp;postID=92035854' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/92035854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5247789/posts/default/92035854'/><link rel='alternate' type='text/html' href='http://onlysyntax.blogspot.com/2003/04/welcome-to-only-syntax-hello-and.html' title=''/><author><name>Carl</name><uri>http://www.blogger.com/profile/06745593015566949390</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13865634936865703077'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>