| CARVIEW |
|
maxwellassembler
|
| Summary | A Java based assembler framework |
|---|---|
| Categories | None |
| License | Berkeley Software Distribution (BSD) License |
| Owner(s) | dougxc, mathiske |
Message from the owner(s)
Project Maxwell Assembler System
The Project Maxwell Assembler System (PMAS) is a collection of Java 6 packages which implement several assemblers, disassemblers, automated testing for both and an extensible framework with generators for all of the above. The currently covered instruction set architectures (ISAs) are SPARC, PowerPC, AMD64 and IA32.
The full source code is available by CVS (preferrably directly into an IDE). The following sub-modules are provided in the repository:
- MaxwellBase
- a small general purpose library
- MaxwellAssembler
- the actual assembler framework, which builds on MaxwellBase
On how to create the necessary NetBeans project files, read these instructions. (Equivalent Eclipse projects come with the repository.)
Motivation
We would like to encourage and support more use of the Java language in compiler research and development.
While working on a compiler, we noticed what a big hinderence the lack of suitable assemblers is. To get ourselves and others over this hump, we created assemblers for the ISAs we are most interested in. While we were at it, we also created corresponding disassemblers.
The architecture of our system is largely based on the Klein assembler system, which has been developed in the Klein project. Its main idea is to generate assembler methods that are very well tested against existing textual assemblers.
Sun Contributor Agreement
Contributing to this project requires completing the Sun Contributor Agreement.
Participation
Some possible future features that come to mind:
- performance improvements
- more parametrization of related instructions
- new ISAs, e.g. ARM
- disassemblers as generated source code
- data areas and alignment
- object file output
If you desire to contribute, please contact us by e-mail and let us know about your plans.
These prerequisites will be handy:- Java 5 experience and solid understanding of all new language features
- Appreciation for IDEs
- Some familiarity with assembly language
- Assembler reference manuals for the ISAs you are interested in
- JDK 1.6
- Familiarity with JUnit
You may also want to try FindBugs. Unfortunately, the FindBugs authors do not directly support the plugin for the NetBeans IDE, but for now it can be found here. The provided Eclipse IDE projects come with appropriate settings preconfigured for the FindBugs Eclipse plugin. However, since FindBugs naturally issues many false positive warnings, it is switched off by default.
Documentation
A paper describing the Project Maxwell Assembler System and how to use it has been presented at the International Conference on Principles and Practices of Programming in Java (PPPJ 2006). It is downloadable as PDF from the ACM Digital Library.
When reading comments in the source code always start with the files named "package-info.java". These contain an overview of what can be found in their package. Then proceed to the class comments.
Of course, you can also run JavaDoc over the source code. We recommend this in particular before engaging in programming against many different assembler methods.
| Powered by CollabNet | Feedback |
FAQ |
Press |
Developer tools
© 1995 - 2007 CollabNet. CollabNet is a registered trademark of CollabNet, Inc. |
