OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 03 Июль, 2020 16:30

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




Начать новую тему Ответить на тему  [ Сообщений: 52 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Яос
СообщениеДобавлено: Воскресенье, 31 Май, 2020 02:10 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 243
Александр Ильин писал(а):
ЕСЛИ фраер ТИПА ВНатуреЛох ТО ЗУБДАЮ(фраер.атветит)

Что у вас за область такая предметная, и кто заказчик? :wink:

ПС
if (fraer instanceof VNatureLokh) { if (!fraer.otvetit) { throw 0; } }

И КТО после этого будет говорить, что c/++/java Может хоть попробовать начать состязаться с КП по выразительности?!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Яос
СообщениеДобавлено: Воскресенье, 31 Май, 2020 21:19 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 420
adimetrius писал(а):
Александр Ильин писал(а):
ЕСЛИ фраер ТИПА ВНатуреЛох ТО ЗУБДАЮ(фраер.атветит)

Что у вас за область такая предметная, и кто заказчик? :wink:

ПС
if (fraer instanceof VNatureLokh) { if (!fraer.otvetit) { throw 0; } }

И КТО после этого будет говорить, что c/++/java Может хоть попробовать начать состязаться с КП по выразительности?!

Зря вы латиницей то, ибо Freier. А уж об исходном значении "термина" даже не заикнусь ;-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Яос
СообщениеДобавлено: Вторник, 02 Июнь, 2020 20:06 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 432
Sergej Durmanov писал(а):
PSV100 писал(а):
В А2, вроде бы, внедрили объявление переменных по месту, фактически, секция дефиниций в заголовке процедуры перед BEGIN ненужна.

Но это не так - у declaration section и declaration statement существенно разная семантика и они не могут адекватно заменить друг-друга.

В нюансах не разбираюсь, но предположительно, скорее всего, ключевое в инициализаторах данных: в случае declaration statement нет скрытой инициализации, если при объявлении переменной не указано значение.

В современных формализмах без declaration section стараются сейчас предусматривать всегда неявную инициализацию, если нет начального явного значения. Также требуется явно задавать нечто вроде undefined в качестве инициализации для указания "ничего не делать".
Есть решения с дополнительным ограничением, предусматривающем declaration statement только в начале блока/области. В отличие от Модула (где VAR...BEGIN...END произвольно вложенные) при этом не возникает потребности в новой вложенности.
Но такие потенциальные решения, конечно, не для простого "перевода" (если вдруг гипотетически убирать declaration section).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Яос
СообщениеДобавлено: Вторник, 02 Июнь, 2020 20:12 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 432
Относительно недавно на форуме Дракон-а была любопытная ссылка на презентацию, ниже выдержка оттуда:
https://forum.drakon.su/viewtopic.php?f=62&t=6784&view=next#p104390
Вложение:
luna.png
luna.png [ 21.53 КБ | Просмотров: 341 ]

Это некая система моделирования dataflow (нечто вроде как Active Cells из A2). В презентации фрагменты текстового формализма основаны на каком-то своём базисе, отличном от исходного (https://luna-lang.org/). Может быть в статейке иная "луна", не в курсе.
В общем, формальный тезаурус неизвестен. Тем не менее, интуитивно можно предположить:

* "cf" -- скорее всего что-то связано с потоком, вероятно заимствовано из "финансовой" математики -- от "cash flow". Через "cf" объявляются или "инстанцируются" активные ячейки, организующие поток работ (операции);
* "df" -- вряд ли непосредственно понимается как некая дефиниция (обычно обозначаемая как def), скорее -- дифференциал, мол приращение функции -- результаты работ (операнды).

Ключ. слово "sub" распространено. Причём, вероятно, вполне возможно под подпрограммами/процедурами подразумевать "автомат с состоянием", отличая от прочих функций через fn ("комбинаторный автомат"). Если вдруг введут диффуры для имитационного моделирования, то в загашнике найдётся распространённое "der".

Всё кратенько и понятно, причём всем "локализациям" (видимо, потому что в данном случае не без математики...). Гипотетически для прочих ЯП можно запросто заимствовать "df" вместо даже "длинных" var, val, mut или mut val и т.п.
Тот же sub вполне сгодится, например, для объявления процедур, "привязанных" к типу. Объявление процедурного типа (указателей на процедуры) для "методов" могло бы быть также через sub в виде "sub(...)..." вместо "procedure{delegate}(...)..." или "procedure (...)... of object", "reference to procedure(...)..." (а под fn подразумевались бы обычные функции, без скрытого параметра-ссылки на связанные данные).

В сегодняшнее время, при наличии кругом всякого нового, условно rust-образного, потенциальные пользователи Яос, скорее, захотят "конкурентноспособный" формализм, как-то уж тяжеловато быть с "коболом" вида "конец_цикла_когда" и т.п.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Яос
СообщениеДобавлено: Вторник, 02 Июнь, 2020 20:16 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 432
budden писал(а):
Я как (бывший) лиспер привык ставить по 9 закрывающих скобок в конце функции без переноса строки, не вижу тут никакой беды. Долой строки, заполненные одной буквой! В целом - не имею ресурсов для безудержного творчества (я всё это проходил, когда Яр вымучивал, и остались плохие ощущения), отмечу лишь, что в юникодом можно обойтись без перегрузки смысла скобок - скобок ещё можно надыбать каких надо. А ужать язык до плотности нейтронной звезды всё равно не выйдет. Например, идея отказаться от then весьма стрёмная. И так он избавил нас от лишних круглых скобок.

Ранее был примерчик на Zimbu с "закрывающей" фигурной скобкой. Попробуем его переделать на манер Яос (восстановив "then", "do", ";", с добавлением начального BEGIN):
https://forum.oberoncore.ru/viewtopic.php?f=22&t=6599&start=20#p111974
Код:
 PROC Main() int
 VAR bool  writeNewline = TRUE;
   string  sep = "";
   bool    didFirst;
 BEGIN
   FOR arg IN ARG.getRawList() DO
     IF !didFirst && arg == "-n" THEN
       writeNewline = FALSE
     ELSE
       IO.write(sep .. arg);
       sep = " " §
     didFirst = TRUE §
   IF writeNewline THEN
     IO.write("\n") §
   RETURN 0 § Main;

Если "§" заменить на оригинальную обратную фигурную скобку, то, вероятно, крышу сорвёт поболее. Для тех, кто привык к "паскалевским структурам", скобка хотя бы привычнее, если она будет на отдельной строке. Однако, прежде всего, "паскалисты" захотят "оканчивать" по ключевому слову, на любой продвинутый юникодный символ, скорее, обидятся...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Яос
СообщениеДобавлено: Пятница, 05 Июнь, 2020 19:10 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1092
Откуда: Киев
PSV100 писал(а):
Также требуется явно задавать нечто вроде undefined в качестве инициализации для указания "ничего не делать".
В каких языках?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Яос
СообщениеДобавлено: Вторник, 09 Июнь, 2020 18:34 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 432
Comdiv писал(а):
PSV100 писал(а):
Также требуется явно задавать нечто вроде undefined в качестве инициализации для указания "ничего не делать".
В каких языках?

Например, Zig (используется непосредственно ключ. слово "undefined" в качестве инициализатора), Jai (специальное значение "---").


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Яос
СообщениеДобавлено: Вторник, 09 Июнь, 2020 22:52 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1092
Откуда: Киев
Пожалуй, Zig в этом отношении выглядит неплохо. Более того, видно, что автор понимает неопределённое поведение куда лучше, чем в среднем по больнице
Цитата:
Zig uses undefined behavior as a razor sharp tool for both bug prevention and performance enhancement.
...
Carefully chosen undefined behavior. For example, in Zig both signed and unsigned integers have undefined behavior on overflow, contrasted to only signed integers in C


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Яос
СообщениеДобавлено: Пятница, 12 Июнь, 2020 20:28 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 871
Реализовал русские ключевые слова и идентификаторы в кириллице. Идентификаторы в кириллице можно использовать и с английскими ключевыми словами тоже. Меня уже поругали два человека за лиспо-питоновский стиль отступов, поэтому сразу поясняю: язык, применённый в ЯОС - это не Активный Оберон. Просто он случайно совпадает с АО на 99,99% :)


Вложения:
АОсКириллицей.png
АОсКириллицей.png [ 69.79 КБ | Просмотров: 169 ]


Последний раз редактировалось budden Пятница, 12 Июнь, 2020 20:40, всего редактировалось 1 раз.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Яос
СообщениеДобавлено: Пятница, 12 Июнь, 2020 20:39 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 871
Список ключевых слов на момент написания живёт где-то тут:

gitlab.com/budden/jaos/-/blob/яос/source/FoxScanner.Mod#L1524


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Яос
СообщениеДобавлено: Суббота, 13 Июнь, 2020 11:15 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 871
Выложил вирт. машину с собранной ЯОС. Ссылка здесь:

http://вече.программирование-по-русски.рф/viewtopic.php?f=5&t=244&p=1371#p1371


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Яос
СообщениеДобавлено: Суббота, 27 Июнь, 2020 22:08 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 871
Внедрил "яроклаву", т.е. использование пробела в качестве модификатора для ввода латиницы, а также режим подчёркивания всей латиницы.

С этим режимом будет невозможно перепутать с и c. И эта проблема, и проблема переключения раскладки - это важные проблемы, которые приводят к тому, что кириллица и русский язык вытесняются из ИТ. Теперь для них есть приемлемые решения, внедряй - не хочу.

На этом завершается очередной этап проекта Яос и можно приступать к созданию инструмента для полумашинного перевода исходных текстов.


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

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


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

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


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

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