Answered step by step
Verified Expert Solution
Question
1 Approved Answer
MiniMac is a virtual processor with a tiny but extendable memory and a tiny but extendable instruction set.Heres a screenshot of the MiniMac user interface:A
MiniMac is a virtual processor with a tiny but extendable memory and a tiny but extendable instruction set.Heres a screenshot of the MiniMac user interface:A screenshot of a computerDescription automatically generatedThe view panel on the right contains two lists javaxswing.JList The top list shows the contents of memory. The bottom list shows the program currently being executed. The control panel on the left contains three buttons javaxswing.JButton The first button prompts the user for a program to parse:A screenshot of a computer programDescription automatically generatedThe second button executes the program. The third button resets all memory cells to These commands are duplicated under the Edit menu. The Help menu explains each command. The File menu contains the items: New, Save, Open, and Quit.The MiniMax memory is an array of integers:int size ;Integer memory new Integersize;A MiniMax program is a list of instructions. An instruction pointer ip indicates the position in the list of the next instruction to be executed.GrammarHeres the instruction set grammar note: ~ means followed by and all unquoted tokens are integers:Load :: load ~ location ~ value memorylocation valueHalt :: halt terminates the programadd :: add ~ src ~ src ~ dest memorydest memorysrc memorysrcmul :: mul ~ src ~ src ~ dest memorydest memorysrc memorysrcbgt :: bgt ~ location ~ offset if memorylocation ip offsetblt :: blt ~ location ~ offset if memorylocation ip offsetloop :: loop ~ count ~ instruction executes instruction count timesA block is a list of one or more instructions separated by semicolons and bracketed by curly braces:block :: ~ instruction ~ ; ~ instruction ~ Executing a block sequentially executes each instruction in the blocks body.For example, the program shown in the screenshot computes kn where n is stored in memory The base, k is stored in memory In this case k n was and the result, is stored in memory Memory is the amount to decrement memory each time the result is multiplied by kDesignHeres the design of MiniMac:A diagram of a programDescription automatically generatedParserHeres a partial implementation of MiniMacParser.java. Note that it is a utility class aka singleton all of its methods are static.TestingImplement and test the following functions in MiniMax:Trin n stored in a file called triFibn nth Fibonacci number stored in a file called fibLessn mn m: true and falseLogn m where m n and n mIn each case the input, n should be stored in memory and the output, fn should be stored in memoryHints The MiniMax is a publisher and the view panel is its subscriber. Each time memory is updated or a new program is set, MiniMax notifies its subscribers The control panel is the action listener for its buttons. It navigates to the MiniMax and calls the appropriate procedure execute and clear Parsing is more complicated. The control panel must prompt the user for a file name, read the file as a string then pass the string to MiniMaxParser.parseprogram It then sets the MiniMax program to the parsers output, which causes a subscriber notification. Suggestion: ask ChatGPT how to read a text file in Java Ask ChatGPT for a simple example of how to use a JList.
Please give me the instructions how to complete this and solve it to me completely. I really stuck on this and need help i want it correct not just a soloution from an AI because i already tried AI and chatgpt but it was incorrect. I will upvote if you answer correct and complete but if not i will give you a bad rate and diike. Thanks!
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started