Team LiB   Previous Section   Next Section

Chapter 6. Parrot Assembly Language

Owner: Sorry squire, I've had a look 'round the back of the shop, and uh, we're right out of parrots.

Customer: I see. I see, I get the picture.

Owner: <pause> I got a slug.

—Monty Python's Flying Circus, "Parrot Sketch"

Parrot assembly (PASM) is an assembly language written for Parrot's virtual CPU. PASM has an interesting mix of features. Because it's an assembly language, it has many low-level features, such as flow control based on branches and jumps, and direct manipulation of values on the software registers and stacks. Basic register operations or branches are generally a single CPU instruction.[1] On the other hand, because it's designed to implement dynamic high-level languages, it has support for many advanced features, such as lexical and global variables, objects, garbage collection, continuations, coroutines, and much more.

[1] This means the JIT runtime has a performance of one PASM instruction per processor cycle.

    Team LiB   Previous Section   Next Section