Статус документа
Статус документа

ГОСТ Р ИСО 10303-11-2009 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS

     9.5.1 Функция


Функция является алгоритмом, который обрабатывает параметры и выдает единственное результирующее значение установленного типа данных. При обращении к функции (см. 12.8) в выражении вычисляется результирующее значение в точке вызова.

Функция должна завершаться выполнением оператора RETURN. Значение выражения, связанного с оператором RETURN, определяет результат, полученный при вызове функции.

   Синтаксис:

220

function_decl = function_head algorithm_head stmt { stmt } END_FUNCTION ';' .

221

function_head = FUNCTION function_id [ '(' formal_parameter

{ ';' formal_parameter} ')' ] ':' parameter_type ';' .

218

formal_parameter = parameter_id { ',' parameter_id } ':' parameter_type .

266

parameter_type = generalized_types | named_types | simple_types .

173

algorithm_head = { declaration } [ constant_decl ] [ local_decl ] .

199

declaration = entity_decl | function_decl | procedure_decl |

subtype_constraint_decl | type_decl .


Правила и ограничения:

a) Оператор RETURN должен быть определен в теле функции для каждой из возможных ветвей вычислительного процесса, активизируемого при обращении к данной функции.

b) Для каждого оператора RETURN, присутствующего в функции, должно быть задано выражение, по которому вычисляется значение, возвращаемое в точку вызова.

c) Выражения, заданные для операторов RETURN, должны соответствовать объявленному типу данных возвращаемого функцией значения.

d) Функции не должны иметь побочных эффектов. Поскольку формальные параметры функции не должны определяться ключевым словом VAR, изменения этих параметров внутри функции не показываются в точке вызова функции.

Примечание - Локальным переменным, объявленным объектными типами данных, могут быть назначены экземпляры формальных параметров. Изменение этих локальных переменных будет влиять на формальный параметр, поскольку назначение осуществляется по ссылке. В соответствии с приведенным выше правилом, изменения формальных параметров не показываются в точке вызова функции, поэтому особое внимание необходимо обратить на попытку возврата этих локальных переменных.

e) Функции могут модифицировать локальные переменные или параметры, объявленные во внешней области видимости, то есть если данная функция объявлена в заголовке (элемент algorithm_head в определении синтаксиса) оператора FUNCTION, PROCEDURE или RULE.