Compilers, like programmers, can introduce inefficiencies wh…
Compilers, like programmers, can introduce inefficiencies while translating source language into IR. As a result, the compiler’s optimizer is very important in removing these inefficiencies. Give two examples of inefficiencies you would expect an optimizer to improve. Give two examples of inefficiencies you would expect an optimizer to miss, even though they can be improved. Explain why an optimizer would have difficulty improving them. (8 pts)
Read DetailsMinimize the following DFA using Brzozowski’s algorithm. S…
Minimize the following DFA using Brzozowski’s algorithm. Show the resulting DFA after the first (backward) pass. Show the final resulting DFA after the second (forward) pass. You may choose the names for states in each DFA. Write each DFA in the following format, illustrated with the original DFA: States: 0, 1, 2, 3 Start state 0 Accepting states: 1, 3 Transitions: (0, a) = 1, (0, b) = 2, (1, a) = 1, (2, a) = 3, (3, a) = 3 (12 pts)
Read DetailsConsider the optimization of inlining: replacing a function…
Consider the optimization of inlining: replacing a function call by expanding the called function’s body into the caller. Here is a simple example in Tiger IR to illustrate its behavior. Without inlining start_function square int square(int x) int-list: x float-list:square: ret = x * x; return ret;end_function square// somewhere else in the program: b = a * 2; r = call square(b); if a < r goto label1; With inlining, the code at the end becomes b = a * 2; r = b * b; // this line changed if a < r goto label1; Assuming no other optimizations occur, what is the performance benefit of inlining a function call? If other optimizations occur, can inlining provide further benefits? If so, describe how. Describe a way in which inlining may worsen performance. Based on parts (1) – (3), give a heuristic that an optimizer could use to decide if an individual function call should be inlined – i.e., the benefit of inlining it is likely to exceed the drawback. Are there cases where a function call cannot be inlined because doing so would cause incorrect or erroneous behavior? Briefly explain why or why not. (15 pts)
Read DetailsConsider the language of strings accepted by the regular exp…
Consider the language of strings accepted by the regular expression (ac)+ | (ad)+. Write an LL(1) grammar for this language. {a, c, d} are terminal symbols. State the start symbol. Write grammar rules in BNF format, e.g. -> c | Compute First and Follow sets for each non-terminal symbol. Write the sets as e.g. First(non-terminal) = { a, b, c } Compute the parse table for the grammar. Write parse table entries as e.g. P[non-terminal, a] = -> c Briefly explain why the grammar is LL(1). (16 pts)
Read DetailsConsider the following algorithm to perform liveness analysi…
Consider the following algorithm to perform liveness analysis: Perform a postorder traversal of the control flow graph When visiting each basic block B: Iterate backward through the instructions of B Calculate LiveOut and LiveIn using the data-flow equations (Def and Use) for each instruction Is this algorithm correct? Briefly explain why or why not. (5 pts)
Read DetailsThe password for your online exam is: RockThe link for the o…
The password for your online exam is: RockThe link for the online exam is in the Step 1 folder and you should have opened it in a new tab before you begin this test.Instructions:Before you begin your exam, hold up all sheets of paper you will be using to the camera to show that there is nothing written on it. If your instructor allows the use of formula sheets or a handheld calculator, please hold these up to the camera as well.Enter the password found above into the online exam tab open in Step 1 and complete the exam. Once completed, hold up each completed sheet of paper to the camera.Answer the Yes/No question below and proceed to the next question.DO NOT SUBMIT OR CLOSE YOUR TEST before answering all the questions.Question:I have completed and submitted my online exam and I have held up all my sheets of paper (front and back) to record an image of them on the camera.
Read Details