In the world we live in today, computers have become important especially in how our day to day tasks are handled. That being said, the transfer of data from one computer to another is of vital stability in the modern world. Especially in areas related to information technology, finance, and the economics of our lives. That being said, we have different types of file development methods and extensions that make the transfer of information between computers simpler and help us create helpful apps for students and businessmen. One of them is vdm which stands for Vienna Development Method. We bet you have ever gotten a Vienna development method assignment before, have you?

It is considered one of the oldest formal methods that are utilized in the construction of computer-based systems and to generate program code. It was first established in the 1970s, more specifically in the IBM Laboratory Vienna. Over time, VDM has grown and developed to incorporate a number of tools and techniques; therefore extending and having a formal specification language. This language is known as the VDM Specification Language (VDM-SL). In it, there is an extra extension known as the VDM++ that is used to support additional tasks such as the modeling of object-oriented and concurrent systems. Other extra support that VDM has is as follows:

- The availability of both academic and commercial tools for the define formal analysis of different models
- The support required for tasks such as testing as well as proving different properties of models.
- The generation of programming code from VDM models that has been validated.

## Basic Types of VDM Features

There are different basic types of VDM features which include: numeric, character, token and quote types. You might find this in VDM specification language assignment

### Basic Types

<A> | The quote type that contains the value of <A> | … |

char | Characters | A, B, C… |

token | Structurless tokens | … |

Int | Integers | …,-3,-2,-1, 0,1,2,3… |

Nat | Natural numbers with the inclusion of zero | 0, 1, 2, 3, 4, 5… |

nat1 | Natural numbers without the exclusion of zero | 1, 2, 3, 4, 5, … |

Rat | Referring to rational numbers | Such as a/bm where both a and b are integers, but b cannot be 0 |

Real | Referring to real numbers | … |

Data types are normally expressed in order to be a representation of the main data of the system that is being modeled. You may find these in your VDM models homework and assignment. Each varying type of definition, therefore, brings forth a new kind of name and gives forth a representation for the basic types or as well as the types that have already been introduced.

Secondly, in order to manipulate values that are for data types, operators can further be defined as values. Thus, performing operations such as the addition of natural numbers, subtraction can be provided; not to mention as well as Boolean operators such as equalities as well as inequalities.

## Types of Constructors; Composite Types, Products, and Unions VDM

The basic types of constructors present in VDM language homework are of a limited value. In fact, they are as follows:

- T1| T2|…..| Tn- These are union of types ranging from T1 to Tn
- T1*T2*…*Tn- These are Cartesian product types ranging from T1 to Tn
- T:: f1:T1…fn: Tn- These are composite also known as record types

The most common types of basic constructors are used to merge two predefined types. The type (A|B) has both elements of the type A as well as the type B. Then there’s enumerated types found in VDM-SL which are normally portrayed as unions especially when it comes to quote types.

## Collections in Vienna Development Method Assignment

Most of the time, collections tend to mimic the model groups of values. However, when it comes to sets, they are normally finite and thus and consist of unordered collections in whereby duplication among values tends to be surpressed. On the other hand, sequences are usually collections ordered in a finite manner whereby duplication can take place and the mappings portray finite correspondence especially between two or more given sets of values.

### Sets

{a, b, c} | This refers to the set elements a b and c |

{x | x:T & P(x)} | This refers to set comprehension such that the set of X from derived from type T is that such as P(x) |

{i, …, j} | This refers to every set of integers running from i to j |

e in set s | Represents the presence of e as an element of s |

e not in set s | S does not contain an element e |

s1 union s2 | Represents a situation where Sets S1 and S2 have union |

s1 inter s2 | This represents an intersection of S1 and S2 |

s1 \ s2 | This refers to the difference between sets S1 and S2 |

dunion s | Such a situation describes a distributed union of a set of sets s |

s1 psubset s2 | S1 is defined as a subset of s2 |

s1 subset s2 | S1 is defined as a weak subset of s2 |

card s | This describes the cardinality of a set S |

In VDM, there is a set type constructor where the predefined type is normally represented as T. It is used to construct a type that normally comprises of all the finite sets that have been drawn specifically from the type T. A good example can be seen below:

### UGroup-set of UserId

The above vdm-sl examples define a specific type UGroup that consists of ever finite sets of the UserId.

### Sequences

[a, b, c] | The refers to the sequence of elements a b and c |

[f(x) | x:T & P(x)] | This shows sequence comprehension for f(x) for every x of the numeric of Type T hence P(x) gets to carry the x values in their numeric order |

hd s | The first head element of s |

tl s | The tail refers to the remaining sequence of s after the removal of the head |

len s | This refers to how long s is |

elems s | This refers to all the elements of s |

s(i) | Used to locate and represent the ith element of s |

inds s | Refers to the set of indices present in the sequence s |

s1^s2 | This refers to the sequence formed by concatenating two sequences S1 and S2 |

Furthermore, in VDM, there is a sequence type constructor where the predefined type is normally represented as T. It is used to construct a type that normally comprises of all the finite lists that have been drawn specifically from the type T. A good example can be seen below:

**String= seq of char**

Where the string type defined consists of every finite string of characters that is present. You can use this to define and construct concatenation as well as the choosing of elements and subsequences.

### Mappings

When talking about a finite mapping, we are referring to the correspondence of two sets, whereby we discuss more on the domain and its range, not to mention the present domain indexing elements as well as their ranges. You can say that it is identical to a finite function. Thr type constructor for mapping is usually presented as map T1 to T2 where T1 and T2 can be considered as the predefined types. Note that T1 and T2 are sets of values.

**Weddings= map String to Date**

The aforementioned information can give you a solid start when it comes to apex vdm programming assignment. If you would like to find more information regarding programming assignment help, get in touch with us today and we will give your further guidance and assistance.