Prev | Next |
Friendly Enough Expression Language (FEEL)
The Friendly Enough Expression Language (FEEL) was created to support Decision Modeling notation and is defined rigorously in the specification. It is a lightweight language focusing on the creation of expressions with just enough data types expressions and grammar to give it the power to describe decisions. Some more technical readers will question why yet another language is needed when there are existing languages like JavaScript that would be fit for purpose. The answer to this question appears to be that is intended to be simple enough for non-technical people to be able to understand the expressions and contribute to the conversations. Like any language its grammar must be complied with or it will be ill-formed and will not be accepted by the compiler or worse will produce erroneous or unpredictable results.
Enterprise Architect has a facility to generate implementation (programming) code from decision models and expressions defined in FEEL can be automatically converted to a number of different target languages. So there is no misunderstanding let us be clear - FEEL is a language for expressions and is not itself an implementation language.
Data Types
Almost all languages used in computer science have data types, which are intended to help a programmer or analyst specify their intent correctly and ensure the compiler or interpreter is receiving the input in the specified format. A data type is a mechanism to constrain the values that an expression, such as a variable or a function, can take. The data type prescribes the operations that can be performed on the data, the meaning of the data, and the way values of that type can be stored. FEEL has four data types as specified in this table.
Grammar Expressions
Expressions are used to define the logic and contain names and FEEL expressions that define operators and parameters and return values. There are four categories of grammar rules: Arithmetic, Comparison, Interval and Additional. We will now look at these in detail.