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

  Mathematics in computing

Binary search tree, and postorder and preorder traversal Determine the shortest path in Graph

  Ict governance

ICT is defined as the term of Information and communication technologies, it is diverse set of technical tools and resources used by the government agencies to communicate and produce, circulate, store, and manage all information.

  Implementation of memory management

Assignment covers the following eight topics and explore the implementation of memory management, processes and threads.

  Realize business and organizational data storage

Realize business and organizational data storage and fast access times are much more important than they have ever been. Compare and contrast magnetic tapes, magnetic disks, optical discs

  What is the protocol overhead

What are the advantages of using a compiled language over an interpreted one? Under what circumstances would you select to use an interpreted language?

  Implementation of memory management

Paper describes about memory management. How memory is used in executing programs and its critical support for applications.

  Define open and closed loop control systems

Define open and closed loop cotrol systems.Explain difference between time varying and time invariant control system wth suitable example.

  Prepare a proposal to deploy windows server

Prepare a proposal to deploy Windows Server onto an existing network based on the provided scenario.

  Security policy document project

Analyze security requirements and develop a security policy

  Write a procedure that produces independent stack objects

Write a procedure (make-stack) that produces independent stack objects, using a message-passing style, e.g.

  Define a suitable functional unit

Define a suitable functional unit for a comparative study between two different types of paint.

  Calculate yield to maturity and bond prices

Calculate yield to maturity (YTM) and bond prices

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