Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_рекоменд-ТП-4.doc
Скачиваний:
2
Добавлен:
12.11.2019
Размер:
2.49 Mб
Скачать

1.8. Розширення мови sipl: Введення викликів функцій

Подамо у наступній таблиці (Табл.1.8) cинтаксис розширення БНФ:

Таблиця 1.8.

Ліва частина правила –

метазмінна

Права частина правила

Ім’я

правила

<програма> ::=

…|

program <список об’явлень функцій>

begin <оператор> end

NP1

NP2

<вираз> ::=

…|

if <умова> then <вираз> else <вираз> | <виклик функції>

NA1–NA7

NA8

NA9

<список об’явлень функцій>::=

e | 

<об’явлення функції> |  <об’явлення функції> ; <список об’явлень функцій>

LDF1

LDF2

LDF3

<об’явлення функції>::= 

func <ім’я функції>=<вираз> | func <ім’я функції>(<список формальних параметрів>) = <вираз>

DF1

DF2

<ім’я функції> ::=

<змінна>

NF

<список формальних параметрів>::=

<змінна> |

<змінна> , <список формальних параметрів>

LFP1

LFP2

<виклик функції> ::=

<ім’я функції> |

<ім’я функції> (<список фактичних параметрів>)

CF1

CF2

<список фактичних параметрів>::=

<вираз> | <вираз> , <список фактичних параметрів>

LAP1

LAP2

Тобто ми змінили синтаксис виразу: додавши варіант завдання виразу за допомогою умов

<вираз> ::= if <умова> then <вираз1> else <вираз2>

якщо умова виконується, то <вираз> := <вираз1> інакше <вираз> := <вираз2>, або ж

<вираз> ::= <виклик функції>

значення виразу буде дорівнювати результату виклику функції.

Зміниться і синтаксис програми: додамо варіант

<програма> ::= program <список об’явлень функцій> begin <оператор> end

де <список об’явлень функцій> може бути порожнім, або складатися з об’явлень функцій перерахованих через кому. Так ми додамо можливість використовувати функції із списку об’явлень функцій

Синтаксис об’явлення функції митаме такий вигляд:

<об’явлення функції>::= func <ім’я функції>=<вираз> |

func <ім’я функції>(<список формальних параметрів>) = <вираз>

де список формальних параметрів це список змінних перерахованих через кому.

Синтаксис виклику функції має вигляд:

<виклик функції> ::= <ім’я функції> , якщо функція не має параметрів, та

<виклик функції> ::= <ім’я функції> (<список фактичних параметрів>) де список фактичних параметрів – список виразів перерахованих через кому.

Семантика суперпозиції при цьому може бути 2-х видів:

Глобальною суперпозицією функцій g1,g2,…,gn в номінативну функцію f називається функція, яка задається формулою: S(v1,v2,..vn)(f,g1,g2,…,gn)(st) = f([v1g1(st),v2g2(st),…,vngn(st)])

Локальною суперпозицією функцій g1,g2,…,gn в номінативну функцію f називається функція, яка задається формулою

S[v1,v2,..vn](f,g1,g2,…,gn)(st) = f(stÑ[v1g1(st),v2g2(st),…,vngn(st)])

+ семантика – формально + повно

1.5. пункти і т.д. = оформлення: шрифт (14) + абзаци (відступи) + підписи таблиць (стандарт) + відступи у тексті + міжстрокові…