open-psa / mef

The Open-PSA Model Exchange Format
https://open-psa.github.io/mef
5 stars 7 forks source link

Fault tree variable redefinition allowance breaks the declarative language #50

Open rakhimov opened 6 years ago

rakhimov commented 6 years ago

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.

cfolleau commented 6 years ago

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.