Комментарий к «К теме анализа компьютерных языков»от serj_aleks в metamodeling

/// развернутые мысли ///

Ну не знаю, чего тут разворачивать, я ж не вчёный, я фрик ;)

Сверхсжато:
программеры привыкли работать-с-кодом внутри одного high/full-trust realm, имплицитно сбрасывая вопросы безопасности на админов (и devops так и не смог решить проблему)

***** ****** ****
Есть [как минимум] три семантических механизма изоляции:

1) доступ к исходникам (модули делятся на манифесты и реализацию (было развито ещё в Modula и Ada)
фабула: другой программист не узнает ничего сверх переданного ему манифеста (но теоретически может угадать/вычислить или случайно продублировать)

2) make/link объектное связывание:
фабула: если изолировать внутр пространство данных линкера от клиентов и ввести криптозащиту на подписки/манифесты/манглинг и т.п., то можно регулировать линковку модулей так же, как доступ к файлам в ФС через ACL. Собственно, идеология управляемого кода (manageable code) примерно из этого и выводилась, вот только актуальный состав заморочек по ходу пьесы сильно изменился.

3) runtime — изоляция вызовов/обращений не только между задачами, но и внутри задач, средствами ОС/аппаратуры (вплоть до аппаратной поддержки public/private access scope в архитектурах i432 и др);
по факту гибче всего это можно делать в виртмашинах (вкл JVM)

***** ***** *****
Во всяких там Lisp, Smalltalk, с оговорками в Prolog/Erlang и др. … код равнодосутпен с данными, и в теории может модифицировать сам себя. Соотв если мы боимся, что производные типы/классы смогут испортить базовые в самом их определении (исходниках), то появляется некоторый смысл просто заблокировать наследование на уровне синтаксиса.

Ну или нарастить семантику тривиальных visibility/access scopes public/private/protected/internal гипер-слоем initial/derived/persistent/selfmod/[etc.].

***** ***** *****
В пределе у нас все упомянутые выше слои/уровни "жизни" кода (или правильнее кодо-данных) выродятся в один.
Любой программирующий/кодирующий/управляющий агент (
… … человек, студент, индус,
… … авторефакторер/маскарадер,
… … компилятор, оптимизатор,
… … линкер, брокер, диспетчер vcalls
… … JIT, автоген, селфмод, вирус, антивирус
… … VM, дебаггер, песочница)
… должны обитать в некоем гигантском universum namespace …

/* возможно гетерогенном, т.е. несколько "параллельных" склееных-между-собой пространств с различными синтаксисом/семантикой; напр:
-- абсолютные inodes
-- древовидные pathnames
-- облачные tag-sets
-- виртуальные softlinks-как-константы
-- виртуальные softlinks-как-функции (fuzzy, xQL, прочий unix-way)
*/

… с соотв Access Control с развитой семантикой (как минимум view/read/modify, плюс дополнит create/delete/inherit/etc.)

***** ***** *****
Как-то так, для близиру.

Посмотреть обсуждение, содержащее этот комментарий

Error

Anonymous comments are disabled in this journal

default userpic

Your reply will be screened

Your IP address will be recorded