logo Hurry, Grab up to 30% discount on the entire course
Order Now logo

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Manning DaleResume writing
(5/5)

903 Answers

Hire Me
expert
Aarushi YadavEnglish
(5/5)

873 Answers

Hire Me
expert
Cole GrayyEconomics
(5/5)

592 Answers

Hire Me
expert
Umar AkbarScience
(/5)

600 Answers

Hire Me
C++ Programming

you will complete a variation of project 6 in the Nand2Tetris course the assembler will be written as two separate programs.

INSTRUCTIONS TO CANDIDATES
ANSWER ALL QUESTIONS

Assignment 2 Description

Assignment 2 - Writing an Assembler Weighting and Due Dates

Marks for this assignment contribute 10% of the overall course mark.

Marks for functionality will be awarded automatically by the web submission system.

Core Body of Knowledge (CBOK) Areas: abstraction, design, hardware and software, data and information, and programming.

Project Description

In this assignment you will complete a variation of project 6 in the Nand2Tetris course. A detailed description of Nand2Tetris Project 6 tailored to this course is shown below. In this assignment the assembler will be written as two separate programs. The executable program, parser, will read a Hack Assembly Language program from standard input and produce an abstract syntax tree on standard output. The executable program, translator, will read the abstract syntax tree from standard input and assemble a machine code representation of the original Hack Assembly Language program. The assembled code will be formatted as sixteen zeros or ones per line and it will be written to standard output. In addition to an assembler you will also write a program to dis- assemble machine code. The executable program, disassembler, will read a Hack Machine

Code program from standard input and write an equivalent Hack Assembly Language program to standard output.

SVN Repository

You must create a directory in your svn repository named: //cs/assignment2.

This directory must only contain the following files and directories - the web submission system

(https://cs.adelaide.edu.au/services/websubmission) will check this:

 

Makefile - this file is used by make to compile your programs - do not modify this file. Makefile-extras - this file is included by Makefile - do not modify this file. parser.cpp - C++ source file

parser - executable script that will run your compiled parser program - do not modify this file.

translator.cpp - C++ source file

translator - executable script that will run your compiled translator program - do not modify this file.

disassembler.cpp - C++ source file

 

disassembler - executable script that will run your compiled disassembler program - do not modify this file.

bin - this directory contains precompiled programs and scripts - do not modify this directory.

lib - this directory contains precompiled components - do not modify this directory. includes - this directory contains .h files for precompiled classes - do not modify this directory.

tests - this directory contains test data, you can add your own tests here

 

Note: if the lib/macos/lib.a and lib/cats/lib.a files do not get added to your svn repository you will need to explicitly add them using

Submission and Marking Scheme

Submissions for this assignment must be made to the web submission system (https://cs.adelaide.edu.au/services/websubmission) assignment named: Assignment 2 - Submit Here. The assessment is based on "Assessment of Programming Assignments (https://myuni.adelaide.edu.au/courses/54310/pages/assessment-of-programming-assignments) ".

Note: the Submit Here assignment will show a breakdown of your marks by category but it will always show your total mark as capped at 0.

Your programs must be written in C++. Your programs will be compiled using the Makefile included in the zip file attached below. The parser program will be compiled using the file parser.cpp, the translator program will be compiled using the file translator.cpp file and the

disassembler program will be compiled using the file disassembler.cpp file. No other .cpp or

.h files should be present in your svn directory. Your programs will then be tested using the set of test files that are attached below. In addition a number of secret tests will also be run. Note: if your program fails any of these secret tests you will not receive any feedback about these secret tests, even if you ask!

Assignment 2 - Milestone Submissions: due 11:55pm Tuesday of week 9

The marks awarded by the web submission system (https://cs.adelaide.edu.au/services/websubmission) for the milestone submission contribute up to 20% of your marks for assignment 2. The marks for the Milestone Tests are used as the marks for the milestone submission. Your milestone submission mark, after the application of late penalties, will be posted to the myuni gradebook when the assignment marking is complete.

Automatic Marking

The Milestone Tests are just those where the Hack Assembly language is syntactically correct and does not use symbols. The marks for the Milestone Tests for each component program will

be weighted as follows:

parser - 40%

translator - 40%

disassembler - 20%

Related Questions

. The fundamental operations of create, read, update, and delete (CRUD) in either Python or Java

CS 340 Milestone One Guidelines and Rubric  Overview: For this assignment, you will implement the fundamental operations of create, read, update,

. Develop a program to emulate a purchase transaction at a retail store. This  program will have two classes, a LineItem class and a Transaction class

Retail Transaction Programming Project  Project Requirements:  Develop a program to emulate a purchase transaction at a retail store. This

. The following program contains five errors. Identify the errors and fix them

7COM1028   Secure Systems Programming   Referral Coursework: Secure

. Accepts the following from a user: Item Name Item Quantity Item Price Allows the user to create a file to store the sales receipt contents

Create a GUI program that:Accepts the following from a user:Item NameItem QuantityItem PriceAllows the user to create a file to store the sales receip

. The final project will encompass developing a web service using a software stack and implementing an industry-standard interface. Regardless of whether you choose to pursue application development goals as a pure developer or as a software engineer

CS 340 Final Project Guidelines and Rubric  Overview The final project will encompass developing a web service using a software stack and impleme