Основные концепции
1. Пересмотрена и формализована вся система, архитектура процессора, язык программирования и технология программирования составляющее единое целое и основанная на базовых трех (трех) понятиях.
2. Синтаксис языка представлен одной (одной) формулой разбора, и включает в себя средства определения контекстно-свободных грамматик.
3. Область памяти представляется не двоичными кодами, а объектами (концептами) в едином формате. Т.е. адресация в машине происходит не к абстрактной ячейке памяти с двоичным кодом, а к концепту (объекту) или его контенту (который так же концепт) имеющего семантический смысл и единый формат.
Реализован принцип – все есть концепт. И операторы тоже. С этой точки зрения парадигму можно назвать субъектно-ориентированной.
4. События определены как изменение состояния памяти высказыванием (выражением, понятием). Определение истинности высказывания является метафункцией относительно высказывания, потому может выполняться параллельно и не только императивно, но и методом логического разбора (как в Прологе).
5. Взаимодействие между концептами осуществляется с помощью подписок, которые содержат реакцию на событие (команда или группа команд).
6. Работа виртуальной машины (ВМ) заключается в адресации концептов (возможно, с параметром) и анализом адресуемого концепта на наличие подписок. В случае наличия подписок, происходит проверка на выполнение событий, указанных в подписках и переход на реакцию, в случае если событие произошло.
Нечто похожее на прерывание по адресу концепта. Потому нет необходимости в операторе If и команд перехода.
Булевы переменные служат для хранения результата определения истинности высказывания. Так как у нас нет необходимости сохранять этот результат, то нет необходимости и в булевых переменных.
7. Загрузка, создание и удаление объектов, динамическая проверка типов параметров и семантический анализ протокола обмена осуществляется ВМ.
8. Организация взаимодействия концептов заключается в формировании подписок желаемым образом, без изменения самих взаимодействующих концептов. Т.е. функционирование системы может настраиваться удаленно и динамически без изменения самих объектов, управляя подписками.
9. Управление системой универсально так как структура данных единая и содержание каждого контроллера легко визуализируется в виде текста, элементов управления, таблиц или в любом другом виде удобном для применения пользователем.
10. Так как из выполняемых действий в виртуальной машине остается только адресация, а проверка на выполнение событий это выражение (выполнение выражения не изменяет память), то такая организация позволяет выполнять адресацию одновременно к нескольким концептам. Т.е. на нескольких процессорах. Непосредственно выполнение операций (вычисления) превращаются во второстепенную роль. Основную функцию выполняет адресация.
11. Smart-адресация позволяет адресоваться к объектам и его контенту при изменении их расположения (что происходит при удалении и создании новых объектов и подписок) и независимо даже от архитектуры процессора.
12. Удачная проработка системы занимает сейчас 14кб. И это с текстовыми хелпами и именами. Что позволяет устанавливать ее на контроллеры.
13. События можно рассматривать как персептроны, (где выражение в качестве функции активации), а подписки – синапсами. В таком представлении имеем нейронную сеть (ИИ) с интегрированным управлением устройствами.
14. Из особенностей языка-допускается наличие контента, не описанного в классе.
15. Протокол обмена представляет собой обмен концептами, классы которых описаны в приемнике и передатчике, потому универсален и прост так как структура каждой транзакции сформулирована в описании класса передаваемого концепта.
Пример. Вычисление наибольшего общего делителя НОД
Выражение Nod Integer Nod a ~ b? { ‘Создаем группу из 2-х подписок > {a=a-b Nod} ‘Подписка на событие>. Вычитание и переход на выражение Nod <{a=b-a Nod} ‘Подписка на событие <. Вычитание и переход на выражение Nod } При адресации выражения Nod выполняется сравнение а и b (операция «~»), и затем проверяется группа подписок (Знак «?») на события > и <, после чего запускаются соответствующие реакции на эти события.
Реакции заключаются в вычитании из большего значения меньшего и адресация самого себя (Nod) для повторения процесса сравнения. Если ни одно событие не выполнилось, то вычисления прекращаются.
Работа нижнего уровня
Нижний уровень это универсальный контроллер с физическими датчиками, интерфейсами и исполнительными устройствами, называемые в разных источниках «конечными устройствами», «Контроллерами» «Платами» и т.п.
В моей терминологии это элементы комплекта (в комплект входит до 16 элементов комплекта).
При таком подходе работа с нижним уровнем выполняется так:
1. Загрузка системы (System), которая описывает формат концептов, виртуальной машины выполняющей арифметические команды и диспетчера событий запускающий подписки на события при адресации к концепту.
2. Загрузка классов устройств, интерфейсов и автоматов для предполагаемых объектов.
3. Создание необходимых объектов в контроллере. Тут важный момент в том, что объекты создаются при настройке в контроллере, и снаружи нет информации об их физическом размещении.
4. Подключение устройств к интерфейсам (с помощью механизма подписок) и создание автоматов.
Таким образом, созданное устройство является «черным ящиком» и взаимодействует с другими «черными ящиками» исключительно с помощью подписок на события.
Взаимодействие организуется управляющим устройством, которое имеет ту же систему (формат концептов), что и контроллер и по этой причине может визуализировать полностью состояние устройства (контроллера).
Организация взаимодействия заключается в формировании подписок на необходимые события, запускающих либо адресацию к группе команд, либо к свойствам, либо к событиям.
|