Project Description
There are three main portions to this project: a library to represent Parrot bytecode (PBC) as a set of classes and compile them to a file, an assembly language that uses that library, and a disassembler that produces the new assembly language. The assembler and disassembler act as proof of concepts for the library, but should be useful tools instead of just toys.
The library should have classes that represent a packfile, subs, and instructions (opcode and arguments). These classes should be used as the model that the library can convert to and from normal PBC files. This provides a far more friendly interface than the standard Packfile PMCs.
The assembly language is intended to be a simple textual representation of bytecode. It mirrors the multiple segments of the packfile itself: a PMC constant section, a float constant section, then a bytecode section. The bytecode section will contain sub markers and labels so that programmers don't have to determine opcode counts themselves. In all