联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2019-09-15 10:26

Assignment 2 Description

Assignment 2 - Translating Virtual Machine Code

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.

Due dates: Milestone - 11:55pm Tuesday of week 9, Final - 11:55pm Friday of week 9.

Late penalties: For each part, the maximum mark awarded will be reduced by 25% per day / part day late. If your mark is greater than the

maximum, it will be reduced to the maximum.

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 projects 7 and 8 in the nand2tetris course. In this assignment the translation program is in two

separate programs. The precompiled executable program, bin/parser, will read a Hack Virtual Machine file from standard input and produce an abstract

syntax tree on standard output. The executable program, translator, which you will write, will read the abstract syntax tree and output a Hack Assembly

Language translation of each Virtual Machine command. The output will be in a form suitable for testing by the precompiled executable

program bin/simulator.

SVN Repository

You must create a directory in your svn repository named: <year>/<semester>/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.

translator.cpp - C++ source 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/lib.a file does not get added to your svn repository you will need to explicitly add it using:

% svn add lib/lib.a

Submission and Marking Scheme

This assignment has two assignments in the web submission system (https://cs.adelaide.edu.au/services/websubmission) named: Assignment 2 -

Milestone Submissions and Assignment 2 - Final Submissions. The assessment is based on "Assessment of Programming Assignments

(https://myuni.adelaide.edu.au/courses/44936/pages/assessment-of-programming-assignments) ". A submission to either assignment in the web

submission system (https://cs.adelaide.edu.au/services/websubmission) will automatically result in a submission to the other assignment.

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. Your milestone submission mark, after the application of late penalties, will be posted to the myuni gradebook

when the assignment marking is complete.

Your programs must be written in C++ and will be tested using a small set of Hack Virtual Machine files. You may assume that the first command in

each test will be a function command so that you will always know the correct class and function name to use when constructing labels. Although a wide

range of tests may be run, marks will only be recorded for those tests that require a complete implementation of the following commands:

Note: the simulator tests each virtual machinecommand implementation separately so the overall failure of a test could still result in a significant number

of marks for those individual virtual machine command implementations that behaved correctly.

Your program will be compiled using the Makefile included in the zip file attached below. The only source file that will be used to compile the

translator program will be the file translator.cpp file. No other .cpp or .h files should be present in your svn directory.

Assignment 2 - Final Submissions: due 11:55pm Friday of week 9

The marks awarded for the final submission contribute up to 80% of your marks for assignment 2.

Your final submission mark will be the geometric mean of the marks awarded by the web submission system

(https://cs.adelaide.edu.au/services/websubmission/) , a mark for your logbook and a mark for your code. It will be limited to 20% more than the marks

awarded by the web submission system (https://cs.adelaide.edu.au/services/websubmission) . See "Assessment - Mark Calculations

(https://myuni.adelaide.edu.au/courses/44936/pages/assessment-mark-calculations) " for examples of how the marks are combined. Your final submission

mark, after the application of late penalties, will be posted to the myuni gradebook when the assignment marking is complete.

Automatic Marking

The automatic marking will compile and test your program in exactly the same way as for the milestone submission. The difference is that marks will be

recorded for all of the tests.

Logbook Marking

Important: the logbook must have entries for all work in this assignment, including your milestone submissions. See "Assessment - Logbook Review

(https://myuni.adelaide.edu.au/courses/44936/pages/assessment-logbook-review) " for details of how your logbook will be assessed.

Code Review Marking

For each of your programming assignments you are expected to submit well written code. See "Assessment - Code Review

(https://myuni.adelaide.edu.au/courses/44936/pages/assessment-code-review) " for details of how your code will be assessed.

Assignment 2 - Participation Marks

Any submissions to the Final Submissions assignment made more than one week before but less than two weeks before the due date for the Final

Submissions assignment, may be awarded participation marks. The participation marks will be calculated by scaling the best mark awarded by the

automatic marking of an eligible submission to be a number between 0 and 10. A maximum of 10 participation marks are available.

Virtual Machine Translator

Background

This assignment requires you to write a complete implementation of the translator program that you may have started in Part 2 of the Virtual Machine

Translation workshop. It would be a good idea to revisit workshop 07 before continuing with this assignment. However, you should start again using the

startup files that are in the zip files attached below, do not reuse your work from workshop 07. These startup files include a working parser and some

new test files. Remember to keep your logbook up to date when working on this assignment and make svn commits when you add new logbook entries.

Startup Files

The startup files in the attached zip file should work on most 64-bit Linux systems and on a Mac. Please see the Startup Files for Workshops and

Assignments (https://myuni.adelaide.edu.au/courses/44936/pages/startup-files-for-workshops-and-assignments) page for more information.

版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp