-
Key: MARTE-117
-
Legacy Issue Number: 11872
-
Status: closed
-
Source: THALES ( Sebastien Demathieu)
-
Summary:
Subject: VSL should support definition and application of functions, derivatives, sequences and series. Details: In the early stage of a development process, it may be useful to model control laws of a RTES. VSL seems to be a very good fit for that purpose. However, it misses several mathematical concepts to provide a comprehensive support. VSL should support definitions of functions, derivatives, sequences and series.
-
Reported: MARTE 1.0b1 — Fri, 21 Dec 2007 05:00 GMT
-
Disposition: Resolved — MARTE 1.0b2
-
Disposition Summary:
In VSL, functions are supported by means of:
a) The definition of UML::Operations in DataTypes, for the declaration of
functions in data type libraries.
b) VSL::OperationCallExpression, for the specification of functions
(reference/call to declared UML::Operations) in VSL expressions.
We added a set of minimum operations/functions to MARTE primitive and data
types (e.g., arithmetic and logic functions). The number of functions that could be
added to VSL, and useful in the real-time and embedded system domain, is very
large. In MARTE, we did not attempt to define all these functions. Instead, we
proposed only a basic subset useful for general expressions. The initial intent
was that further libraries could extend MARTE libraries to support domainspecific
functions.
However, we should assure that different kinds of functions can be declared with
basis on the current VSL abstract and concrete syntaxes (e.g., the functions
described in the summary of this issue). In this resolution, we describe how such
functions (i.e., functions, derivatives, sequences and series) are added to the
MARTE library of primitive types and supported by VSL.
From a computer science viewpoint, every function declaration can be expressed
as a tuple: <name, parameters/arguments, returning type>. For instance, all the
functions supported by Matlab are defined in this way. In Matlab, functions are program routines, usually implemented in M-files that accept input arguments
and return output arguments. Every mathematical (or not mathematical) function
in Matlab is implemented with this basic principle2 (integrals, derivatives,
matrices, potentials, optimization expressions, etc.). If we look at VSL, the
“function” notion matches very well with the UML::Operation concept. Thus, VSL
is supported in Operations for the declaration and specification (expression
specifications) of functions. In VSL, however, our scope is just the language
aspects. VSL does not support implementation support on those functions
(although they could be implemented as methods UML::Behavior- of such UML
UML::Operations). Instead, VSL describes the semantic of functions in a
declarative way. -
Updated: Fri, 6 Mar 2015 20:58 GMT