<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Parrot_virtual_machine</id>
	<title>Parrot virtual machine - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Parrot_virtual_machine"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Parrot_virtual_machine&amp;action=history"/>
	<updated>2026-05-07T15:37:55Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Parrot_virtual_machine&amp;diff=4342196&amp;oldid=prev</id>
		<title>imported&gt;Clintp: /* Implementations */ Adding a BASIC implementation</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Parrot_virtual_machine&amp;diff=4342196&amp;oldid=prev"/>
		<updated>2025-12-14T14:51:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Implementations: &lt;/span&gt; Adding a BASIC implementation&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Previous revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:51, 14 December 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l39&quot;&gt;Line 39:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 39:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==History==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==History==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The name &#039;&#039;Parrot&#039;&#039; came from an [[April Fool&#039;s]] joke which announced a hypothetical language, named &#039;&#039;Parrot&#039;&#039;, that would unify [[Python (programming language)|Python]] and [[Perl]].&amp;lt;ref&amp;gt;{{cite web|url=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http&lt;/del&gt;://www.oreilly.com/news/parrotstory_0401.html |title=The Story Behind the Parrot Prank - O&#039;Reilly Media |publisher=Oreilly.com |date=2001-04-06 |access-date=2014-02-25}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web |url=http://www.perl.com/pub/a/2001/04/01/parrot.htm |title=Programming Parrot |publisher=Perl.com |access-date=2014-02-25 |url-status=dead |archive-url=https://web.archive.org/web/20100718195724/http://www.perl.com/pub/a/2001/04/01/parrot.htm |archive-date=2010-07-18 }}&amp;lt;/ref&amp;gt; The name was later adopted by the Parrot project (initially a part of the Raku development effort) which aimed to support Raku, Python, and other programming languages.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The name &#039;&#039;Parrot&#039;&#039; came from an [[April Fool&#039;s]] joke which announced a hypothetical language, named &#039;&#039;Parrot&#039;&#039;, that would unify [[Python (programming language)|Python]] and [[Perl]].&amp;lt;ref&amp;gt;{{cite web|url=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https&lt;/ins&gt;://www.oreilly.com/news/parrotstory_0401.html |title=The Story Behind the Parrot Prank - O&#039;Reilly Media |publisher=Oreilly.com |date=2001-04-06 |access-date=2014-02-25}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web |url=http://www.perl.com/pub/a/2001/04/01/parrot.htm |title=Programming Parrot |publisher=Perl.com |access-date=2014-02-25 |url-status=dead |archive-url=https://web.archive.org/web/20100718195724/http://www.perl.com/pub/a/2001/04/01/parrot.htm |archive-date=2010-07-18 }}&amp;lt;/ref&amp;gt; The name was later adopted by the Parrot project (initially a part of the Raku development effort) which aimed to support Raku, Python, and other programming languages.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The Parrot Foundation was dissolved in 2014.&amp;lt;ref&amp;gt;{{Cite web|title=Corporations Advanced Search|url=https://ccfs.sos.wa.gov/|access-date=2021-04-09|website=Washington State Department of Licensing|id=UBI 602 839 536}}&amp;lt;/ref&amp;gt; The Foundation was created in 2008 to hold the [[copyright]] and [[trademark]]s of the Parrot project, to help drive development of [[Programming language implementation|language implementations]] and the core codebase, to provide a base for growing the Parrot community, and to reach out to other language communities.&amp;lt;ref&amp;gt;[http://www.parrotblog.org/2008/06/announcing-parrot-foundation.html Announcing the Parrot Foundation] {{webarchive |url=https://web.archive.org/web/20080629020838/http://www.parrotblog.org/2008/06/announcing-parrot-foundation.html |date=June 29, 2008 }}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The Parrot Foundation was dissolved in 2014.&amp;lt;ref&amp;gt;{{Cite web|title=Corporations Advanced Search|url=https://ccfs.sos.wa.gov/|access-date=2021-04-09|website=Washington State Department of Licensing|id=UBI 602 839 536}}&amp;lt;/ref&amp;gt; The Foundation was created in 2008 to hold the [[copyright]] and [[trademark]]s of the Parrot project, to help drive development of [[Programming language implementation|language implementations]] and the core codebase, to provide a base for growing the Parrot community, and to reach out to other language communities.&amp;lt;ref&amp;gt;[http://www.parrotblog.org/2008/06/announcing-parrot-foundation.html Announcing the Parrot Foundation] {{webarchive |url=https://web.archive.org/web/20080629020838/http://www.parrotblog.org/2008/06/announcing-parrot-foundation.html |date=June 29, 2008 }}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l64&quot;&gt;Line 64:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 64:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Implementations===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Implementations===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The most complete language implementations targeting the Parrot VM were [[Raku (programming language)|Raku]] (known at the time as Rakudo Perl 6), [[Lua (programming language)|Lua]] and [[Winxed (programming language)|Winxed]].&amp;lt;ref&amp;gt;{{cite web|url=http://www.parrot.org/languages|title=Languages - Parrot VM |publisher=parrot.org |access-date=2023-11-18}}&amp;lt;/ref&amp;gt; Projects to implement many other languages were started, including [[PHP]], [[Python (programming language)|Python]], and [[Ruby (programming language)|Ruby]]; along with esoteric and demonstration languages such as [[Befunge]] and the &quot;[[Wikibooks:Parrot Virtual Machine/Squaak Tutorial|squaak]]&quot; tutorial language.&amp;lt;ref&amp;gt;{{cite web |url=https://trac.parrot.org/parrot/wiki/Languages |title=Languages – Parrot |publisher=Parrot development wiki |access-date=2023-11-18 |archive-date=2010-06-04 |archive-url=https://web.archive.org/web/20100604013644/http://trac.parrot.org/parrot/wiki/Languages |url-status=dead }}&amp;lt;/ref&amp;gt; None of these projects were successful in becoming the primary implementation of their respective languages.&amp;lt;ref name=&quot;inactive-parrot&quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The most complete language implementations targeting the Parrot VM were [[Raku (programming language)|Raku]] (known at the time as Rakudo Perl 6), [[Lua (programming language)|Lua]] and [[Winxed (programming language)|Winxed]].&amp;lt;ref&amp;gt;{{cite web|url=http://www.parrot.org/languages|title=Languages - Parrot VM |publisher=parrot.org |access-date=2023-11-18}}&amp;lt;/ref&amp;gt; Projects to implement many other languages were started, including &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[BASIC]]&amp;lt;ref&amp;gt;{{cite web|url=https://www.nntp.perl.org/group/perl.perl6.internals/2002/03/msg9143.html|title=BASIC for Parrot|publisher=perl.org|access-date=2025-12-14}}&amp;lt;/ref&amp;gt;, &lt;/ins&gt;[[PHP]], [[Python (programming language)|Python]], and [[Ruby (programming language)|Ruby]]; along with esoteric and demonstration languages such as [[Befunge]] and the &quot;[[Wikibooks:Parrot Virtual Machine/Squaak Tutorial|squaak]]&quot; tutorial language.&amp;lt;ref&amp;gt;{{cite web |url=https://trac.parrot.org/parrot/wiki/Languages |title=Languages – Parrot |publisher=Parrot development wiki |access-date=2023-11-18 |archive-date=2010-06-04 |archive-url=https://web.archive.org/web/20100604013644/http://trac.parrot.org/parrot/wiki/Languages |url-status=dead }}&amp;lt;/ref&amp;gt; None of these projects were successful in becoming the primary implementation of their respective languages.&amp;lt;ref name=&quot;inactive-parrot&quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Internals==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Internals==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l134&quot;&gt;Line 134:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 134:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*For mod_parrot:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*For mod_parrot:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** {{cite web | url = http://www.parrot.org/mod_parrot | title = Mod_parrot website | work = parrot.org | publisher = Jeff Horwitz | access-date = 2023-08-18 }}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** {{cite web | url = http://www.parrot.org/mod_parrot | title = Mod_parrot website | work = parrot.org | publisher = Jeff Horwitz | access-date = 2023-08-18 }}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** {{cite web | url = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http&lt;/del&gt;://www.perl.com/pub/a/2004/12/22/mod_parrot.html | title = Introducing mod_parrot | first = Jeff | last = Horwitz | authorlink = Jeff Horwitz | date = December 22, 2004 | work = perl.com | publisher = [[O&#039;Reilly Media]] }}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** {{cite web | url = &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https&lt;/ins&gt;://www.perl.com/pub/a/2004/12/22/mod_parrot.html | title = Introducing mod_parrot | first = Jeff | last = Horwitz | authorlink = Jeff Horwitz | date = December 22, 2004 | work = perl.com | publisher = [[O&#039;Reilly Media]] }}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** {{cite web| url = http://perlcast.com/2008/06/03/jeff-horwitz-on-mod_parrot/| title = Jeff Horwitz on mod_parrot| accessdate = 2008-06-09| author = Josh McAdams| date = June 3, 2008| work = Perlcast| publisher = Perlcast.com| archive-url = https://web.archive.org/web/20080907074501/http://perlcast.com/2008/06/03/jeff-horwitz-on-mod_parrot/| archive-date = 2008-09-07| url-status=dead}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** {{cite web| url = http://perlcast.com/2008/06/03/jeff-horwitz-on-mod_parrot/| title = Jeff Horwitz on mod_parrot| accessdate = 2008-06-09| author = Josh McAdams| date = June 3, 2008| work = Perlcast| publisher = Perlcast.com| archive-url = https://web.archive.org/web/20080907074501/http://perlcast.com/2008/06/03/jeff-horwitz-on-mod_parrot/| archive-date = 2008-09-07| url-status=dead}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l140&quot;&gt;Line 140:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 140:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Cross-platform software]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Cross-platform software]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Discontinued software]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Free and open source interpreters]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Free and open source interpreters]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Free software programmed in C]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Free software programmed in C]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l145&quot;&gt;Line 145:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 146:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Register-based virtual machines]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Register-based virtual machines]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Software using the Artistic license]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Software using the Artistic license]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Discontinued software]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Clintp</name></author>
	</entry>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Parrot_virtual_machine&amp;diff=3199999&amp;oldid=prev</id>
		<title>imported&gt;Frap: /* Examples */</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Parrot_virtual_machine&amp;diff=3199999&amp;oldid=prev"/>
		<updated>2025-09-26T18:37:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Examples&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Previous revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:37, 26 September 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l45&quot;&gt;Line 45:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 45:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Historical design decisions are documented in the form of Parrot Design Documents, or PDDs, in the Parrot repository.&amp;lt;ref&amp;gt;{{cite web|url=http://docs.parrot.org/parrot/latest/html/pdds.html |title=Parrot 6.1.0 - Parrot Design Documents (PDDs) |publisher=Docs.parrot.org |access-date=2014-02-25}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Historical design decisions are documented in the form of Parrot Design Documents, or PDDs, in the Parrot repository.&amp;lt;ref&amp;gt;{{cite web|url=http://docs.parrot.org/parrot/latest/html/pdds.html |title=Parrot 6.1.0 - Parrot Design Documents (PDDs) |publisher=Docs.parrot.org |access-date=2014-02-25}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Until late 2005, [[Dan Sugalski]] was the lead designer and chief architect of Parrot.  [[Chip Salzenberg]], a longtime Perl, Linux kernel, and C++ hacker, took over until mid-2006, when he became the lead developer. [[Allison Randal]], the lead developer of [[Punie]] and chief architect of Parrot&#039;s compiler tools, was the chief architect until mid-October 2010 when she stepped down and chose Christoph Otto as the new chief architect.&amp;lt;ref&amp;gt;{{cite web|last=Otto |first=Christoph |url=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http&lt;/del&gt;://reparrot.blogspot.com/2010/10/parrot-has-new-architect-what-now.html |title=reparrot: Parrot has a new architect. What now? |publisher=Reparrot.blogspot.com |date=2010-10-21 |access-date=2014-02-25}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Until late 2005, [[Dan Sugalski]] was the lead designer and chief architect of Parrot.  [[Chip Salzenberg]], a longtime Perl, Linux kernel, and C++ hacker, took over until mid-2006, when he became the lead developer. [[Allison Randal]], the lead developer of [[Punie]] and chief architect of Parrot&#039;s compiler tools, was the chief architect until mid-October 2010 when she stepped down and chose Christoph Otto as the new chief architect.&amp;lt;ref&amp;gt;{{cite web|last=Otto |first=Christoph |url=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https&lt;/ins&gt;://reparrot.blogspot.com/2010/10/parrot-has-new-architect-what-now.html |title=reparrot: Parrot has a new architect. What now? |publisher=Reparrot.blogspot.com |date=2010-10-21 |access-date=2014-02-25}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Languages==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Languages==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l64&quot;&gt;Line 64:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 64:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Implementations===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Implementations===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The most complete language implementations targeting the Parrot VM were Raku (known at the time as Rakudo Perl 6), [[Lua (programming language)|Lua]] and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a new &lt;/del&gt;language &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;called &quot;&lt;/del&gt;Winxed&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;&lt;/del&gt;.&amp;lt;ref&amp;gt;{{cite web|url=http://www.parrot.org/languages|title=Languages - Parrot VM |publisher=parrot.org |access-date=2023-11-18}}&amp;lt;/ref&amp;gt; Projects to implement many other languages were started, including [[PHP]], [[Python (programming language)|Python]], and [[Ruby (programming language)|Ruby]]; along with esoteric and demonstration languages such as [[Befunge]] and the &quot;[[Wikibooks:Parrot Virtual Machine/Squaak Tutorial|squaak]]&quot; tutorial language.&amp;lt;ref&amp;gt;{{cite web|url=https://trac.parrot.org/parrot/wiki/Languages |title=Languages – Parrot |publisher=Parrot development wiki |access-date=2023-11-18}}&amp;lt;/ref&amp;gt; None of these projects were successful in becoming the primary implementation of their respective languages.&amp;lt;ref name=&quot;inactive-parrot&quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The most complete language implementations targeting the Parrot VM were &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Raku (programming language)|&lt;/ins&gt;Raku&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;(known at the time as Rakudo Perl 6), [[Lua (programming language)|Lua]] and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Winxed (programming &lt;/ins&gt;language&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)|&lt;/ins&gt;Winxed&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;.&amp;lt;ref&amp;gt;{{cite web|url=http://www.parrot.org/languages|title=Languages - Parrot VM |publisher=parrot.org |access-date=2023-11-18}}&amp;lt;/ref&amp;gt; Projects to implement many other languages were started, including [[PHP]], [[Python (programming language)|Python]], and [[Ruby (programming language)|Ruby]]; along with esoteric and demonstration languages such as [[Befunge]] and the &quot;[[Wikibooks:Parrot Virtual Machine/Squaak Tutorial|squaak]]&quot; tutorial language.&amp;lt;ref&amp;gt;{{cite web |url=https://trac.parrot.org/parrot/wiki/Languages |title=Languages – Parrot |publisher=Parrot development wiki |access-date=2023-11-18 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|archive-date=2010-06-04 |archive-url=https://web.archive.org/web/20100604013644/http://trac.parrot.org/parrot/wiki/Languages |url-status=dead &lt;/ins&gt;}}&amp;lt;/ref&amp;gt; None of these projects were successful in becoming the primary implementation of their respective languages.&amp;lt;ref name=&quot;inactive-parrot&quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Internals==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Internals==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l100&quot;&gt;Line 100:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 100:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In PIR&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In PIR&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;perl6&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;raku&lt;/ins&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  .sub &amp;#039;main&amp;#039; :main&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  .sub &amp;#039;main&amp;#039; :main&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     $I1 = 4&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     $I1 = 4&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Frap</name></author>
	</entry>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Parrot_virtual_machine&amp;diff=40688&amp;oldid=prev</id>
		<title>imported&gt;JJuran: /* Static and dynamic languages */ Don&#039;t imply that JVM is for .NET</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Parrot_virtual_machine&amp;diff=40688&amp;oldid=prev"/>
		<updated>2025-04-13T01:53:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Static and dynamic languages: &lt;/span&gt; Don&amp;#039;t imply that JVM is for .NET&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Update|date=August 2022}}&lt;br /&gt;
{{Short description|Software to run programming languages}}&lt;br /&gt;
{{Infobox software&lt;br /&gt;
| name = Parrot virtual machine&lt;br /&gt;
| logo = Parrot Foundation logo.png&lt;br /&gt;
| logo size = 220px&lt;br /&gt;
| logo alt = Parrot Foundation logo&lt;br /&gt;
| developer = &lt;br /&gt;
| latest release version = 8.1.0&lt;br /&gt;
| latest release date = {{Start date and age|2016|02|16}}&amp;lt;ref name=&amp;quot;Release Note&amp;quot;&amp;gt;{{cite web&lt;br /&gt;
  | url = http://www.parrot.org/news/2016/Parrot-8.1.0&lt;br /&gt;
  | title = New supported release 8.1.0 &amp;quot;Andean Parakeet&amp;quot;&lt;br /&gt;
  | publisher = Parrot Foundation&lt;br /&gt;
  | date = 2016-02-16 | access-date = 2016-09-26&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
| discontinued = yes&lt;br /&gt;
| replaced_by = [[MoarVM]] (for Raku)&lt;br /&gt;
| operating system = [[Cross-platform]]&lt;br /&gt;
| programming language = [[C (programming language)|C]]&lt;br /&gt;
| genre = [[Virtual machine]]&lt;br /&gt;
| license = [[Artistic License]] 2.0&lt;br /&gt;
| website = {{official URL}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Parrot&amp;#039;&amp;#039;&amp;#039; is a discontinued [[register machine|register-based]] [[process virtual machine]] designed to run [[dynamic language]]s efficiently. It is possible to compile [[Parrot assembly language]] and [[Parrot intermediate representation]] (PIR, an intermediate language) to Parrot [[bytecode]] and execute it. Parrot is [[free software|free]] and [[Open-source software|open-source]] software.&amp;lt;ref name=&amp;quot;opensource&amp;quot;&amp;gt;{{cite web|url=http://www.parrot.org/files/parrot_cla.pdf|title=Parrot Contributor License Agreement 1.0|publisher=Parrot Foundation|access-date=2009-03-18|archive-date=2010-08-16|archive-url=https://web.archive.org/web/20100816130045/http://www.parrot.org/files/parrot_cla.pdf|url-status=dead}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parrot was started by the [[Perl]] community and developed with help from the [[free software community|open-source and free software communities]]. As a result, it was focused on [[license compatibility]] with Perl ([[Artistic License|Artistic License 2.0]]), platform compatibility across a broad array of systems, processor architecture compatibility across most modern processors, speed of execution, small size (around 700k depending on platform), and the flexibility to handle the varying demands made by [[Raku (programming language)|Raku]] and other modern [[dynamic language]]s.&lt;br /&gt;
&lt;br /&gt;
Version 1.0, with a stable [[application programming interface]] (API) for development, was released on March 17, 2009.&amp;lt;ref name=&amp;quot;version1&amp;quot;&amp;gt;{{cite web&lt;br /&gt;
  | url = https://trac.parrot.org/parrot/report/14&lt;br /&gt;
  | title = Parrot Roadmap&lt;br /&gt;
  | publisher = Parrot Foundation&lt;br /&gt;
  | date = 2008-11-20&lt;br /&gt;
  | access-date = 2008-11-20&lt;br /&gt;
  | archive-date = 2010-04-15&lt;br /&gt;
  | archive-url = https://web.archive.org/web/20100415195108/http://trac.parrot.org/parrot/report/14&lt;br /&gt;
  | url-status = dead&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; The last version is release 8.1.0 &amp;quot;Andean Parakeet&amp;quot;.&amp;lt;ref name=&amp;quot;Release Note&amp;quot; /&amp;gt; Parrot was officially discontinued in August 2021, after being supplanted by [[MoarVM]] in its main use (Raku) and never becoming a mainstream VM for any of its other supported languages.&amp;lt;ref name=&amp;quot;inactive-parrot&amp;quot;&amp;gt;{{cite web |title=Inactive Parrot {{!}} Parrot VM |url=http://www.parrot.org/news/inactive-parrot |website=www.parrot.org}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The name &amp;#039;&amp;#039;Parrot&amp;#039;&amp;#039; came from an [[April Fool&amp;#039;s]] joke which announced a hypothetical language, named &amp;#039;&amp;#039;Parrot&amp;#039;&amp;#039;, that would unify [[Python (programming language)|Python]] and [[Perl]].&amp;lt;ref&amp;gt;{{cite web|url=http://www.oreilly.com/news/parrotstory_0401.html |title=The Story Behind the Parrot Prank - O&amp;#039;Reilly Media |publisher=Oreilly.com |date=2001-04-06 |access-date=2014-02-25}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web |url=http://www.perl.com/pub/a/2001/04/01/parrot.htm |title=Programming Parrot |publisher=Perl.com |access-date=2014-02-25 |url-status=dead |archive-url=https://web.archive.org/web/20100718195724/http://www.perl.com/pub/a/2001/04/01/parrot.htm |archive-date=2010-07-18 }}&amp;lt;/ref&amp;gt; The name was later adopted by the Parrot project (initially a part of the Raku development effort) which aimed to support Raku, Python, and other programming languages.&lt;br /&gt;
&lt;br /&gt;
The Parrot Foundation was dissolved in 2014.&amp;lt;ref&amp;gt;{{Cite web|title=Corporations Advanced Search|url=https://ccfs.sos.wa.gov/|access-date=2021-04-09|website=Washington State Department of Licensing|id=UBI 602 839 536}}&amp;lt;/ref&amp;gt; The Foundation was created in 2008 to hold the [[copyright]] and [[trademark]]s of the Parrot project, to help drive development of [[Programming language implementation|language implementations]] and the core codebase, to provide a base for growing the Parrot community, and to reach out to other language communities.&amp;lt;ref&amp;gt;[http://www.parrotblog.org/2008/06/announcing-parrot-foundation.html Announcing the Parrot Foundation] {{webarchive |url=https://web.archive.org/web/20080629020838/http://www.parrotblog.org/2008/06/announcing-parrot-foundation.html |date=June 29, 2008 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Historical design decisions are documented in the form of Parrot Design Documents, or PDDs, in the Parrot repository.&amp;lt;ref&amp;gt;{{cite web|url=http://docs.parrot.org/parrot/latest/html/pdds.html |title=Parrot 6.1.0 - Parrot Design Documents (PDDs) |publisher=Docs.parrot.org |access-date=2014-02-25}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Until late 2005, [[Dan Sugalski]] was the lead designer and chief architect of Parrot.  [[Chip Salzenberg]], a longtime Perl, Linux kernel, and C++ hacker, took over until mid-2006, when he became the lead developer. [[Allison Randal]], the lead developer of [[Punie]] and chief architect of Parrot&amp;#039;s compiler tools, was the chief architect until mid-October 2010 when she stepped down and chose Christoph Otto as the new chief architect.&amp;lt;ref&amp;gt;{{cite web|last=Otto |first=Christoph |url=http://reparrot.blogspot.com/2010/10/parrot-has-new-architect-what-now.html |title=reparrot: Parrot has a new architect. What now? |publisher=Reparrot.blogspot.com |date=2010-10-21 |access-date=2014-02-25}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Languages==&lt;br /&gt;
The goal of the Parrot virtual machine was to host client languages and allow inter-operation between them. Several hurdles exist in accomplishing this goal, in particular the difficulty of mapping high-level concepts, data, and [[data structure]]s between languages.&lt;br /&gt;
&lt;br /&gt;
===Static and dynamic languages===&lt;br /&gt;
The differing properties of [[Type checking|statically and dynamically typed]] languages motivated the design of Parrot. Current popular virtual machines such as the [[Java virtual machine]] and the [[Common Language Runtime]] (for the [[.NET]] platform) have been designed for statically typed languages, while the languages targeted by Parrot are dynamically typed.&lt;br /&gt;
&lt;br /&gt;
Virtual machines such as the Java virtual machine and the current Perl 5 virtual machine are also [[Stack machine|stack-based]]. Parrot developers chose a register-based design, reasoning that it more closely resembles a hardware design, allowing the vast literature on [[compiler optimization]] to be used in generating bytecode for the Parrot virtual machine that could run at speeds closer to [[machine code]].{{cn|date=November 2023}} Other register-based virtual machines inspired parts of Parrot&amp;#039;s design, including [[LLVM]], the [[Lua (programming language)#Internals|Lua VM]] and Inferno&amp;#039;s [[Dis virtual machine|Dis]].&lt;br /&gt;
&lt;br /&gt;
==={{Anchor|PMC}}Functional concepts===&lt;br /&gt;
Parrot has rich support for several features of [[functional programming]] including [[Closure (computer science)|closures]] and [[continuation]]s, both of which can be particularly difficult to implement correctly and portably, especially in conjunction with [[exception handling]] and [[thread (computer science)|threading]]. The biggest advantage is the dynamic extendability of objects with methods, which allows for &amp;#039;&amp;#039;polymorphic containers&amp;#039;&amp;#039; (PMCs) and associated [[opcode]]s. Implementing solutions to these problems at the virtual machine level obviates the need to solve them in the individual client languages.&lt;br /&gt;
&lt;br /&gt;
===Compiler tools===&lt;br /&gt;
{{Main|Parser Grammar Engine}} &amp;lt;!-- note: once [[Parrot compiler toolchain]] exists, that should be the main link --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parrot provides a suite of [[Parrot compiler toolchain|compiler-writing tools]]&amp;lt;ref&amp;gt;[http://docs.parrot.org/parrot/latest/html/docs/book/ch04_compiler_tools.pod.html] {{webarchive|url=https://web.archive.org/web/20090509161210/http://docs.parrot.org/parrot/latest/html/docs/book/ch04_compiler_tools.pod.html|date=May 9, 2009}}&amp;lt;/ref&amp;gt; which includes the [[Parser Grammar Engine]] (PGE), a hybrid parser-generator that can express a [[recursive descent parser]] as well as an [[operator-precedence parser]], allowing free transition between the two in a single grammar. The PGE feeds into the [[Tree Grammar Engine]] (TGE) which further transforms the parse-tree generated by PGE for optimization and ultimately for code generation.&lt;br /&gt;
&lt;br /&gt;
===Implementations===&lt;br /&gt;
The most complete language implementations targeting the Parrot VM were Raku (known at the time as Rakudo Perl 6), [[Lua (programming language)|Lua]] and a new language called &amp;quot;Winxed&amp;quot;.&amp;lt;ref&amp;gt;{{cite web|url=http://www.parrot.org/languages|title=Languages - Parrot VM |publisher=parrot.org |access-date=2023-11-18}}&amp;lt;/ref&amp;gt; Projects to implement many other languages were started, including [[PHP]], [[Python (programming language)|Python]], and [[Ruby (programming language)|Ruby]]; along with esoteric and demonstration languages such as [[Befunge]] and the &amp;quot;[[Wikibooks:Parrot Virtual Machine/Squaak Tutorial|squaak]]&amp;quot; tutorial language.&amp;lt;ref&amp;gt;{{cite web|url=https://trac.parrot.org/parrot/wiki/Languages |title=Languages – Parrot |publisher=Parrot development wiki |access-date=2023-11-18}}&amp;lt;/ref&amp;gt; None of these projects were successful in becoming the primary implementation of their respective languages.&amp;lt;ref name=&amp;quot;inactive-parrot&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Internals==&lt;br /&gt;
There are three forms of program code for Parrot:&lt;br /&gt;
*  &amp;#039;&amp;#039;[[Bytecode]]&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{Cite web |url=http://www.parrotcode.org/docs/parrotbyte.html |title=The Parrot Bytecode (PBC) Format - parrotcode |access-date=2009-07-15 |archive-date=2008-12-24 |archive-url=https://web.archive.org/web/20081224061126/http://www.parrotcode.org/docs/parrotbyte.html |url-status=dead }}&amp;lt;/ref&amp;gt; is binary and is natively interpreted by Parrot. Bytecode is usually stored in files with the [[filename extension]] &amp;quot;.pbc&amp;quot;.&lt;br /&gt;
* &amp;#039;&amp;#039;[[Parrot assembly language]]&amp;#039;&amp;#039; (PASM) is the low level language that [[Compiler|compile]]s down to bytecode. PASM code is usually stored in files with the filename extension &amp;quot;.pasm&amp;quot;.&lt;br /&gt;
* &amp;#039;&amp;#039;[[Parrot intermediate representation]]&amp;#039;&amp;#039; (PIR&amp;lt;ref&amp;gt;[http://docs.parrot.org/parrot/latest/html/docs/book/ch03_pir.pod.html] {{webarchive|url=https://web.archive.org/web/20090720034439/http://docs.parrot.org/parrot/latest/html/docs/book/ch03_pir.pod.html|date=July 20, 2009}}&amp;lt;/ref&amp;gt;) is a slightly higher level language than PASM and also compiles down to bytecode. It is the primary target of language implementations. PIR transparently manages Parrot&amp;#039;s inter-routine calling conventions, provides improved syntax, register allocation, and more. PIR code is usually stored in files with the filename extension &amp;quot;.pir&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
===Registers===&lt;br /&gt;
Parrot is register-based like most hardware [[Central processing unit|CPUs]], and unlike most virtual machines, which are stack-based. Parrot provides four types of registers:&lt;br /&gt;
&lt;br /&gt;
* I: native [[integer]] type&lt;br /&gt;
* N: [[floating-point arithmetic|floating-point]] numbers&lt;br /&gt;
* S: advanced [[String (computer science)|string]] registers with [[Unicode]] support&lt;br /&gt;
* P: PMC, or &amp;#039;&amp;#039;Polymorphic Container&amp;#039;&amp;#039; — Parrot object type&lt;br /&gt;
&lt;br /&gt;
Parrot provides an arbitrary number of registers; this number is fixed at compile time per subroutine.&lt;br /&gt;
&lt;br /&gt;
===Arithmetic operations===&lt;br /&gt;
In PASM&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
    set I1, 4&lt;br /&gt;
    inc I1        # I1 is now 5&lt;br /&gt;
    add I1, 2     # I1 is now 7&lt;br /&gt;
    set N1, 42.0&lt;br /&gt;
    dec N1        # N1 is now 41.0&lt;br /&gt;
    sub N1, 2.0   # N1 is now 39.0&lt;br /&gt;
    print I1&lt;br /&gt;
    print &amp;#039;, &amp;#039;&lt;br /&gt;
    print N1&lt;br /&gt;
    print &amp;quot;\n&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In PIR&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl6&amp;quot;&amp;gt;&lt;br /&gt;
 .sub &amp;#039;main&amp;#039; :main&lt;br /&gt;
    $I1 = 4&lt;br /&gt;
    inc $I1     # $I1 is now 5&lt;br /&gt;
    $I1 += 2    # $I1 is now 7&lt;br /&gt;
    $N1 = 42.0&lt;br /&gt;
    dec $N1     # $N1 is now 41.0&lt;br /&gt;
    $N1 -= 2.0  # $N1 now 39.0&lt;br /&gt;
    print $I1&lt;br /&gt;
    print &amp;#039;, &amp;#039;&lt;br /&gt;
    print $N1&lt;br /&gt;
    print &amp;quot;\n&amp;quot;&lt;br /&gt;
 .end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==mod_parrot==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;mod_parrot&amp;#039;&amp;#039;&amp;#039; is an optional module for the [[Apache HTTP Server|Apache web server]]. It embeds a Parrot virtual machine interpreter into the Apache server and provides access to the Apache API to allow handlers to be written in [[Parrot assembly language]], or any high-level language targeted to Parrot.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Portal|Free and open-source software}}&lt;br /&gt;
* [[MoarVM]]&lt;br /&gt;
* [[GraalVM]]&lt;br /&gt;
* [[Common Language Runtime]] (CLR)&lt;br /&gt;
* [[Comparison of application virtual machines]]&lt;br /&gt;
* [[Da Vinci Machine]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist|30em}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{official website|www.parrot.org}}&lt;br /&gt;
* [http://perl6.cz/wiki/Perl_6_and_Parrot_links Perl 6 and Parrot links]&lt;br /&gt;
*For mod_parrot:&lt;br /&gt;
** {{cite web | url = http://www.parrot.org/mod_parrot | title = Mod_parrot website | work = parrot.org | publisher = Jeff Horwitz | access-date = 2023-08-18 }}&lt;br /&gt;
** {{cite web | url = http://www.perl.com/pub/a/2004/12/22/mod_parrot.html | title = Introducing mod_parrot | first = Jeff | last = Horwitz | authorlink = Jeff Horwitz | date = December 22, 2004 | work = perl.com | publisher = [[O&amp;#039;Reilly Media]] }}&lt;br /&gt;
** {{cite web| url = http://perlcast.com/2008/06/03/jeff-horwitz-on-mod_parrot/| title = Jeff Horwitz on mod_parrot| accessdate = 2008-06-09| author = Josh McAdams| date = June 3, 2008| work = Perlcast| publisher = Perlcast.com| archive-url = https://web.archive.org/web/20080907074501/http://perlcast.com/2008/06/03/jeff-horwitz-on-mod_parrot/| archive-date = 2008-09-07| url-status=dead}}&lt;br /&gt;
&lt;br /&gt;
{{Perl}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Cross-platform software]]&lt;br /&gt;
[[Category:Free and open source interpreters]]&lt;br /&gt;
[[Category:Free software programmed in C]]&lt;br /&gt;
[[Category:Perl]]&lt;br /&gt;
[[Category:Register-based virtual machines]]&lt;br /&gt;
[[Category:Software using the Artistic license]]&lt;br /&gt;
[[Category:Discontinued software]]&lt;/div&gt;</summary>
		<author><name>imported&gt;JJuran</name></author>
	</entry>
</feed>