OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 12:06

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Среда, 26 Ноябрь, 2014 13:59 

Зарегистрирован: Суббота, 06 Июнь, 2009 07:52
Сообщения: 329
snuk писал(а):
Приветствую ваше сообщество. Начал разбираться с КП и ББ, вроде бы и суть понятна и теория, и читая Вирта так же понимаю о чем речь, но я никак не могу найти внятный синтаксис к языку, по этой причине не понимаю как вообще начать писать что либо на нем. Нигде не могу найти даже описания что значит ":=". И уж тем более нигде нету ничего о MOD.

Запускаете BlackBox, жмете клавишу F1, в строке поиска вводите := или MOD, в открывшемся списке находите Docu/CP-Lang.odc или Docu/CP-New.odc, прочитываете абзацы, нажимая F3.

Когда ищете MOD, то набирайте с пробелом, чтобы не искать MODULE.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Вторник, 15 Январь, 2019 09:08 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
А почему n := 10MOD 3 нормально, а n := 10DIV 3 -ошибка?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Вторник, 15 Январь, 2019 09:35 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 987
Откуда: Казань
Trurl писал(а):
А почему n := 10MOD 3 нормально, а n := 10DIV 3 -ошибка?

Формат вещественных чисел может выражать экспоненту через E или через D, то есть 10D парсится как вещественное число, а затем идет неожиданная буква I вместо +, - или числа.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Вторник, 15 Январь, 2019 17:40 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 592
Строго бы и 10MOD должно быть ошибкой: не число(содержит не цифры, не E) и не идентификатор (начинается не с буквы).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Вторник, 15 Январь, 2019 20:41 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Rifat писал(а):
Формат вещественных чисел может выражать экспоненту через E или через D

Нет, вещественне дожны быть с точкой. Здесь шестнадцатеричные. Но вопрос надо было сформулировать по-дугому, не "почему", а "зачем".
Для единообразия надо в̶ы̶к̶р̶а̶с̶и̶т̶ь̶ либо сделать ошибочным 10MOD (10IN, 1TO и т.п), либо делать откат в 10DIV (10BY, 1END... ).
Я бы согласился с Artyemov, а то получаем такие забавные штуки:
Код:
FOR i:=0TO 10HBY 1 DO s[i]:=5XEND;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Вторник, 15 Январь, 2019 22:04 
Аватара пользователя

Зарегистрирован: Вторник, 28 Август, 2007 00:55
Сообщения: 518
Откуда: Украина, Днепропетровская обл.
Trurl писал(а):
Я бы согласился с Artyemov
Коллеги, присоединяюсь. А то получается "назад к Фортрану".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Среда, 16 Январь, 2019 15:15 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Обнаружил все три возможных варианта:
  • догматический: Oxford Oberon принимает 1DIV и т.п.;
  • ревизионистский: XDS отвергает все в духе ISO Modula-2;
  • диалектический: большинство компиляторов следуют традициям ETH
.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Среда, 16 Январь, 2019 15:39 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Artyemov писал(а):
Строго бы и 10MOD должно быть ошибкой
Строгость -- мать надёжности.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Среда, 16 Январь, 2019 20:15 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Если под строгостью подразумевть точное следование грамматике из описания языка, то надо принимать 10DIV. Но не зря в модуле и в аде ввели обязательные разделители.

Кстати, в питоне и бейсике можно 1if, 2and, 3or, а вот 4else нельзя.

А в хаскеле тоже прикольно
Код:
f 1x=x
f 2x=x*x


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Четверг, 17 Январь, 2019 10:23 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Под строгостью я понимаю строгость следования принципу DIVIDE ET IMPERA:

По умолчанию разделяем.
Если не разделяем, хотя это легко можно сделать, то надо доказывать, почему.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Четверг, 17 Январь, 2019 10:45 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
а в EBNF разделитель между литералом и оператором обязательный или опциональный? Наверное опциональный, иначе пришлось бы делать `1 + 1` вместо `1+1`.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Четверг, 17 Январь, 2019 11:33 

Зарегистрирован: Вторник, 27 Февраль, 2018 09:18
Сообщения: 73
Пётр Кушнир писал(а):
а в EBNF разделитель между литералом и оператором обязательный или опциональный? Наверное опциональный, иначе пришлось бы делать `1 + 1` вместо `1+1`.

Info21 писал(а):
Строгость -- мать надёжности.


Поэтому никаких `1+1`. Только `1 + 1`, только хардкор.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Четверг, 17 Январь, 2019 13:37 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Не, хардкор - это когда "( ( 1 + x ) * 2 )".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Четверг, 17 Январь, 2019 13:41 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Пётр Кушнир писал(а):
а в EBNF разделитель между литералом и оператором обязательный или опциональный?

До пробелов EBNF не доходит.
Сообщение о языке писал(а):
Пробелы и концы строк не должны появляться внутри лексем (за исключением комментариев, а также пробелов в литерных цепочках). Они игнорируются, если они не нужны для разделения двух последовательных лексем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Четверг, 17 Январь, 2019 14:31 

Зарегистрирован: Пятница, 20 Июль, 2007 17:26
Сообщения: 710
Откуда: Псков
Trurl писал(а):
Не, хардкор - это когда "( ( 1 + x ) * 2 )".

или скобки не там, или не "догоняю" :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Четверг, 17 Январь, 2019 15:04 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Иногда хочетца выпить уже йаду.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Четверг, 17 Январь, 2019 15:49 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
albobin писал(а):
или скобки не там, или не "догоняю" :(

чтобы все было разделено пробелами, как в форте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Четверг, 17 Январь, 2019 17:23 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 592
Trurl писал(а):
Не, хардкор - это когда "( ( 1 + x ) * 2 )".

Не, ну тут по классике: бережёного бог бережёт, как сказала монашка, надевая презерватив на свечку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Четверг, 17 Январь, 2019 22:31 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Дисциплина ещё никому не помешала.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синтаксис КП
СообщениеДобавлено: Пятница, 18 Январь, 2019 09:24 

Зарегистрирован: Пятница, 20 Июль, 2007 17:26
Сообщения: 710
Откуда: Псков
Artyemov писал(а):
Trurl писал(а):
Не, хардкор - это когда "( ( 1 + x ) * 2 )".

Не, ну тут по классике: бережёного бог бережёт, как сказала монашка, надевая презерватив на свечку.

Просто я видел истинный хардкор в "( 1 + ( x * 2 ) )"
:)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB