open-psa/mef

Fault tree variable redefinition allowance breaks the declarative language

rakhimov opened this issue · 1 comments

From the MEF Fault Tree description (chapter 4, section 1):

If a variable or a parameter is declared more than once,
tools should emit a warning
and consider only the last definition as the good one (the previous ones are just ignored).

This is strange for a declarative modeling language
since now the order of declarations matters.
It is more like assignments of imperative languages.

As tested with XFTA,
it doesn't allow 'redefinition'.
I went this direction as well with SCRAM.

I could imagine many subtle analysis discrepancies
due to the allowance of redefinitions.
Imagine working with multi-file models.
Now if the order of files is changed or not remembered,
the analysis may be inconsistent
if it contains redefinitions spread across files.

Totally agree.
For a modelling language it is dangerous to allow multiple declaration. Albizia (our computation engine) send a error iin this case.

The only use I see is for people who would like to use open-psa format as a scripting language to do computation. But it is not the purpose.