★ wanayoo — archive 1999 https://maxwellassembler.dev.java.net/Nouvelle recherche | Portail wanayoo
Login | Register
My pages Projects Communities java.net

maxwellassembler
Project home

If you were registered and logged in, you could join this project.

Summary A Java based assembler framework
Categories None
License Berkeley Software Distribution (BSD) License
Owner(s) dougxc, mathiske

Message from the owner(s)

Version 1.0 is now available by CVS checkout.

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
We will soon make settings for a CheckStyle NetBeans plugin available in our provided NetBeans projects. The provided Eclipse IDE projects prescribe a large number of CheckStyle settings. Use these by installing a CheckStyle Eclipse plugin.

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.