{"id":23090,"date":"2014-12-04T12:01:02","date_gmt":"2014-12-04T10:01:02","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=23090"},"modified":"2014-12-04T12:04:00","modified_gmt":"2014-12-04T10:04:00","slug":"quine-relay-an-uroboros-program-with-80-programming-languages","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2014\/12\/04\/quine-relay-an-uroboros-program-with-80-programming-languages\/","title":{"rendered":"quine-relay &#8211; an uroboros program with 80+ programming languages"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"https:\/\/github.com\/mame\/quine-relay\">quine-relay<\/a> &#8211; an uroboros program with 80+ programming languages.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/12\/quine-relay.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"23091\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2014\/12\/04\/quine-relay-an-uroboros-program-with-80-programming-languages\/quine-relay\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/12\/quine-relay.png?fit=512%2C512&amp;ssl=1\" data-orig-size=\"512,512\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"quine relay\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/12\/quine-relay.png?fit=512%2C512&amp;ssl=1\" class=\"aligncenter size-medium wp-image-23091\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/12\/quine-relay-500x500.png?resize=500%2C500&#038;ssl=1\" alt=\"quine relay\" width=\"500\" height=\"500\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/12\/quine-relay.png?resize=500%2C500&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/12\/quine-relay.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/12\/quine-relay.png?w=512&amp;ssl=1 512w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>If you didn&#8217;t get it, here&#8217;s a better description:<\/p>\n<blockquote><p>This is a Ruby program that generates Scala program that generates Scheme program that generates &#8230;(through 80 languages in total)&#8230; REXX program that generates the original Ruby code again.<\/p><\/blockquote>\n<p>Insanity at\u00a0its best!<\/p>\n<p>P.S.: <a href=\"http:\/\/en.wikipedia.org\/wiki\/Quine_%28computing%29\">Quine (computing)<\/a> Wikipedia page comes handy:<\/p>\n<blockquote><p>A <b>quine<\/b> is a non-empty computer program which takes no input and produces a copy of its own source code as its only output. The standard terms for these programs in the computability theory and computer science literature are &#8220;self-replicating programs&#8221;, &#8220;self-reproducing programs&#8221;, and &#8220;self-copying programs&#8221;.<\/p><\/blockquote>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>quine-relay &#8211; an uroboros program with 80+ programming languages. If you didn&#8217;t get it, here&#8217;s a better description: This is a Ruby program that generates Scala program that generates Scheme program that generates &#8230;(through 80 languages in total)&#8230; REXX program that generates the original Ruby code again. Insanity at\u00a0its best! P.S.: Quine (computing) Wikipedia page &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2014\/12\/04\/quine-relay-an-uroboros-program-with-80-programming-languages\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">quine-relay &#8211; an uroboros program with 80+ programming languages<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"quine-relay - an uroboros program with 80+ #programming languages","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,18,62],"tags":[1228,2418,1330],"keyring_services":[],"class_list":["post-23090","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","tag-geek-culture","tag-humor","tag-web-development"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":24905,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/10\/29\/27-languages-to-improve-your-python\/","url_meta":{"origin":23090,"position":0},"title":"27 languages to improve your Python","author":"Leonid Mamchenkov","date":"October 29, 2015","format":false,"excerpt":"Nick Coghlan writes: One of the things we do as part of the Python core development process is to look at features we appreciate having available in other languages we have experience with, and see whether or not there is a way to adapt them to be useful in making\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":15107,"url":"https:\/\/mamchenkov.net\/wordpress\/2011\/06\/12\/on-teaching-programming-languages\/","url_meta":{"origin":23090,"position":1},"title":"On teaching programming languages","author":"Leonid Mamchenkov","date":"June 12, 2011","format":false,"excerpt":"Via this tweet I came across this insightful comment over at Slashdot. \u00a0Quoting in its\u00a0entirety: A bit off topic, but you triggered something I've been thinking about for a couple of years. That \"spark\" is fluency. I swtiched jobs from being a computer programmer to being an ESL teacher in\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11416,"url":"https:\/\/mamchenkov.net\/wordpress\/2008\/11\/03\/on-software-testing\/","url_meta":{"origin":23090,"position":2},"title":"On software testing","author":"Leonid Mamchenkov","date":"November 3, 2008","format":false,"excerpt":"The software is checked very carefully in a bottom-up fashion. First, each new line of code is checked, then sections of code or modules with special functions are verified. The scope is increased step by step until the new changes are incorporated into a complete system and checked. This complete\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":18680,"url":"https:\/\/mamchenkov.net\/wordpress\/2013\/10\/16\/usage-of-server-side-programming-languages-for-websites\/","url_meta":{"origin":23090,"position":3},"title":"Usage of server-side programming languages for websites","author":"Leonid Mamchenkov","date":"October 16, 2013","format":"link","excerpt":"Usage of server-side programming languages for websites","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"server side programming languages stats","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2013\/10\/server-side-programming-languages-stats-500x256.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":24116,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/05\/15\/github-markdown-syntax-highlighting\/","url_meta":{"origin":23090,"position":4},"title":"GitHub markdown syntax highlighting","author":"Leonid Mamchenkov","date":"May 15, 2015","format":false,"excerpt":"Somehow, I missed this and haven't used it until yesterday - GitHub markdown syntax highlighting: Code blocks can be taken a step further by adding syntax highlighting. In your fenced block, add an optional language identifier and we'll run it through syntax highlighting. For example, to syntax highlight Ruby code:\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":22258,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/25\/transit-format-and-libraries-for-passing-values-between-programs-written-in-different-languages\/","url_meta":{"origin":23090,"position":5},"title":"Transit &#8211; format and libraries for passing values between programs written in different languages","author":"Leonid Mamchenkov","date":"July 25, 2014","format":"link","excerpt":"Transit: Transit is a format and set of libraries for conveying values between applications written in different programming languages. This spec describes Transit in order to facilitate its implementation in a wide range of languages.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/23090","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=23090"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/23090\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=23090"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=23090"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=23090"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=23090"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}