Информация об изменениях

Сообщение Re[14]: понимание ООП Алана Кея от 24.03.2023 12:50

Изменено 24.03.2023 12:58 vdimas

Re[14]: понимание ООП Алана Кея
Здравствуйте, Ночной Смотрящий, Вы писали:

V>>Фиговость проистекает из очевидного — CLI-машинка разрабатывалась не как привязанная конкретно к языку C#.

НС>Что это меняет в контексте разговора?

Ничего.
Твоё замечание о конкретике было верным, но мой пример как более общий тоже неплохо работает.


V>>Если бы привязанность была,

НС>Если бы у бабушки ...

Конкретика, конкретика...
Я отсылал коллегу к хорошо ему знакомому.
Мне этот пример не требовался.


V>>Это был просто пример, который показывает суть — не всегда требуется хранить граф AST в явном виде.

НС>Пример чего? Тебе вроде бы сказали простую вещь — либо в платформе код как данные это first class citizen, либо нет.

Expression<T> и его наследники не являются first class citizen.
С т.з. языка это "пользовательские типы данных".
В общем, требование first class citizen надуманное.
Рассуждать можно лишь о наличии такой реализации или нет.
Или о наличии нескольких реализаций.
Тебе никто не запретит расписать свою независимую иерархию-аналог, вклинившись через Рослин в компиляцию.


НС>Бла-бла-бла не по теме скипнуто.


Смотря какая тема.
Если тема конкретно байт-кода дотнета — то в контексте обсуждения не принципиально.

Зацепились-то за AST и его "явное представление".
Пахнуло дотнетом, угу. ))

А на деле, например, при компиляции функциональных языков граф вычислений никогда не живёт в памяти целиком, просто потому что этого не требуется.
Я не раз уже обращал внимание твоё, Влада2 и Вольфхаунда, что в промышленных решениях чаще используют оперативную обработку графов, вместо сливания в бутылочное горлышко и разливание затем обратно. Даже в случае ленивых языков, цепочка бета-редукции работает именно над стековой машинкой и её итерирование происходит как показал картинкой последовательность обхода графа — т.е. в сериализованном виде. При оперативной обработке граф живёт только в голове разработчика, никогда не занимая память на все свои развесистые связи целиком, где стоимость хранения связей порой выше стоимости хранения целевых данных. ))
Re[14]: понимание ООП Алана Кея
Здравствуйте, Ночной Смотрящий, Вы писали:

V>>Фиговость проистекает из очевидного — CLI-машинка разрабатывалась не как привязанная конкретно к языку C#.

НС>Что это меняет в контексте разговора?

Ничего.
Твоё замечание о конкретике было верным, но мой пример как более общий тоже неплохо работает.


V>>Если бы привязанность была,

НС>Если бы у бабушки ...

Конкретика, конкретика...
Я отсылал коллегу к хорошо ему знакомому.
Мне этот пример не требовался.


V>>Это был просто пример, который показывает суть — не всегда требуется хранить граф AST в явном виде.

НС>Пример чего? Тебе вроде бы сказали простую вещь — либо в платформе код как данные это first class citizen, либо нет.

Expression<T> и его наследники не являются first class citizen.
С т.з. языка это "пользовательские типы данных".
В общем, требование first class citizen надуманное.
Рассуждать можно лишь о наличии такой реализации или нет.
Или о наличии нескольких реализаций.
Тебе никто не запретит расписать свою независимую иерархию-аналог, вклинившись через Рослин в компиляцию.


НС>Бла-бла-бла не по теме скипнуто.


Смотря какая тема.
Если тема конкретно байт-кода дотнета — то в контексте обсуждения не принципиально.
При завязке только на C#, байт-код дотнета мог бы состоять только из помещения значений и литералов на стек и вызовов ф-ий (методов).
Это было бы точное сериализованное представление AST, взаимно однозначное с его представлением в виде графа.

Зацепились-то за "явное представление" AST.
Пахнуло дотнетом, угу. ))

А на деле, например, при компиляции функциональных языков граф вычислений никогда не живёт в памяти целиком, просто потому что этого не требуется.
Я не раз уже обращал внимание твоё, Влада2 и Вольфхаунда, что в промышленных решениях чаще используют оперативную обработку графов, вместо сливания в бутылочное горлышко и разливание затем обратно. Даже в случае ленивых языков, цепочка бета-редукции работает именно над стековой машинкой и её итерирование происходит как показал картинкой последовательность обхода графа — т.е. в сериализованном виде. При оперативной обработке граф живёт только в голове разработчика, никогда не занимая память на все свои развесистые связи целиком, где стоимость хранения связей порой выше стоимости хранения целевых данных. ))