Compilers and Language Design Course at the University of Notre Dame
This homework should be prepared as a typed document and submitted to Canvas as a PDF.
Select a C or C++ program of your own
creation from a prior class. It doesn’t have to be very large,
but should consist of several different source files that make up a complete program.
Determine how to invoke the
different parts of the compiler (gcc or g++) in order
to create the various stages of the compiler pipeline.
Then, answer the following questions:
nm to observe all of the symbols in the file. How many symbols are defined, and how many undefined? Identify at least three undefined symbols, and look up their purpose using man or other reference materials, and briefly explain how they got there.nm to observe all of the symbols in the file. Again, count the defined and undefined symbols. Use ldd to observe what dynamic libraries the program requires. Look up the purpose of each library and briefly explain it.-static option to produce a fully statically linked executable. Again, count the defined and undefined symbols.objdump to show readable assembly language.)objdump)
Comment on the evolution of the function through each of these stages.
Without knowing X86 assembly language in detail, can you identify parts
of the source code present in the assembly language output?
Is anything surprising?Compile (ha) your answers together into one large document, taking care to organize and format answers and code, so that it is easy to follow. Submit one PDF document via Canvas.
This assignment is due on Friday, August 29th. Submit a PDF via Canvas.