{"id":21956,"date":"2023-02-21T06:02:20","date_gmt":"2023-02-21T06:02:20","guid":{"rendered":"https:\/\/www.booksofall.com\/?post_type=product&#038;p=21956"},"modified":"2023-02-21T06:02:57","modified_gmt":"2023-02-21T06:02:57","slug":"exploring-programming-language-architecture-in-perl","status":"publish","type":"product","link":"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/","title":{"rendered":"Exploring Programming Language Architecture in Perl"},"content":{"rendered":"<p>By the end of this book you should have a thorough understanding of the inner workings of a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Interpreter_(computing)\">programming language interpreter<\/a>. The source code is presented in full, and several iterations add more features until it could be considered pretty complete. The interpreter is written to be as easy to understand as possible; it has no clever optimizations that might obscure the basic ideas, and the code and the ideas will be described to the best of my ability without any unexplained technical jargon. It is however assumed that you have a good working knowledge of <a href=\"https:\/\/www.perl.org\/\">Perl<\/a> (Perl5), including its object-oriented features.<\/p>\n<p>The final implementation will demonstrate:<\/p>\n<ul>\n<li>primitive arithmetic operations;<\/li>\n<li>conditional evaluation;<\/li>\n<li>local variables;<\/li>\n<li>functions and closure;<\/li>\n<li>recursion;<\/li>\n<li>list processing;<\/li>\n<li>quote\u2014preventing evaluation;<\/li>\n<li>a simple macro facility;<\/li>\n<li><a href=\"https:\/\/realpython.com\/lessons\/variable-assignment\/\">variable assignment<\/a> and<a href=\"https:\/\/en.wikipedia.org\/wiki\/Side_Effects_(2013_film)\"> side-effects<\/a>;<\/li>\n<li>procedures (as opposed to functions) and sequences;<\/li>\n<li>objects and classes;<\/li>\n<li>continuations;<\/li>\n<li>threads;<\/li>\n<li>exceptions;<\/li>\n<li><a href=\"https:\/\/en.wiktionary.org\/wiki\/nondeterminism#:~:text=nondeterminism%20(countable%20and%20uncountable%2C%20plural,events%2C%20such%20as%20free%20will.\">non-determinism<\/a> and <a href=\"http:\/\/conf.uni-obuda.hu\/sisy2006\/55_Udovicic.pdf\">chronological backtracking<\/a>;<\/li>\n<li>logic programming.<\/li>\n<\/ul>\n<p>Having said that, time and space is not wasted fleshing the interpreter out with numerous cut\u2019n\u2019paste system interfaces, i\/o or even much basic arithmetic (the final implementation has only multiplication, addition and subtraction\u2014enough for the tests and examples to work,) but by then it should be a trivial matter for anyone to add those themselves if they feel so inclined. Another point worth mentioning up front is that no claims are made that this is in any way a production-quality or even an efficient implementation. It is just meant to be easy to understand.<\/p>\n<p>Putting it another way, if you\u2019ve come here looking for an off-the shelf scheme-like interpreter that you can use, you\u2019ve come to the wrong place: there are many and better freely available implementations on the net. On the other hand, if you\u2019re more interested in how such interpreters might work, I\u2019d like to think that you might find what you\u2019re looking for here.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p><iframe style=\"width: 100%; height: 700px; border: none;\" src=\"https:\/\/online.visual-paradigm.com\/share\/book\/eplaip-19jrsj7p48?enforceShowPromotionBar=true&amp;p=1\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n","protected":false},"featured_media":21960,"template":"","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":""},"product_brand":[],"product_cat":[357],"product_tag":[],"class_list":{"0":"post-21956","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-perl","8":"first","9":"instock","10":"shipping-taxable","11":"product-type-simple"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Exploring Programming Language Architecture in Perl - BooksOfAll Portuguese<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Exploring Programming Language Architecture in Perl - BooksOfAll Portuguese\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/\" \/>\n<meta property=\"og:site_name\" content=\"BooksOfAll Portuguese\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-21T06:02:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.booksofall.com\/pt\/wp-content\/uploads\/sites\/8\/2023\/02\/img_63f45bb2ef824.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.booksofall.com\/pt\/wp-content\/uploads\/sites\/8\/2023\/02\/img_63f45bb2ef824.png\" \/>\n<meta name=\"twitter:label1\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/\",\"url\":\"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/\",\"name\":\"Exploring Programming Language Architecture in Perl - BooksOfAll Portuguese\",\"isPartOf\":{\"@id\":\"https:\/\/www.booksofall.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.booksofall.com\/pt\/wp-content\/uploads\/sites\/8\/2023\/02\/img_63f45bb2ef824.png\",\"datePublished\":\"2023-02-21T06:02:20+00:00\",\"dateModified\":\"2023-02-21T06:02:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/#primaryimage\",\"url\":\"https:\/\/www.booksofall.com\/pt\/wp-content\/uploads\/sites\/8\/2023\/02\/img_63f45bb2ef824.png\",\"contentUrl\":\"https:\/\/www.booksofall.com\/pt\/wp-content\/uploads\/sites\/8\/2023\/02\/img_63f45bb2ef824.png\",\"width\":\"558\",\"height\":\"739\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.booksofall.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Categories\",\"item\":\"https:\/\/www.booksofall.com\/pt\/categories\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Exploring Programming Language Architecture in Perl\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.booksofall.com\/pt\/#website\",\"url\":\"https:\/\/www.booksofall.com\/pt\/\",\"name\":\"BooksOfAll Portuguese\",\"description\":\"Biggest IT eBooks library and learning resources - Free eBooks for programming, computing, artificial intelligence and more.\",\"publisher\":{\"@id\":\"https:\/\/www.booksofall.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.booksofall.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.booksofall.com\/pt\/#organization\",\"name\":\"BooksOfAll Portuguese\",\"url\":\"https:\/\/www.booksofall.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/www.booksofall.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.booksofall.com\/pt\/wp-content\/uploads\/sites\/8\/2022\/06\/booksofall-logo-2.png\",\"contentUrl\":\"https:\/\/www.booksofall.com\/pt\/wp-content\/uploads\/sites\/8\/2022\/06\/booksofall-logo-2.png\",\"width\":166,\"height\":30,\"caption\":\"BooksOfAll Portuguese\"},\"image\":{\"@id\":\"https:\/\/www.booksofall.com\/pt\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Exploring Programming Language Architecture in Perl - BooksOfAll Portuguese","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/","og_locale":"pt_PT","og_type":"article","og_title":"Exploring Programming Language Architecture in Perl - BooksOfAll Portuguese","og_url":"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/","og_site_name":"BooksOfAll Portuguese","article_modified_time":"2023-02-21T06:02:57+00:00","og_image":[{"url":"https:\/\/www.booksofall.com\/pt\/wp-content\/uploads\/sites\/8\/2023\/02\/img_63f45bb2ef824.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_image":"https:\/\/www.booksofall.com\/pt\/wp-content\/uploads\/sites\/8\/2023\/02\/img_63f45bb2ef824.png","twitter_misc":{"Tempo estimado de leitura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/","url":"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/","name":"Exploring Programming Language Architecture in Perl - BooksOfAll Portuguese","isPartOf":{"@id":"https:\/\/www.booksofall.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/#primaryimage"},"image":{"@id":"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/#primaryimage"},"thumbnailUrl":"https:\/\/www.booksofall.com\/pt\/wp-content\/uploads\/sites\/8\/2023\/02\/img_63f45bb2ef824.png","datePublished":"2023-02-21T06:02:20+00:00","dateModified":"2023-02-21T06:02:57+00:00","breadcrumb":{"@id":"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/#primaryimage","url":"https:\/\/www.booksofall.com\/pt\/wp-content\/uploads\/sites\/8\/2023\/02\/img_63f45bb2ef824.png","contentUrl":"https:\/\/www.booksofall.com\/pt\/wp-content\/uploads\/sites\/8\/2023\/02\/img_63f45bb2ef824.png","width":"558","height":"739"},{"@type":"BreadcrumbList","@id":"https:\/\/www.booksofall.com\/pt\/exploring-programming-language-architecture-in-perl\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.booksofall.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Categories","item":"https:\/\/www.booksofall.com\/pt\/categories\/"},{"@type":"ListItem","position":3,"name":"Exploring Programming Language Architecture in Perl"}]},{"@type":"WebSite","@id":"https:\/\/www.booksofall.com\/pt\/#website","url":"https:\/\/www.booksofall.com\/pt\/","name":"BooksOfAll Portuguese","description":"Biggest IT eBooks library and learning resources - Free eBooks for programming, computing, artificial intelligence and more.","publisher":{"@id":"https:\/\/www.booksofall.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.booksofall.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/www.booksofall.com\/pt\/#organization","name":"BooksOfAll Portuguese","url":"https:\/\/www.booksofall.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.booksofall.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/www.booksofall.com\/pt\/wp-content\/uploads\/sites\/8\/2022\/06\/booksofall-logo-2.png","contentUrl":"https:\/\/www.booksofall.com\/pt\/wp-content\/uploads\/sites\/8\/2022\/06\/booksofall-logo-2.png","width":166,"height":30,"caption":"BooksOfAll Portuguese"},"image":{"@id":"https:\/\/www.booksofall.com\/pt\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.booksofall.com\/pt\/wp-json\/wp\/v2\/product\/21956","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.booksofall.com\/pt\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/www.booksofall.com\/pt\/wp-json\/wp\/v2\/types\/product"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.booksofall.com\/pt\/wp-json\/wp\/v2\/media\/21960"}],"wp:attachment":[{"href":"https:\/\/www.booksofall.com\/pt\/wp-json\/wp\/v2\/media?parent=21956"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/www.booksofall.com\/pt\/wp-json\/wp\/v2\/product_brand?post=21956"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/www.booksofall.com\/pt\/wp-json\/wp\/v2\/product_cat?post=21956"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/www.booksofall.com\/pt\/wp-json\/wp\/v2\/product_tag?post=21956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}