java代写/算法代写/algorithm代写/CS代写: Assignment 3 – The Interpreter

java代写/算法代写/algorithm代写/CS代写:这是一个利用java进行代码补充的interpreter的代写,旨在提升java编写能力和整体的代码设计能力
1. Overview
For this assignment you will be implementing an interpreter for the
mock language X. Some code has been given to you to get you started.
Also attached to this assignment doc is the pages for explaining the
components of the interpreter. The information in the pages should be
sufficient to complete the assignment.
And as always, if there are any questions please ask them in slack AND
in class. This promotes collaborative thinking which is important.
NOTE THIS IS AN INDIVIDUAL ASSIGNMENT but you can collaborate with
other students.
Submission
You are required to submit your source code via GitHub,
and documentation in PDF format as described in Documentation
Guidelines into the documentation folder.
2. Requirements
1. Implement ALL the ByteCode classes listed in the table on page {129 or
page 5 of this document}. Be sure to create the correct abstractions for
the bytecodes. It is possible to have multiple abstractions within the
set of byte codes classes.
2. Complete the implementation of the following classes
a.ByteCodeLoader
b.Program
c.RuntimeStack
d.Virtual Machine
The Interpreter and CodeTable class have already been
implemented for you. The Interpreter class is the entry
point to this project. All projects will be graded using
this entry point.
3.Make sure that all variables have their correct modifiers.
Projects with all members being public will lose points.
4.Make sure not to break encapsulation. Projects that contain
objects or classes trying to access members that it should
not be allowed to will lose points. For example, if a
bytecode needs to access or write to the runtime stack, it
should NOT be allowed to. It needs to request these
operations from the virtual machine. Then the virtual
machine will carry out the operation.
It is ill advised to take the naive approach and make a
method in the virtual machine for each byte code, while it
would work, this solution will produce a lot of duplicate
code AND points will be deducted for this type of solution.
Notes about the attached pages.
• Some of the information in the attached pages may be out of
date. BUT not much. For example, the pages call to use a
vector for the runtime stack. Vectors in java, while they
still exist are deprecated and new projects should not use
them. You may use an ArrayList in its place.

发表评论

电子邮件地址不会被公开。 必填项已用*标注