Programming Language Pragmatics, Fourth Edition
Programming Language Pragmatics, Fourth Edition
4th Edition
ISBN: 9780124104099
Author: Michael L. Scott
Publisher: Elsevier Science
Expert Solution & Answer
Book Icon
Chapter 5, Problem 16E

Explanation of Solution

a.

Explanation for the given code:

  • In the give code, “A” and “B” are the arrays of pointer to structures.
  • Every pointer is four bytes long.
  • The programmers are interested in the value of fields at an offset of 12 bytes from the beginning of the structure.
  • The C source program might look something like S := A [k]  f + B[k]  f;

Explanation of Solution

b.

Identifying flow dependences:

There are flow dependences from

  • Instruction 1 to instruction 4 (r1)
  • Instruction 2 to instruction 5 (r4)
  • Instruction 3 to instruction 8 (r6)
  • Instruction 4 to instruction 5 (r2)
  • Instruction 4 to instruction 8 (r2)
  • Instruction 5 to instruction 6 (r3)
  • Instruction 6 to instruction 7 (r3)
  • Instruction 7 to instruction 11 (r5)
  • Instruction 8 to instruction 9 (r3)
  • Instruction 9 to instruction 10 (r3)
  • Instruction 10 to instruction 11 (r7)
  • Instruction 11 to instruction 12 (r3)

Identifying anti-dependences:

  • There are anti-dependences from instruction 6 to 8, 9, and 11;
    • Instruction 7 to 8, 9, and 11;
    • Instruction 9 to 11; and
    • Instruction 10 to 11.
  • All of them are carried by “r3” register.

Identifying output dependences:

  • There are output dependences from instruction 5 to 6, 8, 9, and 11;
    • Instruction 6 to 8, 9, and 11;
    • Instruction 8 to 9 and 11; and
    • Instruction 9 to 11.
  • Again, all are carried by “r3” register.

Explanation of Solution

c.

Scheduling the code to reduce the load delay on a single-pipeline, in-order processor:

  • There are 3 load delays to worry about, after the instructions 6, 9, and 10.
  • The best way is to move an instruction down into the delay slot of instruction 6.

Modified code is as follows:

1.     r1 := l2.     r4 := &A3.     r2 := r1 × 44.     r3 := r4 + r25.     r3 := *r36.     r6 := &B                 filled this slot7.     r5 := *(r3 + 12)8.     r3 := *r6 + r2  9.     r3 := *r3                 still a delay after this load10.   r7 = *(r3 + 12)    and this one11.   r3 := r5 + r712.   S := r3

There will still be delays after instruction 9 and 10.

Explanation of Solution

d.

Justification:

Yes”, if the programmer introduce a new register name (r8) for the reuse of “r3” at instruction 8 then the programmer can move the second load downward, where it becomes instruction 9:

1.     r1 := l2.     r4 := &A3.     r2 := r1 × 44.     r3 := r4 + r25.     r3 := *r36.     r6 := &B                 7.     r8 := r6+r18.     r8 := *r8  9.     r5 := *(r3+12)        filled this slot10.   r7 = *(r8 + 12)    still a delay after this load11.   r3 := r5 + r712.   S := r3

Without a longer window to consider, there is still no way to delete the delay after instruction 10.

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Students have asked these similar questions
Whentheuserenters!!,themostrecentcommandinthehistoryisexecuted.In the example above, if the user entered the command: Osh> !! The ‘ls -l’ command should be executed and echoed on user’s screen. The command should also be placed in the history buffer as the next command. Whentheuserentersasingle!followedbyanintegerN,theNthcommandin the history is executed. In the example above, if the user entered the command: Osh> ! 3 The ‘ps’ command should be executed and echoed on the user’s screen. The command should also be placed in the history buffer as the next command. Error handling: The program should also manage basic error handling. For example, if there are no commands in the history, entering !! should result in a message “No commands in history.” Also, if there is no command corresponding to the number entered with the single !, the program should output "No such command in history."
Activity No. Activity Time (weeks) Immediate Predecessors 1 Requirements collection 3 2 Requirements structuring 4 1 3 Process analysis 3 2 4 Data analysis 3 2 5 Logical design 50 3,4 6 Physical design 5 5 7 Implementation 6 6 c. Using the information from part b, prepare a network diagram. Identify the critical path.
2. UNIX Shell and History Feature [20 points] This question consists of designing a C program to serve as a shell interface that accepts user commands and then executes each command in a separate process. A shell interface gives the user a prompt, after which the next command is entered. The example below illustrates the prompt osh> and the user's next command: cat prog.c. The UNIX/Linux cat command displays the contents of the file prog.c on the terminal using the UNIX/Linux cat command and your program needs to do the same. osh> cat prog.c The above can be achieved by running your shell interface as a parent process. Every time a command is entered, you create a child process by using fork(), which then executes the user's command using one of the system calls in the exec() family (as described in Chapter 3). A C program that provides the general operations of a command-line shell can be seen below. #include #include #define MAX LINE 80 /* The maximum length command */ { int…
Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education