Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 87 lines (56 sloc) 2.984 kb
8a66b8f @ayardley 'Updated 'parrot.github.com'
ayardley authored
1 # Copyright (C) 2001-2012, Parrot Foundation.
2
3 =head1 NAME
4
5 docs/faq.pod - Parrot FAQ
6
7 =head1 DESCRIPTION
8
9 This document is the main Parrot FAQ.
10
11 =head1 GENERAL QUESTIONS
12
13 =head2 What is Parrot?
14
15 Parrot is a virtual machine for dynamic languages such as PHP, Perl, Python,
16 Ruby, Scheme, Tcl, etc. It compiles and executes bytecode, but is also designed
17 to act as an interpreter.
18
19 =head2 Why did you call it "Parrot"?
20
21 The name "Parrot" started with Simon Cozens's April Fool's Joke
22 (L<http://www.perl.com/pub/a/2001/04/01/parrot.htm>) where Larry Wall and Guido
23 van Rossum announced the merger of the Perl and Python languages.
24
25 A year later, when we were looking for a name for our virtual machine that
26 could run both Perl and Python, it seemed like a perfect fit.
27
28 =head2 Is Parrot the same as Perl 6?
29
30 No. Perl 6 is just one of the languages that will run on Parrot. For
31 information about Perl 6 on Parrot (a.k.a Rakudo), see L<http://rakudo.org/>.
32
33 =head2 Can I use Parrot today?
34
35 Yes.
36
37 Although Parrot is currently still under development, Parrot has been usable for
38 a long time. The primary way to use Parrot is to write Parrot Intermediate
39 Representation (PIR), described in L<PDD19|docs/pdds/pdd19_pir.pod>.
40 PIR is a high-level assembly language. See the L<examples> directory.
41
42 =head2 When can I expect to use Parrot with a I<real> programming language?
43
44 While the languages that are shipped with our pre-release versions of
45 parrot are in varying states of development, many of them are quite
46 functional. See L<https://github.com/parrot/parrot/wiki/Languages>
47 for information about the various languages that are targeting parrot.
48
49 =head2 What language is Parrot written in?
50
51 While much of the build system currently uses perl 5.8.0, the parrot
52 runtime is C89.
53
54 =head2 Why register-based and not stack-based?
55
56 Stack-based virtual machines and interpreters (JVM, .NET, Perl5, etc) are
57 both common and successful. However, register-based implementations give
58 us a number of benefits: Less code needed to manipulate the stack
59 frequently, access to decades of optimization for register-based hardware,
60 and a minimization of stack overflow security problems. For many
61 programmers, our register architecture just I<feels> more normal than
62 doing everything on a stack too.
63
64 =head2 Why aren't you using external tool or library I<X>?
65
66 The most common issues are:
67
68 =over 4
69
70 =item License compatibility
71
72 Parrot uses the Artistic License 2.0, which is compatible with
73 the GNU GPL. This means you can combine Parrot with GPL'ed code.
74
75 =item Platform compatibility
76
77 Parrot has to work on most of Perl 5's platforms, as well as a few of its own.
78 Perl 5 runs on eighty platforms; Parrot must run on Unix, Windows, Mac OS (X
79 and Classic), VMS, Crays, Windows CE, and Palm OS, just to name a few. Among
80 its processor architectures will be x86, SPARC, Alpha, IA-64, ARM, and 68x00
81 (Palms and old Macs). If something doesn't work on all of these, we can't use
82 it in core Parrot.
83
84 =back
85
86 =cut
Something went wrong with that request. Please try again.