{"id":1109,"date":"2016-03-01T11:49:28","date_gmt":"2016-03-01T11:49:28","guid":{"rendered":"http:\/\/nayrb.org\/~blog\/?p=1109"},"modified":"2016-03-01T02:51:01","modified_gmt":"2016-03-01T02:51:01","slug":"seeing-the-assembly-through-the-cs","status":"publish","type":"post","link":"http:\/\/nayrb.org\/~blog\/2016\/03\/01\/seeing-the-assembly-through-the-cs\/","title":{"rendered":"Seeing the Assembly Through the Cs"},"content":{"rendered":"<p>People always say that one of the important attributes of the C programming language is that you can look at the code and very clearly see the assembler that the compiler will produce.<\/p>\n<p>But (I think) ever since I did assembler in class, no matter the language, I could see\/map it to how the compiler would translate it to assembler.<\/p>\n<p>In fact, it bothered me to no end.  When I was learning Perl, it was very difficult at first to learn to trust the interpreter to take care of large swathes of the task, to let go of control.  I could see all of the horribly inefficient things it must be doing behind the scenes (&#8216;what do you mean, dynamic typing?!?&#8217;), and for a long time, my Perl would read very much like my C[1].<\/p>\n<p>But then I discovered regex.[2]  And learned about premature optimization.<\/p>\n<p>Now my bash commands read like my Perl.<\/p>\n<p>[1]It probably still does, but it&#8217;s starting to bleed back now.  I&#8217;m now reminded of the dangers of buffer overflows whenever I use scanf.<\/p>\n<p>[2]If you are reading this, you likely will have seen <a href=\"http:\/\/regex.alf.nu\/\" target=\"_blank\">Regex Golf<\/a>, or the first (that I saw) <a href=\"http:\/\/www.i-programmer.info\/news\/144-graphics-and-games\/5450-can-you-do-the-regular-expression-crossword.html\" target=\"_blank\">Regex Crossword<\/a>.  (<a href=\"https:\/\/regexcrossword.com\/\" target=\"_blank\">LOOK THEY MADE MORE.  THIS IS AMAZING.<\/a>)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>People always say that one of the important attributes of the C programming language is that you can look at the code and very clearly see the assembler that the compiler will produce. But (I think) ever since I did assembler in class, no matter the language, I could see\/map it to how the compiler &hellip; <a href=\"http:\/\/nayrb.org\/~blog\/2016\/03\/01\/seeing-the-assembly-through-the-cs\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Seeing the Assembly Through the Cs<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[25,30],"tags":[],"_links":{"self":[{"href":"http:\/\/nayrb.org\/~blog\/wp-json\/wp\/v2\/posts\/1109"}],"collection":[{"href":"http:\/\/nayrb.org\/~blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/nayrb.org\/~blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/nayrb.org\/~blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/nayrb.org\/~blog\/wp-json\/wp\/v2\/comments?post=1109"}],"version-history":[{"count":3,"href":"http:\/\/nayrb.org\/~blog\/wp-json\/wp\/v2\/posts\/1109\/revisions"}],"predecessor-version":[{"id":1135,"href":"http:\/\/nayrb.org\/~blog\/wp-json\/wp\/v2\/posts\/1109\/revisions\/1135"}],"wp:attachment":[{"href":"http:\/\/nayrb.org\/~blog\/wp-json\/wp\/v2\/media?parent=1109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/nayrb.org\/~blog\/wp-json\/wp\/v2\/categories?post=1109"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/nayrb.org\/~blog\/wp-json\/wp\/v2\/tags?post=1109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}