Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Vienna Development Method
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
====Structuring in VDM-SL==== In the ISO standard for VDM-SL there is an informative annex that contains different structuring principles. These all follow traditional information hiding principles with modules and they can be explained as: * '''Module naming''': Each module is syntactically started with the keyword <code>module</code> followed by the name of the module. At the end of a module the keyword <code>end</code> is written followed again by the name of the module. * '''Importing''': It is possible to import definitions that has been exported from other modules. This is done in an ''imports section'' that is started off with the keyword <code>imports</code> and followed by a sequence of imports from different modules. Each of these module imports are started with the keyword <code>from</code> followed by the name of the module and a module signature. The ''module signature'' can either simply be the keyword <code>all</code> indicating the import of all definitions exported from that module, or it can be a sequence of import signatures. The import signatures are specific for types, values, functions and operations and each of these are started with the corresponding keyword. In addition these import signatures name the constructs that there is a desire to get access to. In addition optional type information can be present and finally it is possible to ''rename'' each of the constructs upon import. For types one needs also to use the keyword <code>struct</code> if one wish to get access to the ''internal structure'' of a particular type. * '''Exporting''': The definitions from a module that one wish other modules to have access to are exported using the keyword <code>exports</code> followed by an exports module signature. The ''exports module signature'' can either simply consist of the keyword <code>all</code> or as a sequence of export signatures. Such ''export signatures'' are specific for types, values, functions and operations and each of these are started with the corresponding keyword. In case one wish to export the internal structure of a type the keyword <code>struct</code> must be used. * '''More exotic features''': In earlier versions of the VDM-SL, tools there was also support for parameterized modules and instantiations of such modules. However, these features were taken out of VDMTools around 2000 because they were hardly ever used in industrial applications and there was a substantial number of tool challenges with these features.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)