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

Сообщение Re[10]: понимание ООП Алана Кея от 23.03.2023 12:11

Изменено 23.03.2023 12:12 vdimas

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

НС>Там не совсем тот P-код. Там просто упакованноое в удобное для интерпретации представление AST было


Там коды "инструкций" Бейсика.
Просто инструкции высокоуровневые.


НС>а в описываемых Паскалях это был машинный код виртуального CPU, как сейчас в Java и дотнете.


Немного не понимаю, почему прицепились именно к Паскалю? ))
Технология впервые была использована в другом языке.
Широко исопльзовалась и используется тоже в других языках.

Мой поинт был в отделении понятия "язык программирования", как совокупности ситнаксиса и семантики от способа реализации этой семантики на стадии исполнения кода, потому что в представлении Синклера одно плохо отделимо от другого.

Я не согласен, ес-но.
Взять тот же С++, в нём рефлексия предоставляется некоторыми компиляторами — clang и одним из бранчей gcc.
Так же давно есть независимые фронтенды С++, которые дают на выходе AST.
Есть портируемые бэкенды llvm и wasm, а так же все либы по интроспекции объектных файлов.
Т.е. "вклиниться" в код можно на любой стадии, от AST до бинарных кодов.

Спекулировать тут можно только насчёт того, что в том же дотнете рефлексия и ExpressionTree идут в базовой поставке и являются частью стандарта, а в С++ это дополнительный инструментарий, завязанный на конкретные реализации такого инструментария. Тут бы я не спорил, но дал бы ту информацию, что работа по стандартизации рефлексии в C++ давно идёт, ожидается в стандарте С++23.
Re[10]: понимание ООП Алана Кея
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Там не совсем тот P-код. Там просто упакованноое в удобное для интерпретации представление AST было


Там коды "инструкций" Бейсика.
Просто инструкции высокоуровневые.


НС>а в описываемых Паскалях это был машинный код виртуального CPU, как сейчас в Java и дотнете.


Немного не понимаю, почему прицепились именно к Паскалю? ))
Технология впервые была использована в другом языке.
Широко использовалась и используется тоже в других языках.

Мой поинт был в отделении понятия "язык программирования", как совокупности ситнаксиса и семантики от способа реализации этой семантики на стадии исполнения кода, потому что в представлении Синклера одно плохо отделимо от другого.

Я не согласен, ес-но.
Взять тот же С++, в нём рефлексия предоставляется некоторыми компиляторами — clang и одним из бранчей gcc.
Так же давно есть независимые фронтенды С++, которые дают на выходе AST.
Есть портируемые бэкенды llvm и wasm, а так же все либы по интроспекции объектных файлов.
Т.е. "вклиниться" в код можно на любой стадии, от AST до бинарных кодов.

Спекулировать тут можно только насчёт того, что в том же дотнете рефлексия и ExpressionTree идут в базовой поставке и являются частью стандарта, а в С++ это дополнительный инструментарий, завязанный на конкретные реализации такого инструментария. Тут бы я не спорил, но дал бы ту информацию, что работа по стандартизации рефлексии в C++ давно идёт, ожидается в стандарте С++23.