0% found this document useful (0 votes)
20 views

CPS 343/543 Assignment #3 Winter Term 2005 - 2006 Due: Monday, February 13, 2006

This document outlines an assignment for a computer programming course. It contains 7 questions regarding operational semantics and denotational semantics of control flow statements like while, do-while, and if-then-else in C/C++/Java. Students are asked to provide formal definitions of the meaning and behavior of these statements using virtual machine instructions and pre/post conditions. They are also asked to find loop invariants, write a denotational semantics function for if-statements, and answer two short questions about reserved vs non-reserved keywords.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views

CPS 343/543 Assignment #3 Winter Term 2005 - 2006 Due: Monday, February 13, 2006

This document outlines an assignment for a computer programming course. It contains 7 questions regarding operational semantics and denotational semantics of control flow statements like while, do-while, and if-then-else in C/C++/Java. Students are asked to provide formal definitions of the meaning and behavior of these statements using virtual machine instructions and pre/post conditions. They are also asked to find loop invariants, write a denotational semantics function for if-statements, and answer two short questions about reserved vs non-reserved keywords.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

CPS 343/543 Assignment #3

Winter Term 2005 - 2006


Due: Monday, February 13, 2006
1.
(3 points) Using the virtual machine instructions as described in your
textbook on pages 149 and 150, give an operational semantic meaning for:
a)
The C/C++/Java while loop.
b)
The C/C++/Java do-while loop.
c)
Are the virtual machine instructions for parts 1 a) and 1 b) the same?
Explain.
2.
(3 points) Suppose you wished to change the condition so that the loops in
Question #1 above would end when the condition is true (rather than false). In
other words, the condition would have to be changed to the opposite condition.
Using the virtual machine instructions as described in your textbook, give an
operational semantic meaning for:
a)
A C/C++/Java while loop modified to take the opposite condition.
b)
A C/C++/Java do-while loop modified to take the opposite condition.
c)
Are the virtual machine instructions for parts 2 a) and 2 b) the same?
Explain.
3.
(2 points) Give the operational semantic meaning for the C/C++/Java ifstatement.
4.
(5 points) Given the post conditions and the statements below, find the
weakest preconditions for each sequence of statements below and for every
assignment statement within each sequence.
a)
x = z - 3;
{ x < 0 }
b)
y = 3 * z + 1; x = 2 - y;
{ x < 1 }
c)
x = y - 1; x = x + y + 2;
{ x < 2 }
d)
if( x == 0 ) x = x + 1;
{ x >= 0 }
e)
if( x > y ) x--; else y--;
{ x == y }

-1-

4.
(5 points) Show, using the technique for finding loop invariants via the table
approach described in class, whether the following program is correct.
{ n > 0 }
index = 0;
sum = 0;
while (index < n) {
sum = sum + A[index];
index = index + 1;
}
{ sum = A[0] + A[1] + ... + A[n-1] }
5.
(5 points) Write a denotational semantics mapping function for a
C/C++/Java if-statement:
M if (if(B) S 1 ; else S 2 ;, s).
6.

(1 point) Question #3 on Page 202 of your textbook.

7.
(1 point) In what way are reserved keywords better than non-reserved
keywords?

-2-

You might also like