Designed Architecture and Implemented a Cm Assembler for Virtual Machines in Java
- Built to Be Cross Platform
- Compatible with Windows, MacOs, and Linux
- Focused on Software Processes
- Scrum w/ Bi Weekly Sprints/Releases
- TDD for Unit and Integration Testing
- Refactoring to Improve Architecture Based on PO's Advice
- CI/CD using Github
Assembly Unit -> LineStatement + EOF
LineStatement -> Label + Instruction + Comment + EOL
Label -> String
Instruction -> Mnemonic + Operand
Operand -> Label (String) or main.java.Offset (Binary)
Directive: .cstring (String)
Comment (;) If ; detected, ignore the rest of the line until you reach EOL character ("\n" | "\r" | "\r\n") Remove useless whitespace
Assembler ends when EOF is detected ()
Generate pgm.exe for target and complete listing file pgm.lst with label table
Running Tests:
- Compile Test File: javac TestX.java
- Run Test File and Redirect Output into .txt: java TestX > TestX.txt
- Run Unit Test Using AUnit: java aunit TestX.txt
Nicholas Kawwas
Nicholas Harris
Matthew Sklivas
Vincent Beaulieu
Philippe Lee
Karine Chatta
Georgia Bardaklis
Lina Tran
Malek Jerbi




