WorksheetsLab 4
Total questions: 8
Worksheet time: 2mins
What is the correct syntax to define a simple data type in VDM++?
type MyType = seq of char;
type MyType : seq of char;
types MyType = seq of char;
types MyType : seq of char;
Which of the following is an example of defining a union type in VDM++?
Faculty = <FSKTM> | <FEB>;
Faculty = <FSKTM, FEB>;
Faculty : <FSKTM> | <FEB>;
Faculty = {FSKTM, FEB};
Which of the following is NOT a valid predefined type in VDM++?
nat
char
string
real
In VDM++, how do you declare an instance variable of type int within a class?
instance variable studentName : seq of char;
instance variables studentName : seq of char;
instance variable studentName : seq of char = "John Doe";
instance variables studentName = "John Doe";
Which of the following is an example of an explicit function in VDM++?
sum(a, b) == post RESULT = a + b;
sum(a, b) == pre a > 0 and b > 0; post RESULT = a + b;
sum(a, b);
sum(a, b) == a + b;
Which of the following statements about implicit functions is true?
Provide a full implementation of the computation.
Used when you need to sequence operations.
Use pre & post conditions to define expected behavior
Cannot have any conditions.
What is the correct syntax to define an implicit function in VDM++?
multiply(x, y) == post RESULT = x * y;
multiply(x, y) ==> x * y;
multiply(x, y) == x * y;
multiply(x, y) == pre x > 0 and y > 0; post RESULT = x * y;
What is the main difference between a function and an operation in VDM++?
Functions can have pre/postconditions, but operations cannot
Functions change the system state, while operations do not
Operations are used for mathematical calculations only
Operations can change the system state, while functions cannot
