Design by Contracts in Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg93216] Design by Contracts in Mathematica
- From: ADL <alberto.dilullo at tiscali.it>
- Date: Fri, 31 Oct 2008 03:07:18 -0500 (EST)
A question for the experts. I have recently met the concept of Design by Contract (TM) software implementation used in the language Eiffel. It is based on the conditions "require", "ensure" and "invariant" which must be met by a piece of code in order to be correctly executed. It appears that this concept helps building reliable and reusable code. Now, I find some analogies of the "require" clause with the normal Mathematica patterns and Condition specifications for functions. In any case, this condition appears to be easily implemented. Instead, a Mathematica implementaion of "ensure" and "invariant", which are triggered by the appearance of the final outcome of a function, seem to me quite tricky to implement in a systematic way. Now I come to my questions. Do you think that a modification to the internal Mathematica cycle by adding "exit" patterns to be matched by functions' outcomes (in parallel with existing "inlet" patterns which must be matched before transformations) could make easier Mathematica programming and debugging? Do you think this would represent a big challenge for Wolfram developers? Thank you in advance for your comments. Al