{"id":107,"date":"2005-01-22T19:29:31","date_gmt":"2005-01-22T18:29:31","guid":{"rendered":"http:\/\/www.nobugs.org\/blog\/archives\/2005\/01\/22\/parsing-and-stuff\/"},"modified":"2005-01-22T19:30:19","modified_gmt":"2005-01-22T18:30:19","slug":"parsing-and-stuff","status":"publish","type":"post","link":"https:\/\/www.nobugs.org\/blog\/archives\/2005\/01\/22\/parsing-and-stuff\/","title":{"rendered":"Parsing and stuff"},"content":{"rendered":"<p>I&#8217;ve been busy doing lots of different stuff recently (going to my first ever wedding, recording my <a href=\"http:\/\/www.nobugs.org\/proxy\">first ever CD<\/a>).  But in the computer world, I got a few emails last week from people asking about C++ parsing, so I updated my <a href=\"http:\/\/www.nobugs.org\/developer\/parsingcpp\/\">Parsing C++<\/a> page to bring it up to date.  Whilst updating it this morning, I realised that I make a strong distinction between &#8220;real problems&#8221; which are interesting and worthwhile to solve, as opposed to other kinds of problems which are just annoying and timeconsuming.  C++ parsing falls in the latter category, which is surprising since I&#8217;d personally use a C++ parsing toolkit quite a lot.  But it should be a non-problem.  Languages should be designed so that they&#8217;re easy for humans and computers to parse.  End of story.  A language which fails this test is plain bad.  Writing glue code between API&#8217;s is another annoying problem.  I&#8217;d rather spend my time on Real problems.  But what do I mean by &#8220;real&#8221; problems in programming?  I&#8217;m not entirely sure myself.  Problems which are not specific to a particular programming language, or to a particular hardware architecture, I guess.  But at the same time, I&#8217;m interested in using computers as tools to achieve some purpose &#8211; learn about electromagnetism for example.  I think I&#8217;ve just got to a point in my life where I&#8217;m looking back over what I&#8217;ve done in the past 10 or so year, and planning how to spend the next 10 years, and wanting to make sure I <i>actively<\/i> choose what to do rather than <i>passively<\/i> ending up doing something.<\/p>\n<p>I enjoyed Kim&#8217;s <a href=\"http:\/\/www.kimbly.com\/blog\/000395.html\">summary of the Composable Memory Transactions<\/a> paper.  I like these kind of mini-summaries of papers, since my list of &#8220;papers to read&#8221; grows faster than I can keep up with.   To most people, &#8220;concurrency&#8221; means threads and mutexes.  This is a horribly primitive way of approaching concurrency &#8211; notoriously difficult for us puny humans to get right, and little better than a house of cards.  Higher level models such as CSP are much better for building safe, stable programs.  I don&#8217;t think I&#8217;d really explictly understood the importance of this kind of composability before, but clearly it&#8217;s a vital ingredient in building larger and larger systems.<\/p>\n<p>I&#8217;ve also discovered the <a href=\"http:\/\/dirtsimple.org\/\">dirtsimple<\/a> blog, which has provided lots of interesting reading.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been busy doing lots of different stuff recently (going to my first ever wedding, recording my first ever CD). But in the computer world, I got a few emails last week from people asking about C++ parsing, so I updated my Parsing C++ page to bring it up to date. Whilst updating it this [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-107","post","type-post","status-publish","format-standard","hentry","category-general"],"_links":{"self":[{"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/posts\/107","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/comments?post=107"}],"version-history":[{"count":0,"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/posts\/107\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/media?parent=107"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/categories?post=107"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/tags?post=107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}