Syntax Summary

2019-09-18СтудИзба

Описание файла

Документ из архива "Syntax Summary", который расположен в категории "". Всё это находится в предмете "практикум по rsl" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Онлайн просмотр документа "Syntax Summary"

Текст из документа "Syntax Summary"

APPENDIX A

Syntax Summary

Specifications

specification ::=

module_decl-string

module_decl ::=

scheme_decl |object_decl

Declarations

decl ::=

scheme_decl |object_decl |

type_decl |value_decl |

variable_decl |channel_decl |

axiom_decl

Scheme Declarations

scheme_decl ::=

scheme scheme_def-list

scheme_def ::=

opt-comment-string

id opt-formal_scheme_parameter = class_expr

formal_scheme_parameter ::=

( formal_scheme_argument-list )

formal_scheme_argument ::=

object_def

Object Declarations

object_decl ::=

object object_def-list

object_def ::=

opt-comment-string

id opt-formal_array_parameter : class_expr

formal_array_parameter ::=

[ typing-list ]

Type Declarations

type_decl ::=

type type_def-list

type_def ::=

sort_def |

variant_def |

union_def |

short_record_def |

abbreviation_def

Sort Definitions

sort_def ::=

opt-comment-string id

Variant Definitions

variant_def ::=

opt-comment-string id == variant-choice

variant ::=

constructor |

record_variant

record_variant ::=

constructor ( component_kind-list )

component_kind ::=

opt-destructor type_expr opt-reconstructor

constructor ::=

id_or_op |

destructor ::=

id_or_op :

reconstructor ::=

 id_or_op

Union Definitions

union_def ::=

opt-comment-string

id = name_or_wildcard-cholce2

name_or_wildcard ::=

type-name |

Short Record Definitions

short_record _def ::=

opt-comment-string

id :: component_kind-string

Abbreviation Definitions

abbreviation_def ::=

opt-comment-string id = type_expr

Value Declarations

value_decl ::=

value value_def-list

value_def ::=

commented_typing |

explicit_value_def |

implicit_value_def |

explicit_function_def |

implicit_function_def

Explicit Value Definitions

explicit_value_def ::=

opt-comment-string

single_typing = pure-value_expr

Implicit Value Definitions

implicit_value_def ::=

opt-comment-string

single_typing pure-restriction

Explicit Function Definitions

explicit_function_def ::=

opt-comment-string single_typing

formal_function_application  value_expr

opt-pre_condition

formal_function_application ::=

id_application |

prefix_application |

infix_application

id_application ::=

value-id formal_function_parameter-string

formal_function_parameter ::=

( opt-binding-list )

prefix_application ::=

prefix_op id

infix_application ::=

id infix_op id

Implicit Function Definitions

implicit_function_def ::=

opt-comment-string

single_typing formal_function_application

post_condition opt-pre_condition

Variable Declarations

variable_decl ::=

variable variable_def-list

variable_def ::=

single_variable_def |

multiple_variable_def

single_variable_def ::=

opt-comment-string

id : type_expr opt-initialisation

initialisation ::=

:= pure-value_expr

multiple_variable_def ::=

opt-comment-string id-list2 : type_expr

Channel Declarations

channel_decl ::=

channel channel_def-list

channel_def ::=

single_channel_def |

multiple_channel_def

single_channel_def ::=

opt-comment-string id : type_expr

multiple_channel_def ::=

opt-comment-string id-list2 : type_expr

Axiom Declarations

axiom_decl ::=

axiom opt-axiom_quantification

axiom_def-list

axiom_quantification ::=

forall typing-list 

axiom_def ::=

opt-comment-string opt-axiom_naming

readonly_logical-value_expr

axiom_naming ::=

[ id ]

Class Expressions

class_expr ::=

basic_class_expr |

extending_class_expr |

hiding_class_expr |

renayming_class_expr |

scheme_instantiation

Basic Class Expressions

basic_class_expr ::=

class opt-decl-string end

Extending Class Expressions

extending_class_expr ::=

extend class_expr with class_expr

Hiding Class Expressions

hiding_class_expr ::=

hide defined_item-list in class_expr

Renaming Class Expressions

renaming_class_expr ::=

use rename_pair-list in class_expr

Scheme Instantiations

scheme_instantiation ::=

scheme-name opt-actual_scheme_parameter

actual_scheme_parameter ::=

( object_expr-list )

Rename Pairs

rename_pair ::=

defined_item for defined_item

Defined Items

defined_item ::=

id_or_op |

disambiguated_item

disambiguated_item ::=

id_or_op : type_expr

Object Expressions

object_expr ::=

object-name |

element_object_expr |

array_object_expr |

fitting_object_expr

Element Object Expressions

element_object_expr ::=

array-object_expr actual_array_parameter

actual_array_parameter :: =

[ pure-value_expr-list ]

Array Object Expressions

array_object_expr ::=

[| typing-list  element-object_expr |]

Fitting Object Expressions

fitting_object_expr ::=

object_expr { rename_pair-list }

Type Expressions

type_expr ::=

type_literal |

type-name |

product_type_expr |

set_type_expr |

list_type_expr |

map_type_expr |

function_type_expr |

subtype_expr |

bracketed_type_expr

Type Literals

type_literal ::=

Unit |Bool |lnt |Nat |Real |Text |

Char

Product Type Expressions

product_type_expr ::=

type_expr-product2

Set Type Expressions

set_type_expr ::=

finite_set_type_expr |

infinite_set_type_expr

finite_set_type_expr ::=

type_expr-set

infinite_set_type_expr :: =

type_expr-infset

List Type Expressions

list_type_expr ::=

finite_list_type_expr |

infinite_list_type_expr

finite_list_type_expr ::=

type_expr*

infinite_list_type_expr ::=

type_expr*

Map Type Expressions

map_type_expr ::=

type_expr * type_expr

Function Type Expressions

function_type_expr ::=

type_expr function_arrow result_desc

function_arrow ::=

 | |

result_desc ::=

opt-access_desc-string type_expr

Subtype Expressions

subtype_expr ::=

{| single_typing pure-restriction |}

Bracketed Type Expressions

bracketed_type_expr ::=

( type_expr )

Access Descriptions

access_desc ::=

access_mode access-list

access_mode ::=

read |write |in |out

access ::=

variable_or_channel-name |

enumerated_access |

completed_access |

comprehended_access

enumerated_access ::=

{ opt-access-list }

completed_access ::=

opt-qualification any

comprehended_access ::=

{ access | pure-set_limitation }

Value Expressions

value_expr ::=

value_literal |

value_or_variable-name |

pre_name |

basic_expr |

product_expr |

set_expr |

list_expr |

map_expr |

function _expr |

application_expr |

quantified_expr |

equivalence_expr |

post_expr |

disambiguation_expr |

bracketed_expr |

infix_expr |

prefix_expr |

comprehended_expr |

initialise_expr |

assign ment_expr |

input_expr |

output_expr |

structured_expr

Value Literals

value_literal ::=

unit_literal |

bool_literal |

int_literal |

real_literal |

text_literal |

char_literal

unit_literal ::=

( )

bool_literal ::=

true |false

Pre Names

pre_name ::=

variable-name

Basic Expressions

basic_expr ::=

chaos |skip |stop |swap

Product Expressions

product_expr ::=

( value_expr-list2 )

Set Expressions

set_expr ::=

ranged_set_expr |

enumerated_set_expr |

comprehended_set_expr

Ranged Set Expressions

ranged_set_expr ::=

{ readonly_integer-value_expr ..

readonly_integer-value_expr }

Enumerated Set Expressions

enumerated_set_expr ::=

{ readonly-opt-value_expr-list }

Comprehended Set Expressions

comprehended_set_expr ::=

{ readonly-value_expr | set_limitation }

set_limitation ::=

typing-list opt-restriction

restriction ::=

readonly_logical-value_expr

List Expressions

list_expr ::=

ranged_list_expr |

enumerated_list_expr |

comprehended_list_expr

Ranged List Expressions

ranged_list_expr ::=

integer-value_expr .. integer-value_expr 

Enumerated List Expressions

enumerated_list_expr ::=

 opt-value_expr-list 

Comprehended List Expressions

comprehended_list_expr ::=

 value_expr | list_limitation 

list_limitation ::=

binding in readonly_list-value_expr

opt-restriction

Map Expressions

map_expr ::=

enumerated_map_expr |

comprehended_map_expr

Enumerated Map Expressions

enumerated_map_expr ::=

[ opt-value_expr_pair-list ]

value_expr_pair ::=

readonly-value_expr  readonly-value_expr

Comprehended Map Expressions

comprehended_map_expr ::=

[ value_expr_pair | set_limitation ]

Function Expressions

function_expr ::=

 lambda_parameter  value_expr

lambda_parameter ::=

lambda_typing |

single_typing

lambda_typing ::=

( opt-typing-list )

Application Expressions

application_expr ::=

list_or_map_or_function-value_expr actual_function_parameter-string

actual_function_parameter ( opt-value_expr-list )

Quantified Expressions

quantified_expr ::=

quantifier typing-list restriction

quantifier ::=

 | |

Equivalence Expressions

equivalence_expr ::=

value_expr  value_expr opt-pre_condition

pre_condition ::=

pre readonly_logical-value_expr

Post Expressions

post_expr ::=

value_expr post_condition opt-pre_condition

post_condition ::=

opt-result_naming post readonly_logical-value_expr

result_naming ::=

as binding

Disambiguation Expressions

disambiguation_expr ::=

value_expr : type_expr

Bracketed Expressions

bracketed_expr ::=

( value_expr )

Infix Expressions

infix_expr ::=

stmt_infix_expr |

axiom_infix_expr |

value_infix_expr

Statement Infix Expressions

stmt_infix_expr ::=

value_expr infix_combinator value_expr

Axiom Infix Expressions

axiom_infix_expr ::=

logical-value-expr infix-connective

logical-value_expr

Value Infix Expressions

value_infix_expr ::=

value_expr infix_op value_expr

Prefix Expressions

prefix_expr ::=

axiom_prefix_expr |

universal_prefix_expr |

value_prefix_expr

Axiom Prefix Expressions

axiom_prefix_expr ::=

prefix_connective logical-value_expr

Universal Prefix Expressions

universal_prefix_expr ::=

readonly_logical-value_expr

Value Prefix Expressions

value_prefix_expr ::=

prefix_op value_expr

Comprehended Expressions

comprehended_expr ::=

associative_commutative-infix_combinator

{ value_expr | set_limitation }

Initialise Expressions

initialise_expr ::=

opt-qualification initialise

Assignment Expressions

assignment_expr ::=

variable-name := value_expr

Input Expressions

input_expr ::=

channel-name ?

Output Expressions

output_expr ::=

channel-name ! value_expr

Structured Expressions

structured_expr ::=

local_expr |let_expr |

if_expr |case_expr |

while_expr |until_expr |

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5231
Авторов
на СтудИзбе
425
Средний доход
с одного платного файла
Обучение Подробнее