Implement a two-pass linker

Assignment Help Computer Engineering
Reference no: EM131323092

Programming Assignment: Linker

You are to implement a two-pass linker and submit the source code, which we will compile and run. Submit your source code together with a Makefile as a ZIP file with directory through NYU Classes assignment. Please do not submit inputs or outputs. Your program must take one input parameter which will be the name of an input file to be processed. All output should go to standard output. The languages of choice for this first lab are C/C++/Java. All subsequent labs will be C/C++ only. You may develop your lab on any machine you wish, but you must ensure that it compiles and runs on the NYU system assigned to the course (energon1/2) where it will be graded. It is your responsibility to make sure it executes on those machines. Note, when you work on energon1 or energon2 the default GCC/G++ compiler is v4.4.7. If you use advanced features there is a version 4.6 and 4.8; use gcc46, gcc48, g++46 or g++48 instead. We realize you code on your own machine and transferring to energon exposes occasionally some linker errors. In that case use static linking (such as not finding the appropriate libraries at runtime).

In general, a linker takes individually compiled code/object modules and creates a single executable by resolving external symbol references (e.g. variables and functions) and module relative addressing by assigning global addresses after placing the modules' object code at global addresses.

We assume a target machine with the following properties: (a) word addressable, (b) addressable memory of 512 words, and (c) each word consisting of 4 decimal digits. [I know that is a really strange machine].

Other requirements: error detection, limits, and space used.

To receive full credit, you must check the input for various errors. All errors/warnings should follow the message catalog provided below. We will do a textual difference against a reference implementation to grade your program. Any reported difference will indicate a non-compliance with the instructions provided and is reported as an error and result in deductions.

You should continue processing after encountering an error/warning (other than a syntax error) and you should be able to detect multiple errors in the same run.

1. You should stop processing if a syntax error is detected in the input, print a syntax error message with the line number and the character offset in the input file where observed. A syntax error is defined as a missing token (e.g. 4 used symbols are defined but only 3 are given) or an unexpected token. Stop processing and exit.

2. If a symbol is defined multiple times, print an error message and use the value given in the first definition. Error message to appear as part of printing the symbol table (following symbol=value printout on the same line)

3. If a symbol is used in an E-instruction but not defined, print an error message and use the value zero.

4. If a symbol is defined but not used, print a warning message and continue.

5. If an address appearing in a definition exceeds the size of the module, print a warning message and treat the address given as 0 (relative to the module).

6. If an external address is too large to reference an entry in the use list, print an error message and treat the address as immediate.

7. If a symbol appears in a use list but it not actually used in the module (i.e., not referred to in an E-type address), print a warning message and continue.

8. If an absolute address exceeds the size of the machine, print an error message and use the absolute value zero.

9. If a relative address exceeds the size of the module, print an error message and use the module relative value zero (that means you still need to remap "0" that to the correct absolute address).

10. If an illegal immediate value (I) is encountered (i.e. more than 4 numerical digits), print an error and convert the value to 9999.

11. If an illegal opcode is encountered (i.e. more than 4 numerical digits), print an error and convert the <opcode,operand> to 9999.

The following exact limits are in place.

a) Accepted symbols should be upto 16 characters long (not including terminations e.g. '\0'), any longer symbol names are erroneous.

b) a uselist or deflist should support 16 definitions, but not more and an error should be raised.

c) number instructions are unlimited (hence the two pass system), but in reality they are limited to the machine size.

d) Symbol table should support at least 256 symbols.

Attachment:- Assignment.rar

Reference no: EM131323092

Questions Cloud

Prepare a what not to do when testifying list : prepare a What NOT to Do When Testifying list. As you read Chapter 15 in the textbook, take notes on what a professional law enforcement officer (PLEO) should NOT do when testifying or preparing to testify in a criminal case and why. Your list sho..
Difference between content and process motivational theories : What is the principal difference between content and process motivational theories? As best you, compare and contrast a leading content theorist with a leading process theorist. Be sure to clearly identify which is which.
Net working capital will be recouped at the end of project : A project has an initial requirement of $318,000 for fixed assets and $29,500 for net working capital. The fixed assets will be depreciated to a zero book value over the four-year life of the project and have an estimated salvage value of $110,000. A..
Difference between authority and responsibility : As best you can, explain the difference between authority and responsibility. As best you can, explain the five sources of power. According to our textbook, access to power is not enough. One must know how to use it. Briefly explain why this is tr..
Implement a two-pass linker : You are to implement a two-pass linker and submit the source code, which we will compile and run. Submit your source code together with a Makefile as a ZIP file with directory through NYU Classes assignment
Employees versus temporaries or independent contractors : In 200-300 words explain Policy differences regarding regular employees versus temporaries or independent contractors in Metro Health hospitals.
Calculate payback period and net present value for project : Calculate the payback period (P/B) and the net present value (NPV) for the project. Answer the following questions based on your P/B and NPV calculations: Do you think the project should be accepted? Why?
Write paragraph arguing in favor of single case experiments : Write a paragraph arguing in favor of single-case experiments.- Then write a paragraph arguing against their usefulness.
Why is china reluctant to allow its currency to appreciate : Why was the value of China’s currency a dominant issue at the recent U.S. – China summit? Why is the United States pushing for a higher renminbi? Why is China reluctant to allow its currency to appreciate?

Reviews

len1323092

12/22/2016 3:46:22 AM

I am asking for lower price than usual since I have a almost-functional java version (Linker.rar). If you can modify it to work, will be great.(replace system.in and write to another file with read from a file and system.out.println). I have attached a workable java program(TwoPass.java) to compare. Also if you like, you can also write fresh c++ code. In general, a linker takes individually compiled code/object modules and creates a single executable by resolving external symbol references (e.g. variables and functions) and module relative addressing by assigning global addresses after placing the modules’ object code at global addresses. You are to implement a two-pass linker and submit the source code, which we will compile and run. Submit your source code together with a Makefile as a ZIP file with directory through NYU Classes assignment. Please do not submit inputs or outputs. Your program must take one input parameter which will be the name of an input file to be processed. All output should go to standard output.

Write a Review

Computer Engineering Questions & Answers

  Explain the different types of raid

Explain the different types of RAID, and elaborate on how each type differs:

  Design the requires and the provides interfaces of at least

as the lead software engineer for a medium-sized hospital you have been asked to spearhead an effort to improve the

  Devise a plan for accommodating conflicting responses

Devise a plan for accommodating conflicting responses for the same procedure from two different people you interviewed.

  Use the internet to find at least three different erp

use the internet to find at least three different erp software systems that are available. determine what the main

  Describe the best approach to integrating domain-specific

q1. write a 200- to 300-word short answer response that addresses the followingwhat is the best approach to integrating

  Make a gui that will create the objects

sketch a GUI that will create the objects and provide access to each object's processing methods.

  Input names of students from the user terminated by zzz000

completenbspparts a and b of programming problems.providenbspthe analysis and pseudocode only. no diagrams are

  Questionassume we have three classes alarmclock beeper and

questionassume we have three classes alarmclock beeper and alarmwindow. in following you see an interaction showing an

  Context free language

Let L1 be the regular language and L2 be the context-free language, both described over the same alphabet Σ. a) Is L1∩L2 always regular? Explain your claim.

  Questionconsider a short 10-meter link over which a sender

questionconsider a short 10-meter link over which a sender can transmit at a rate of 150 bitssec in both directions.

  Define the german transportation otto bonn

First assignment is: Problem Description: The German transportation Otto Bonn is expanding his trucking business into Florida, with shipping centers in Daytona Beach, Gainesville, Jacksonville, Miami, Tallahassee, and Tampa.

  What measures you will take to protect against attack

What measures you will take to protect against attack? What measures you will take to prevent attacks? What measures you will take to be notified that you are being attacked?

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd