<commit_before>=pod

=head1 Parrot Intermediate Representation

Z<CHP-3>

X<Parrot Intermediate Representation;;(see PIR)>
X<PIR (Parrot intermediate representation)>

Parrot Intermediate Representation (PIR) is Parrot's native low-level
languageN<Parrot has a pure native assembly language called PASM, described in
Chapter 9.>. PIR is fundamentally an assembly language, but it has some
higher-level features such as operator syntax, syntactic sugar for subroutine
and method calls, automatic register allocation, and more friendly conditional
syntax.  PIR is commonly used to write Parrot libraries -- including some of
Parrot's compilers -- and is the target form when compiling high-level languages
to Parrot.

Even so, PIR is more rigid and "close to the machine" then some higher-level
languages like C. X<.pir files> Files containing PIR code use the F<.pir>
extension.

=head2 Basics

PIR has a relatively simple syntax. Every line is a comment, a label, a
statement, or a directive. Each statement or directive stands on its own line.
There is no end-of-line symbol (such as a semicolon in other languages).
<commit_msg>[book] Footnote markers fall after the period.<commit_after>=pod

=head1 Parrot Intermediate Representation

Z<CHP-3>

X<Parrot Intermediate Representation;;(see PIR)>
X<PIR (Parrot intermediate representation)>

Parrot Intermediate Representation (PIR) is Parrot's native low-level
language.N<Parrot also has a pure native assembly language called PASM,
described in Chapter 9.> PIR is fundamentally an assembly language, but
it has some higher-level features such as operator syntax, syntactic
sugar for subroutine and method calls, automatic register allocation,
and more friendly conditional syntax.  PIR is commonly used to write
Parrot libraries -- including some of Parrot's compilers -- and is the
target form when compiling high-level languages to Parrot.

Even so, PIR is more rigid and "close to the machine" then some higher-level
languages like C. X<.pir files> Files containing PIR code use the F<.pir>
extension.

=head2 Basics

PIR has a relatively simple syntax. Every line is a comment, a label, a
statement, or a directive. Each statement or directive stands on its own line.
There is no end-of-line symbol (such as a semicolon in other languages).

{'fraction_non_alphanumeric': 0.05700609225413403, 'fraction_numerical': 0.0034812880765883376, 'mean_word_length': 4.879795396419437, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7020707', 'n_tokens_mistral': 635, 'n_tokens_neox': 605, 'n_words': 323}