{"id":7901,"date":"2019-03-12T12:55:27","date_gmt":"2019-03-12T16:55:27","guid":{"rendered":"https:\/\/irreal.org\/blog\/?p=7901"},"modified":"2019-03-12T12:55:27","modified_gmt":"2019-03-12T16:55:27","slug":"a-history-of-the-development-of-c","status":"publish","type":"post","link":"https:\/\/irreal.org\/blog\/?p=7901","title":{"rendered":"A History of the Development of C"},"content":{"rendered":"<p>Someone posted a pointer to an old (1994) paper of Dennis Ritchie on the <a href=\"http:\/\/www.bell-labs.com\/usr\/dmr\/www\/chist.html\">development of the C language<\/a>. I haven\u2019t read it in years and it was interesting to revisit it. The paper, along with several others describing aspects of C and Unix, are available on <a href=\"https:\/\/www.bell-labs.com\/usr\/dmr\/www\/\">Ritchie\u2019s home page<\/a> that AT&amp;T still maintains.<\/p>\n<p>I\u2019d forgotten some of the details that he reveals such as why the default name for a Unix executable is <code>a.out<\/code> and why the precedence rules for the <code>&amp;<\/code> and <code>==<\/code> operators are not what you think they should be. If you\u2019re a C programmer, most of the structure of C seems obvious and just what it should be but, in fact, Ritchie struggled with many of the ideas and they were unconventional, if not controversial, at the time.<\/p>\n<p>Most of us know that C is derived from the B language which was in turn derived from BCPL but the paper provides the details of that derivation and how the languages differed. Many of the features that make C so powerful and useful came directly from its predecessors.<\/p>\n<p>C, of course, is credited with making Unix portable but that was not its original goal. The programmers simply wanted a higher order language than assembly in which to build their programs. Indeed, many Unix utilities were first ported from assembly to B and only later to C.<\/p>\n<p>There\u2019s all sorts of interesting historical and technical tidbits in the paper and it\u2019s well worth a few minutes of your time, especially if you\u2019re interested in Unix history or programming languages.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Someone posted a pointer to an old (1994) paper of Dennis Ritchie on the development of the C language. I haven\u2019t read it in years and it was interesting to revisit it. The paper, along with several others describing aspects &hellip; <a href=\"https:\/\/irreal.org\/blog\/?p=7901\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[17,36],"class_list":["post-7901","post","type-post","status-publish","format-standard","hentry","category-programming","tag-c","tag-unix"],"_links":{"self":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/7901","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7901"}],"version-history":[{"count":1,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/7901\/revisions"}],"predecessor-version":[{"id":7902,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/7901\/revisions\/7902"}],"wp:attachment":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}