Инструменты пользователя

Инструменты сайта


ob:oberon2

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
ob:oberon2 [2016/03/31 09:58]
иван_денисов создано
ob:oberon2 [2020/10/29 07:08] (текущий)
Строка 1: Строка 1:
-Оберон-2 является расширением языка программирования [[ob:oberon|Оберон]] в котором добавлены открытые массивы, базовые типы указателей, поля доступные при экспорте только для чтения, восстановлен упраздненный ранее оператор FOR. элементы метапрограммирования (ограниченная рефлексия) и удобства для объектно-ориентированного программирования, +====== Oberon-2 ======
  
  
- Модуль = MODULE идент ";" [СписокИмпорта] ПослОбъявл [BEGIN ПослОператоров] END идент "."+**Оберон-2** является расширением языка программирования [[ob:oberon|Оберон]в котором добавлены //открытые массивы//, //базовые типы указателей//, поля доступные при экспорте //только для чтения//, восстановлен упраздненный ранее оператор **FOR**
- СписокИмпорта  = IMPORT [идент ":="идент {"," [идент ":="] идент} ";"+ 
- ПослОбъявл = { CONST {ОбъявлКонст ";" } | TYPE {ОбъявлТипа ";" } | VAR {ОбъявлПерем ";" }} {ОбъявлПроц ";" | ОпережающееОбъяв";"}. + 
- ОбъявлКонст = ИдентОпр "=" КонстВыраж. +==== Компиляторы и среды разработки ==== 
- ОбъявлТипа   = ИдентОпр "=" Тип. + 
- ОбъявлПерем = СписокИдент ":" Тип. +  [[ob:freeoberon|Free Oberon от Артура Ефимова]] 
- ОбъявлПроц    = PROCEDURE [Приемник] ИдентОпр ормальныеПарам]";" ПослОбъявл [BEGIN ПослОператоров] END идент. +  * [[ob:voc|VOC from Norayr Chilingarian]
- ОпережающееОбъяв = PROCEDURE "^" [Приемник] ИдентОпр [ФормальныеПарам]. +  * [[ob:ofront|Ofront]] 
- ФормальныеПарам = "(" [СекцияФП {";" СекцияФП}] ")" [":" УточнИдент]. +  [[ob:ofrontplus|Ofront+]]
- СекцияФП = [VAR] идент {"," идент} ":" Тип. +
- Приемник = "(" [VAR] идент ":" идент ")"+
- Тип = УточнИдент | ARRAY [КонстВыраж {"," КонстВыраж}] OF Тип | RECORD ["("УточнИдент")"] СписокПолей {";" СписокПолей} END | POINTER TO Тип | PROCEDURE [ФормальныеПарам]. +
- СписокПолей  = [СписокИдент ":" Тип]. +
- ПослОператоров = Оператор {";" Оператор}. +
- Оператор = [ Обозначение ":=" Выраж +
- | Обозначение ["("писокВыраж] ")"+
- | IF Выраж THEN ПослОператоров {ELSIF Выраж THEN ПослОператоров} [ELSE ПослОператоров] END +
- | CASE Выраж OF Вариант {"|" Вариант} [ELSE ПослОператоров] END +
- | WHILE Выраж DO ПослОператоров END +
- | REPEAT ПослОператоров UNTIL Выраж +
- | FOR идент ":=" Выраж TO Выраж [BY КонстВыраж] DO ПослОператоров END +
- | LOOP ПослОператоров END +
- | WITH Охрана DO ПослОператоров {"|" Охрана DO ПослОператоров} +
- [ELSE ПослОператоров] END +
- | EXIT +
- | RETURN [Выраж] ]. +
- Вариант = [МеткиВарианта {"," МеткиВарианта} ":" ПослОператоров]+
- МеткиВарианта = КонстВыраж [".." КонстВыраж]. +
- Охрана = УточнИдент ":" УточнИдент. +
- КонстВыраж   Выраж. +
- Выраж   ПростоеВыраж [Отношение ПростоеВыраж]. +
- ПростоеВыраж   ["+" | "-"] Слагаемое {ОперСлож Слагаемое}. +
- Слагаемое = Множитель {ОперУмн Множитель}. +
- Множитель = Обозначение ["(" [СписокВыраж] ")"] | число | символ | строка | NIL | Множество | "(" Выраж ")" | " ~ " Множитель. +
- Множество = "{" [Элемент {"," Элемент}] "}"+
- Элемент = Выраж [".." Выраж]. +
- Отношение   "=" | "#" | "<" | "<=" | ">" | ">=" | IN | IS. +
- ОперСлож = "+" | "-" | OR. +
- ОперУмн = "*"/" | DIV | MOD | "&"+
- Обозначение = УточнИдент {"." идент | "[" СписокВыраж "]" | "^" | "(" УточнИдент ")"}. +
- СписокВыраж = Выраж {"," Выраж}. СписокИдент = ИдентОпр {"," ИдентОпр}. +
- УточнИдент = [идент "."идент. ИдентОпр = идент "*"-" ].+
ob/oberon2.1459407488.txt.gz · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)