OberonCore
https://forum.oberoncore.ru/

Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x86
https://forum.oberoncore.ru/viewtopic.php?f=30&t=6344
Страница 12 из 17

Автор:  budden [ Вторник, 17 Август, 2021 18:28 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Ну хорошо, больше не буду мешать, тем более, что мне нечего добавить к вышесказанному.

Автор:  Trurl [ Вторник, 17 Август, 2021 19:01 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Oleg N. Cher писал(а):
Пока что обоснования по поводу ухудшения диагностики ошибок из-за отсутствия ";" прозвучали, но они лично для меня неубедительны. Позиция ошибки, что ли, уплывает в отчёте? Нет, она не уплывает, остаётся такой же.

А после ошибки? Если собираетесь останавливаться на первой, проблем нет.

Автор:  Trurl [ Вторник, 17 Август, 2021 19:07 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Илья Ермаков писал(а):
Учитывая, что в 99% случаев на практике оператор заканчивается на конце строки, то аналогия с предложениями неподходящая.

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

Автор:  adimetrius [ Вторник, 17 Август, 2021 19:32 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

А каков посыл к тому, чтобы выпиливать ";" как разделитель операторов? Для чего это?

И еще, я правильно понял, что где-то там есть 4 страницы, описывающие формальные правила, позволяющие отказаться от ";" как разделителя? Т.е. Language Report для Оберон-3 подрастет на 3-4 страницы?

Автор:  Oleg N. Cher [ Вторник, 17 Август, 2021 20:04 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Trurl писал(а):
А после ошибки? Если собираетесь останавливаться на первой, проблем нет.
А в чём проблема, если не собираемся останавливаться на первой?

Изображение

У меня одного стойкое ощущение, что контраргументы просто высосаны из пальца?

adimetrius писал(а):
А каков посыл к тому, чтобы выпиливать ";" как разделитель операторов? Для чего это?
Устал повторять: так исходники смотрятся чище. А запутать и сделать малочитаемыми можно и с разделителем.

adimetrius писал(а):
И еще, я правильно понял, что где-то там есть 4 страницы, описывающие формальные правила, позволяющие отказаться от ";" как разделителя? Т.е. Language Report для Оберон-3 подрастет на 3-4 страницы?
Нет, Вы неправильно поняли. Фразу "; необязательный разделитель" нет смысла рассусоливать на 4 страницы.

Это в Go всё иначе.

Я полагаю, что Language Report для Оберон-3 никогда не будет создан. Это так, самопальное творчество. Не беспокойтесь очень по этому поводу.

Автор:  adimetrius [ Вторник, 17 Август, 2021 23:21 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Oleg N. Cher писал(а):
У меня одного стойкое ощущение, что контраргументы просто высосаны из пальца?

Это вы так обесцениваете контраргументы?

Oleg N. Cher писал(а):
adimetrius писал(а):
А каков посыл к тому, чтобы выпиливать ";" как разделитель операторов? Для чего это?
Устал повторять: так исходники смотрятся чище.
Субъективный критерий, вы не находите?

Что 4 страницы не понадобится - понял.

Еще про аргументы: мне субъективно не нравится текст без разделителей, поэтому я подыскиваю объективные аргументы против такой грамматики.

Пример меньшей устойчивости:
TYPE P = PROCEDURE (): P;
VAR p, q: P;
p := q
R()
И вот я случайно, редактируя, удаляю букву R, и смысл программы меняется. Пример, конечно, надуманный, но все же он есть.

Автор:  Oleg N. Cher [ Среда, 18 Август, 2021 02:22 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

adimetrius писал(а):
Это вы так обесцениваете контраргументы?
Ну да, именно. Потому что цитаты из каких-то священных писаний про то, что из-за отсутствия будет трудно выделять несколько ошибок подряд, не выдерживают проверки практикой. А они всё равно священны.

А там без разницы, есть ли ";" - потому что он в коде OP2 проверяется только для того, чтобы сгенерировать ошибку при его отсутствии!

adimetrius писал(а):
Субъективный критерий, вы не находите?
Неа, не нахожу. Чище есть чище. Вы же не пишете после каждого предложения трёхточие? Оно нужно редко. А точка часто. А в Обероне проще объяснить, что разделитель необязателен, чем объяснять, где его можно опустить (перед END и т.д.). Экономятся ценные страницы.

adimetrius писал(а):
И вот я случайно, редактируя, удаляю букву R, и смысл программы меняется. Пример, конечно, надуманный, но все же он есть.
Антон, вот я случайно удаляю скобки в R() и вызов функции превращается в обращение к переменной или константе. Ну вот как теперь с этим жить? А можно ещё придумать подобных примеров.

Автор:  Wlad [ Среда, 18 Август, 2021 08:31 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Смолтокеры смотрят на все эти околоточкосзапятённые страдания с лёгкой иронией...

Вложения:
pharoCheatSheet.pdf [554.21 КБ]
Скачиваний: 121

Автор:  Trurl [ Среда, 18 Август, 2021 08:50 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Wlad писал(а):
Смолтокеры смотрят на все эти околоточкосзапятённые страдания с лёгкой иронией...

В фортране тоже никаких проблем c ";".

Автор:  Trurl [ Среда, 18 Август, 2021 08:58 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Код:
  a := calc(n+1) 1 + calc(n+2) + calc(n+3)

Автор:  Trurl [ Среда, 18 Август, 2021 09:03 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Oleg N. Cher писал(а):
Устал повторять: так исходники смотрятся чище.

А мне кажется, наоборот. Но если нравится, можно и двоеточие убрать по примеру го.

Автор:  Oleg N. Cher [ Среда, 18 Август, 2021 09:23 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Так. Ни двоеточий, ни запятых я убирать не буду. А в Вашем коде постом повыше ошибка.

Автор:  adimetrius [ Среда, 18 Август, 2021 11:03 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Oleg N. Cher писал(а):
adimetrius писал(а):
Это вы так обесцениваете контраргументы?
Ну да, именно.

Для меня это признак конца дискуссии.

Автор:  Wlad [ Среда, 18 Август, 2021 12:39 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Trurl писал(а):
В фортране тоже никаких проблем c ";".
не, ну Вы - сравнили! Я, конечно, понимаю, что Фортран - заслуженная числодробительная кувалда, но как-то её с самОй квинтэссенцией выражения и поддержки принципов ООП, рядом ставить... как-то несколько не эстетично даже! Не говоря о приличиях...

Автор:  Trurl [ Среда, 18 Август, 2021 20:58 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Oleg N. Cher писал(а):
А в Вашем коде постом повыше ошибка.

Ну дык! И как её обработает компилятор?

Автор:  Александр Ильин [ Четверг, 19 Август, 2021 02:02 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Илья Ермаков писал(а):
В современных правилах, например, . не ставится в конце заголовка. Перед ) не ставятся, даже если внутри скобки несколько предложений.
Илья, я что-то сомневаюсь насчёт точки перед скобкой. Можете ссылку на правило найти?

Автор:  Илья Ермаков [ Четверг, 19 Август, 2021 12:06 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Александр Ильин писал(а):
Илья Ермаков писал(а):
В современных правилах, например, . не ставится в конце заголовка. Перед ) не ставятся, даже если внутри скобки несколько предложений.
Илья, я что-то сомневаюсь насчёт точки перед скобкой. Можете ссылку на правило найти?


Хм, может быть. я и ошибся:
https://orfogrammka.ru/%D0%BF%D1%83%D0% ... %BC%D0%B8/

"2. Точка, вопросительный и восклицательный знаки, многоточие ставятся перед закрывающей скобкой , если они относятся к конструкции, заключенной в скобках:"

По поводу вопросительного, восклицательного и многоточия-то понятно - они ставятся и перед закрывающей скобкой.
Что-то практического употребления точки перед скобкой не могу припомнить. Дико смотрится.
Видимо, если я использовал скобки в центре предложения - и внутри них есть несколько предложений.
Ааа аааа (Ааа. Ббб.) оооооо.

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

Автор:  Александр Ильин [ Четверг, 19 Август, 2021 19:39 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Илья Ермаков писал(а):
Александр Ильин писал(а):
Илья Ермаков писал(а):
В современных правилах, например, . не ставится в конце заголовка. Перед ) не ставятся, даже если внутри скобки несколько предложений.
Илья, я что-то сомневаюсь насчёт точки перед скобкой. Можете ссылку на правило найти?

Хм, может быть. я и ошибся
Ты прав, что в заголовках точка не ставится.
В скобках (когда они используются) точки ставятся в том случае, когда предложение началось и закончилось в скобках. (Вот так, например.) Другими словами, скобки могут быть вокруг одного или нескольких предложений. (В этом случае каждое предложение пишется как обычно. Со всеми знаками препинания, с большой буквы и т. д.) Либо же скобки могут быть внутри предложения (тогда это просто альтернатива выделению запятыми или тире с двух сторон, а не самостоятельное предложение), и тогда содержимое не выделяется заглавными буквами и прочим. Можно сделать восклицание (sic!) или вопрошание (но зачем?), однако не с заглавной буквы.

Нельзя (внутри скобок закончить одно предложение и начать другое. Это ошибка.). Если нужно взять в скобки несколько предложений, они все должны начать и закончиться полностью внутри скобок. Это насколько я знаю. Буду рад, если кто-то поправит или дополнит.

Автор:  Wlad [ Пятница, 20 Август, 2021 03:03 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Коллеги, а - что, вообще, здесь происходит?
Вы послушайте только себя!:
Один "о моде" и "тенденциях" "на счёт употребления точки с запятой" говорит, другой - про какие-то "необязательность их написания" и "равнозначность с концом строки"...

Вы - о чём?
КАКАЯ "мода"? КАКИЕ ""тенденции"? КАКАЯ "необязательность"????
Вы - об оберонах?

Я почему и привёл табличку с синтаксисом pharo! Просто - как образец однозначного и минималистичного описания синтаксиса языка, с ясными и чёткими идеями и целями. Если и это - не иллюстрация, то - пожалте, - можно ещё меньше: https://github.com/pavel-krivanek/pharoMaterials/blob/master/postcard/pharo%20syntax%20postcard%20-%20a4.pdf Заметьте, что там - совершенно ни при чём "мода"или "необязательность", при совершенно ясном и непротиворечивом, законченном синтаксисе.

Относительно оберонов - просто по идеологии их построения, НЕ ДОЛЖНО появляться даже намёка на мысль о "необязательности" какого-то элемента синтаксиса. Он - либо обязательно ставится в данном месте, либо, никто даже не заикается о возможности его появления здесь.

Дикси.

Автор:  Oleg N. Cher [ Пятница, 20 Август, 2021 09:45 ]
Заголовок сообщения:  Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8

Trurl писал(а):
Ну дык! И как её обработает компилятор?
Да так же, как и с ";" обработал бы, тем более, что ";" там нет.

Изображение

Wlad писал(а):
Относительно оберонов - просто по идеологии их построения, НЕ ДОЛЖНО появляться даже намёка на мысль о "необязательности" какого-то элемента синтаксиса. Он - либо обязательно ставится в данном месте, либо, никто даже не заикается о возможности его появления здесь.
Извините, а как насчёт необязательности ";" перед END?

И интересно было бы услышать Вашу мысль по поводу убирания таки засоряющего исходник разделителя и восприятия "слитых в кучу" конструкций типа a := b b := a c := d
- мы ведь не будем заставлять программиста "мельчить", разнося это по разным строкам?

Получается, что этот разделитель нужен больше человеку - из-за особенностей восприятия. А не компилятору.

Страница 12 из 17 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/