OberonCore

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему  [ Сообщений: 649 ]  На страницу Пред.  1 ... 25, 26, 27, 28, 29, 30, 31 ... 33  След.
Автор Сообщение
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 14:16 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1166
budden писал(а):
Мы видим, что в подавляющем большинстве языков слово "procedure" сокращено.
давай будем честными: большинство языков сдизайнены или никак, или очень плохо. и многие решения там диктовались прежде всего скоростью парзера, а потом привычкой (как в гошечке, например).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 14:21 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1166
budden писал(а):
Тебя же не коробит, что операция деления занимает аж целый значок. Почему бы вместо "/" не писать "DIVIDE" или "поделить"? Тогда значок можно высвободить для чего-то более полезного.
ну так мы в паскалях и оберонах так и пишем: `DIV`. по поводу которого я выше сказал, что немного коробит сокращение, но пусть, вот формулы перегружать лишними буквами не стоит.

budden писал(а):
Надеюсь, я обосновал, что использование слова "procedure" - это не более чем условность и вкусовщина, и как таковая может быть заменена на что угодно, вопрос лишь в готовности переучиваться или в неготовности.
да конечно вкусовщина, я особо с этим моментом и не спорил. вопрос личных эстетических предпочтений.

budden писал(а):
Ну если не обосновал, то всё равно, больше добавить по теме мне нечего. Кроме того, что если мы обратим внимание на человеческие языки, то увидим, что "I", "you", "and" и соответственно, "я", "ты", "и" - кратчайшие слова. Почему? Потому что они часто используются. Человеческий язык оптимизирован по частотам. Нет никакого смысла делать часто употребляемое длинным - нужно забрать короткие имена для часто употребляемых, тогда процесс общения будет более энергетически выгоден.

Слово "procedure" злостно, вопиюще нарушает это правило. Но понятно, что для любви пофигу энергетическая эффективность, надо лишь признаться, что это в данном случае именно она, а не какая-то объективность.
а вот это не совсем корректное сравнение. я в приципе никогда не набираю `PROCEDURE` полностью, мне лень. я пишу `proc` и стукаю пробел — а остальное делает магическое дополнение к редактору. при разговоре же таких магических дополнений нет, там приходится каждый раз все слова полностью произносить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 14:45 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1565
Так в разговоре две стороны - передающая и принимающая. И мне что-то кажется, что затраты энергии на понимание даже речи могут быть выше затрат на её издание. В печати-чтении - тем более. Якобы зрительный анализатор - это 40% энергозатрат мозга.

Код:
вот формулы перегружать лишними буквами не стоит.

Это соглашение из тех времён, когда выкладки делали на доске или на бумаге. Поскольку выкладки большие, писать "energy" вместо E означало бы замедлить переписывание формулы в 6 раз. Сегодня можно про формулы говорить ровно то же, что и про алгоритмы, и кстати, вот формула из моего проекта:

Код:
(defun VAd (TInitial PInitial PFinal VInitial gamm)
  (/ (* PInitial VInitial (TAd TInitial PInitial PFinal gamm))
     (* TInitial PFinal)))

В ней смесь принятых сокращений (P,T,V) и слов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 14:46 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1565
> сдизайнены или никак, или очень плохо.

Возможно. Я пытался сделать лучше, поэтому сразу сортирую все языки по тем недостаткам, которые в них есть. В меру своего понимания, которое на самом деле ограничено - я не осилил некоторые языки, например Haskell и Rust. Хотя у меня есть отговорки для обоих случаев, но не очень убедительные.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 16:07 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1166
budden писал(а):
Код:
вот формулы перегружать лишними буквами не стоит.
Это соглашение из тех времён, когда выкладки делали на доске или на бумаге.
я имел в виду замену значков операций на длинные слова. DIV и MOD в принципе оправданы тем, что в ASCII нет общепринятых значков для целочисленного деления и остатка (и очень жаль). процент для остатка не предлагать. ;-)

budden писал(а):
я не осилил некоторые языки, например Haskell и Rust
в принципе, я тоже. то есть, осилил достаточно чтобы понять, что там рыбы нет. о функциональных языках я вообще мнения очень невысокого (вот когда у нас будут функциональные процессоры вместо императивных — тогда с ними и приходите), а Rust просто дизайнили воинственные недоучки (и поэтому понаступали почти на все возможные ошибки дизайна).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 16:18 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1166
budden писал(а):
Так в разговоре две стороны - передающая и принимающая. И мне что-то кажется, что затраты энергии на понимание даже речи могут быть выше затрат на её издание. В печати-чтении - тем более. Якобы зрительный анализатор - это 40% энергозатрат мозга.
именно поэтому мозг его адово оптимизирует. когда мы книги читаем на хорошо знакомом языке — мы же не читаем буквы: мы читаем слова, а иногда даже целые фразы. и тут, кстати, `PROCEDURE` лучше, чем `PROC` — потому что могзу вообще не надо детально анализировать образ, достаточно того, что «это длинная фигня». всё, на этом месте мозг останавливается и выдаёт результат: «это `PROCEDURE`».

сишечку, кстати, из-за отсутствия маркера процедур вообще читать очень сложно: как раз приходится анализировать семантику, заместо кинуть глазом — и сразу границы процедур видно. поэтому в сишечном коде часто отбивают функции несколькими пустыми строками или стандартной шапкой комментария, которая бросается в глаза (см., например, исходники idTech какого-нибудь).

ну да, есть отступы, и что без отступов — то граница. не знаю, лично я всё равно быстрее сканирую с длинным словом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 16:39 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 293
Откуда: Russia
budden писал(а):
Но вот я кстати не знаю, как A2 в виде приложения решает этот вопрос. Возможно, это знает Сергей Дурманов и он напишет, если прочитает эту тему. Сергей?

В А2 нет такой проблемы. Так как для чужих соглашений о вызове теги не генерируются и сборщик кадр стека не обрабатывает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 16:48 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1565
Sergej Durmanov писал(а):
budden писал(а):
Но вот я кстати не знаю, как A2 в виде приложения решает этот вопрос. Возможно, это знает Сергей Дурманов и он напишет, если прочитает эту тему. Сергей?

В А2 нет такой проблемы. Так как для чужих соглашений о вызове теги не генерируются и сборщик кадр стека не обрабатывает.

Что-то выглядит слишком просто для правды. А разве нет функций обратного вызова, которые реализованы в A2 и которые бы ОС вызывала?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 16:51 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1565
> `PROCEDURE` лучше, чем `PROC` — потому что могзу вообще не надо детально анализировать образ, достаточно того, что «это длинная фигня».

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

> сишечку, кстати, из-за отсутствия маркера процедур вообще читать очень сложно:

Да, там оптимизировали за счёт ухудшения других качеств. Но там и без этого всё плохо из-за неестественного порядка слов. Я её привёл не как пример того, как хорошо, а просто как крайнее значение в ряду.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 16:54 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1565
> о функциональных языках я вообще мнения очень невысокого

У функциональщины есть свои плюсы. Как и во всём, проблемы начинаются, когда это доводят до фанатизма. Хаскель как раз является тому каноническим примером, но я верю, что в нём есть что-то хорошее, потому что мне об этом говорили более компетентные компьютерные полиглоты (знающие все ЯП, что и я, плюс ещё и другие, и на хорошем уровне). Ну и всё сильно зависит от того, какой смысл вкладывать в это понятие - оно такое же неоднозначное, как понятие об ООП.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 17:41 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1166
Sergej Durmanov писал(а):
В А2 нет такой проблемы. Так как для чужих соглашений о вызове теги не генерируются и сборщик кадр стека не обрабатывает.
там все стековые кадры линкуются, что ли? так это ж довольно расходно. ну ладно, не очень, но всё равно надо писать текущую базу в глобал при входе и выходе. а если этого не делается, то тогда нет способа гарантировано гулять только по своим кадрам же: связь по EBP — это чисто добрая воля системных библиотек, полагаться на которую несколько опрометчиво.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 17:46 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1166
budden писал(а):
У функциональщины есть свои плюсы.
вне сомнений. это очень забавная гимнастика для мозга, которая позволяет посмотреть на вещи иначе. в этом плане оно хорошо. но для реальных практических применений — увольте.

budden писал(а):
Хаскель как раз является тому каноническим примером, но я верю, что в нём есть что-то хорошее
ghc. он очень, очень большой — а значит очень хороший! ;-)

собственно, размер ghc — вполне достаточный фактор, чтобы на хаскель серьёзно не смотреть никогда. если оно для приемлемой (не хорошей, просто приемлемой) работы требует вот такого неподъёмного чудовища — то совершенно очевидно, что это прикольный мысленный эксперимент, который ни в коем случае, никогда, ни за что не надо использовать на практике.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 17:57 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1166
я, кстати, довольно активно использовал Схему, пока мне не надоело. до сих пор с пол-десятка разных реализаций Схем (собственноручно сделаных, в смысле) валяется. включая, кажется, даже компилятор в нативный x86.

а надоело мне потому, что однажды я долго думал — и не смог найти ни одной разумной причины предпочесть Схему другим языкам. ну, кроме понтов. в теории, конечно, «всё на свете список» красиво, но на практике даже в Схеме это уже не так: почти все Схемы компилируют функции в байт-код. а также дают векторы, хэш-таблицы, и прочие средства подальше от списков убежать.

ещё на Dylan смотрел: это такая прикольная Схема, только с синтаксисом для человеков. это даже можно использовать для простого скриптования. но особо смысла нет: компилятор оберона для скриптов написать, пожалуй, даже проще. ;-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 19:15 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 293
Откуда: Russia
budden писал(а):
Что-то выглядит слишком просто для правды. А разве нет функций обратного вызова, которые реализованы в A2 и которые бы ОС вызывала?
Такие функции тоже помечены соответствующим соглашением.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 19:18 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 293
Откуда: Russia
arisu писал(а):
там все стековые кадры линкуются, что ли? так это ж довольно расходно. ну ладно, не очень, но всё равно надо писать текущую базу в глобал при входе и выходе. а если этого не делается, то тогда нет способа гарантировано гулять только по своим кадрам же: связь по EBP — это чисто добрая воля системных библиотек, полагаться на которую несколько опрометчиво.
у каждой активности свой стек, у нее же и root для сборщика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 19:53 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1565
arisu писал(а):
budden писал(а):
У функциональщины есть свои плюсы.
вне сомнений. это очень забавная гимнастика для мозга, которая позволяет посмотреть на вещи иначе. в этом плане оно хорошо. но для реальных практических применений — увольте.

Иммутабельность (как один из принципов ФП) хороша для многих задач (не для всех), в т.ч. активно применяется в СУБД. А вот "всё есть список" мало имеет отношения к базовым идеям ФП, с какой стороны не посмотри. Схема же, на мой взгляд, непрактична среди лиспов, я долгие годы фанател от Common Lisp и до сих пор его утрату нечем возместить, несмотря на его болячки, которых там тоже вполне достаточно. Другой подобной технологии в природе всё же не существует, и Оберону до него далеко. Другое дело, там по-другому компромиссы нарезаны и с производительностью неустранимые проблемы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 20:01 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1565
Sergej Durmanov писал(а):
budden писал(а):
Что-то выглядит слишком просто для правды. А разве нет функций обратного вызова, которые реализованы в A2 и которые бы ОС вызывала?
Такие функции тоже помечены соответствующим соглашением.


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 20:31 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1166
Sergej Durmanov писал(а):
у каждой активности свой стек, у нее же и root для сборщика.
я не очень понял. когда A2 работает в режиме приложения под другой ОС, и я вызываю системную библиотеку, передавая ей как колбэк обероновскую функцию, и системная библиотека изнутри себя вызывает обероновскую функцию — то что происходит? у нас больше нет стека, которым мы полностью владеем, поэтому безопасно по нему гулять больше нельзя. это как-то решается, или просто надеемся, что системные библиотеки формируют стековые кадры правильно?

p.s.: я не ёрничаю, если что, прошу прощения, если так выглядит. мне действительно интересно, а в компилятор/ядро лазить сложно.


Последний раз редактировалось arisu Четверг, 14 Сентябрь, 2023 20:40, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 14 Сентябрь, 2023 20:37 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1166
budden писал(а):
А вот "всё есть список" мало имеет отношения к базовым идеям ФП
прошу прощения, я довольно непрозрачно пишу иногда. тут я просто вспомнил Схему, а потом вспомнил принцип «всё есть список», а потом меня понесло.

budden писал(а):
Схема же, на мой взгляд, непрактична среди лиспов
я бы сказал, что лиспы в принципе… но это опять холивор будет. ;-) у Схемы есть (было, точнее, её разными RxRS окончательно добили) то преимущество, что она маленькая, простая, и просто же реализуется.

budden писал(а):
Другой подобной технологии в природе всё же не существует
да пожалуйста: форт, смолтолк. первый ближе, второй чуть дальше. смолтолк даже типизировать пытались в стронгтолке.

а, и self ещё, конечно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Пятница, 15 Сентябрь, 2023 05:13 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 293
Откуда: Russia
budden писал(а):
Вероятно, я не совсем тут компетентен. Но правильно я понимаю, что там должна генерироваться какая-то обёртка, которая отмечает, что этот кадр является корнем сборки мусора, а по завершении выполнения - что он перестаёт являться таким корнем? И плюс к тому нужно учесть ситуацию, когда возникает исключение (т.е. по идее он должен перехватывать все исключения и делать соответствующую раскрутку).

Нет никаких оберток, нет тегов стеке, есть метаданные о всех сущностях а2, хранящиеся отдельно.
При обработке исключения, произошедшего в процедуре а2, именно метаданные позволяют распечатать информацию о содержимом кадра.
Кроме того, в а2 используются барьеры записи для пометки указателей.
Что касается функций обратной записи, если кто-то дергает процедуру в а2, то очевидно это какой-то сторонний процесс, а не активность а2.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 649 ]  На страницу Пред.  1 ... 25, 26, 27, 28, 29, 30, 31 ... 33  След.

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


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

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


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

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