http://habrahabr.ru/post/272255/
Вот собственно и голографическая память на подходе для языка описания физической реальности (обработки буферов видео и звука). Привожу цитату:
Язык проектирования физической реальности
Мотиваця и история создания
Изучая исходники различных программ мне стало заметно что наряду с типами данных необходимы типы методов или процедур или функций. Я смог выделить несколько стереотипических типов, которые были связаны с автогенерацией кода. Этот подход требует относиться к объектам программирования как к реальным предметам. Даже придумал термин предметное программирование.
Однако, работа для реальных предметов это задача инженера. В то самое время я начал работать на кафедре САПР в МИЭТ в должности аспиранта, вместе с бывшим заведующим кафедр Казённов Геннадий Георгиевич (http://www.miet.ru/structure/s/233/e/1221/41). Он нам читал лекции по проектированию БИС. Из этого курса я знал о 7 уровнях проектирования ИС. Не сразу удалось разобраться в уровнях иерархии для классификации типов функций. Это было связано с довольно свободным подходом многих авторов программ к проектированию сущностей программ. Я попробовал провести параллели между уровнями проектирования и классами программных функций. У меня это получилось. Конечно многие существующие проекты по организации отличаются в порядке следования уровней найденной иерархии. Это можно объяснить так. Когда архитектор программного продукта начинает работать проще ему стартовать со средних уровней проектирования постепенно двигаясь сверху вниз или наоборот. Видимо эти движения и лежат в основе многих реализаций классов, процедур и модулей.
Позже были оформлены тезисы научного доклада для очередной конференции института. Но они по какому то недосмотру так и не попали в сборник студенческой межвузовской научной конференции. К слову на следующей конференции мы участвовали сразу в двух секциях и получили первое место за доклад в одной из них. Правда тема была более злободневная и менее фундаментальная — о самомаршрутизирующихся сетях типа Netsukuku. Позже, изучая язык Актив Оберон я с удивлением обнаружил, что в нём реализованы три первых уровня из моей классификации. Это дало мне уверенность, что я на верном пути и позволило приступить к написанию данной книги.
(Upd: Четвёртый уровень - Парсер в Актив Обероне был реализован Романченко Ярославом Михайловичем - http://sage.com.ua/ru.shtml?e1l5, к моделям 5 и 6 уровней имеет отношение работа Christoph Kleiner http://github.com/Ignat99/a2/blob/master/doc/FDD.R.pdf )
Основные уровни классификации операций
1. Объекты
2 Автоматы состояний.
3. Вычислители.
4. Парсер.
5. Физические устройства.
6. Таймер.
7. Целевая нить.
Введение в ПФР
Основное отличие философии ПФР от Актив Оберона это гиперобъёмное представление всех коллекций компонент и автоматическое накопление во входных и вспомогательных буферах действующих моделей окружающей реальности. Это похоже на работы обычных интерпретаторов и парсеров. Но важное отличие, это попытка парсера автоматически найти наиболее объемное представление модели реальных поступающих данных. Но возможна интерактивная модификация любой части найденной модели на любом уровне как во время процесса построения, так и позже. Только вообразите, возможно менять правила языка и правила обработки данных налету, на ваш вкус — всё это возможно в ПФР. Чтоб не путать компоненты ПФР с компонентами других вычислительных систем, будем называть их предметами.
Для сохранения предмета применяется запись статической информационной составляющей в проект, который храниться в распределённом кластере в вычислительном облаке. Части статической составляющей проекта могут быть собраны благодаря отдельному распределённому вычислительному процессу, представлены найтивным кодом различных платформ а могут быть приняты с сенсора или считаны из файла. Поэтому мы называем ПФР проективно-базовой системой.
Проективно-базовая природа ПФР проявляется при старте. По умолчанию основной трёхмерный дисплей сконфигурирован для вывода множества проектных транспарантов, к которым можно приблизиться и разглядеть детали проективного представления. Это могут быть гипергеометрические построения или текст или другие виды информации, такие как потоки излучения или вибрации, найтивные коды других систем и т.д.. На экран визора выводиться прицельная и другая системная информация. При приближении к отдельному транспаранту информация на визоре меняется на контекстные инструменты, подходящие для данного набора предметов и управляющих структур.
В ПФР имеются разные типы транспарантов. Один из основных это текстовый документ. В основном он содержит грамматически и фонетически обработанный текст. Или текст с дополнительной вспомогательной информацией в вспомогательном буфере. Это специальный предмет Текстовый Проект. Текст может быть на одном или нескольких языках. Полностью или частично формализованный или без формальных правил. Но в нём так же могут содержаться изображения или запущенные найтивные коды других систем, мы называем их так же вычислители.
Все проекты размещаются в рабочем пространстве или студии. Поддерживается модель отдельных иерархических ячеек, конечноэлементного разбиения по шаблонам и без, двойной вложенной сетки и простого совмещения или не смешивающего и перемешенного наложения и голографического совмещения. Поддерживаются так же различные модели 3D вывода информации в зависимости от типа используемого визора. Но наиболее информативной является обычное плиточное размещение транспарантов проектов. Размещение проектов производиться по эвристическим алгоритмам, например вычисляется наименьшая связанность или используется волновой или лучевой алгоритмы для формирования групп предметов и подсчёта коэффициента связанности. На практике для выбора проекта бывает достаточно подвести указатель к нужному предмету и нажать клавишу F1 для маркировки проекта звездой или достаточно просто приблизиться к проекту в студийном рабочем пространстве посредством манипулятора мышь или жеста, который регистрируется трёхмерным сенсором.
Концепция команд и инструментов
Сигнал это ключевой метод представления предметов. Не только входная и выходная информация может быть спроектирована сигналами, но часто и данные могут быть представлены в виде сигналов. Часто предметы могут быть идентифицированны по операционным кодам или шаблонным нарезкам сигналов. Поэтому сигнальные буферы это предопределенный класс предметов в ПФР.
Поля буферов содержат отпечатки командных сигналов, иногда с параметрами. Команды в ПФР сохраняются в следующей форме М.Р, где М это отпечаток сигнала модуля а Р это отпечаток операции предоставляемой этим модулем. Можно запустить указанную операцию просто кликнув средней кнопкой указателя над нужным отпечатком операции. Обычно результат можно наблюдать в одном из выходных буферов смесителя.
Метод запуска сигнала распознаётся по параметрам, которые передаются отпечатку. В целом отпечаток должен иметь совместимую геометрию для данного вида параметра. Иногда предметы прямо распознаються по расширению их сигнального отпечатка. Например System.Open распознаёт файл по расширениям .Text, .Panel, .Mod или другим.
Запускаемый сигнал может быть адресован как реальному предмету так и одинарной или сетевой ссылочной структурой, которая так же может быть представлена отпечатками и требовать вычислений в рабочем пространстве для «опредмечивания».
Для удобства используются специальные маркеры — тильда — указывает на завершения списка параметров. Стрелка вверх указывает на выделенный сигнальный буфер. Оператором зведа можно пометить любой предмет.
Предметы могут иметь список уже установленных обработчиков. Мы называем их инструментами.
При передаче предметы представляются сигналами в основном и вспомогательном буфере. Сигнал считается типа дерева парсера, которому удовлетворяет. Тип сигнала может расширен. Это позволяет создавать новые типы сигналов на основе существующих и связывать их. Предмет же или проекция реального предмета это отображение сигнала на вычислительную структуру.
Синтаксис
Язык это бесконечное множество предложений — предложений правильно оформленных в согласии с вспомогательным буфером, в котором содержится полное дерево разбора. Для описания синтаксиса в дереве разбора используется Расширенные Формы Бэкуса-Наура (EBNF).
В ПФР единицы компиляции образуются адресом или координатой основания дерева разбора и адресом или координатой одного из окончания любой ветви, то есть адресом или координатой листа, который образует шаблон сигнала, свободные места в этой последовательности заполняются лексическими символами из динамического словаря, который накапливается в принимаемом буфере и образуются последовательностью знаков. (Обратите внимание на разницу между символами и знаками.)
Словарь ПФР состоит из идентификаторов, чисел, строк, операторов, нарезок сигналов, координат в топологических деревьев разбора и размещения, разделителей и комментариев.
Шаблон сигнала это последовательность терминальных символов которая однозначно определяется двумя координатами — основания и вершины одной из подветви полного дерева. Эта последовательность обозначается строками заключенными в кавычки или словами написанными заглавными буквами так называемыми зарезервированными словами.
Заполнение шаблона сигнала синтаксическими сущностями (нетерминальными символами) обозначают словами, выражающими их интуитивное значение. Квадратные скобки [ и ] обозначают необязательность записанного внутри них выражения, а фигурные скобки означают { и } его повторение (возможно 0 раз).
Отметим что нетерминальный символ переводиться в терминальный на основании индекса повторяемости или ограничений на ветвление топологических деревьев. В любом случае нетерминальный символ будет подвергатся битовому анализу для попытки определить его в одну из групп: идентификаторов, чисел, строк, операторов различных языков, типичных отпечатков или нарезок сигналов, координат частей топологических деревьев разбора и размещения, разделителей, комментариев.
В каком то смысле это хаотический процесс и зависит от объема уже хранящихся отпечатков.
Словари и представления
Представление символов в терминальных знаках определяется с помощью набора UTF-8. Символы — это идентификаторы, числа, строки, операторы, нарезки сигналов, координаты в топологических деревьях разбора и размещения, разделители и комментарии. Будем в дальнейшем называть эту последовательность — символы.
1. Идентификаторы это последовательность букв и цифр. В целом это члены большого человеческого леса слов. Возможно представление просто координатой в общем дереве.
2. Числа. Существуют различные представления чисел. Например: на пальцах, римское, арабское, пиадические числа, системы числообразования характерные для французкого или испанского или непальского языка. Возможно представление просто координатой в частном дереве численного представления.
3. Символьная константа представляется знаком в одинарных кавычках но является позицией в таблице символов. Может быть представлена так же двумерным битовым массивом и процедурой распознания. Может быть представлена многомерным массивом или двойным вложенным массивом и неронной обученной сетью распознания символа. Так или иначе она ссылается на адрес в памяти.
4. Строка последовательность символов, заключенных в кавычки. Сигнал представляется аналогично, от части кодовой таблицы зависит диапазон представления сигнала. DTMF – наиболее простая и прямая форма представления смешения дискретных частот. Так же могут быть использованы свертки и числовые фильтры. Так же могут быть ссылки на аппаратные адреса, которые соответствуют аналоговым сенсорам или аналоговым фильтрам.
5. Операторы и разделители это специальные символы, пары символов, тройки символов и зарезервированные слова. Эти зарезервированные слова состоят исключительно из заглавных букв и не могут быть использованы в роли идентификаторов. Они хранятся в деревьях разбора.
6. Комментарии могут быть вставлены между любыми двумя символами в программе. Это произвольная последовательность символов начинающаяся с (* и заканчивающаяся *). Комментарии не влияют на смысл программы. Они могут быть вложенными.
Объявления и правила области видимости
Объявления проводят различия между константой, типом, переменной или процедурой.
Тут речь идёт о конструкции со знаком равно. Это может быть проведено на отдельном вычислительном ядре. С точки зрения архитектуры ядра это выставление на шине определённого сигнал и пересылка его в определённую область физической памяти с помощью устройства адресации или демультиплексора. Но так как это целая последовательность сигналов определённой конфигурации, то скорее всего будет использован DMA контроллер для пересылки.
Область видимости идентификатора, который объявлен заранее, распространяется текстуально от места объявления до конца блока (текущей процедуры или модуля).
Это связано с хранением в стеке адресов текущего блока. Как видим объявления это код который работает со стеком и контроллером пересылки и адресации. Причём запись работает только в записи. Это значит для сборки типа записи нужно проделать ряд пересылок. Видимо происходит дополнения записей в данной области видимости путем экспортирования из других областей.
В ПФР есть отличие — сборка записей происходит на основании не программы а входного буфера. Чтоб не повредить процесс в результате неинтерпертируемых входных данных все неинтерпретируемые данные временно считаються лексическими символами.
Объявления констант
Это обычный вычислительный блок, развёртывание сигнала всегда требует процесса в
ПФР.
Объявления типов
RECORD требует формирования битового подя. ARRAY требует формирования динамических списков. В целом эти две конструкции могут быть ассоциированы с узлами и ветвями деревьев данных. Указатель это аналог координаты в топологическом дереве, которая упоминалась выше. Процедурный тип данных это видимо указатель на результат вычислительного алгоритма над отдельным sub-деревом в лесу.
В ПФР к типам записи добавляется указатель физического источника и временного интервала. То есть область видимости имеет ещё и временное значение. Как правило в одну временную область помещается несколько областей видимости связанных с физическими устройствами. Для этого тело временного слота помечается модификатором TIME.X, а тело проекции физического устройства модификатором SPAICE.N. Где X некотрое подмножество времени, а N конкретное физическое устройство.
Основные типы
Обычные основные типы в ПФР: BOOLEAN, CHAR, INTEGER, REAL, LONGREAL, SET могут быть дополнены типом сигнала, который есть комбинация пространственных и временных частот и диапазонов значений. То есть является комбинацией встроенных символов, каждый из которых является идентификатором набора соответствующих частот. Подходящий частотный базис (отображение) подбирается на основе проекции или отсчетов входного или сохраненного в буфере или файле сигнала.
Остаётся добавить, что использование оптики и электроники совместно это не открытие. Аналогичные физические явления использовались для оптического прицельного комплекса танка для ракет земля-земля ещё в далёком 1980 году и серийно выпускалась на Оптико-механических заводах бывшего СССР.
Словарь
арб — амбар
баб — женьщина
бай — спать, быстро говорящий человек
бак — лужа
бан — бант, украсить
бах — говорить
бел — сметана
бёл — утро
бёр — корзина
бис — посиделки
бло — ловкий, блоха
бор — бороздка
бра — уздечька
брю — живот
бря — бередить
буя — большой
вад - общаться
ван — лес
вел — называть
вер — наверняка
весь — горсть обработанного льна
веш — вешалка
вёд — погода
вёр — верёвка
взв — группа
вив — принимать роды
вил — хвост
виль — вилы
вин — яровые культуры
вит — обитать
виц — прут
вод — водящий
вой — огромный
вол — улица, волость
выб — вскочить
вык — практический навык
выр — опрокинуть
ган — мост
гат — валина
ген — подпорка
гла — гладить
гли — глина
глу — старый
гля — зритель
гов — плохой
год — год
гол — веник
гон — пастбище
гор — изба
гре — ругань, греет
гро — гром
гру — костер
гум — усадьба
дар — хорошо
даш — спорый
дво — двор
дел — искусственный
дён — день
донь — площадка для молодьбы
дуб — здоровье
дуд — мелкое, негодное
дук — пристройка при входе
дум — быстрый в изготовлении
ес — есть
жар — уголь
жах — теплый
жать — собираться
жид — недать
жит — ячмень
жох — пламя
жон — пирог
жум — жмурки
зав — завтро
зал — большая комната
зан — занавеска
здо — смерть
зим — зима
зить — кричать
зыб — ходить вверх, вниз
зыбка — люлька
зык — таскать
иск — часть, искать
ист — протопка
иух — блин
каж — каждый
кал — путник
кам — кухня
кар — лежанка
кат — катание
кать — доить
ква — квасить
кла — куринное гнездо
кня — конёк на крыше
кок — кресный отец
кол — около
ком — деревенское представление
кон — род
коп — землекоп
кор — короб
коч — кочан
кор — тайно
кре — перекрёсток
кро — кролик
кул — отдельный
кун — покойник
кур — топить
курь — курица
кос — коса
кук — крючёк
кун — хитрый
куть — прихожая
лас — участок земли
лат — воздушный змей
лен — ленточный фундамент
лёж — лежать
лет — лето
леть — потеть
ло — лицевая стена печи или избы
лоб — торец
лоп — одеяло
лои — низина
лон — лоно
лох — пуганный
луб — плетёная из щопы
ляд — болезнь
лял — кукла
лян — рослый
лык — дуршлаг
маз — красивый
ман — работать
мас — идти
меж — межа
мес — место
мёт — стог
мок — кусок
мол — молоко
морь — морковь
мох — болото
мта — птица
муж — мужик
мус — думать
муш — недоуздок
нар — нарочно
ник — знаный
ниц — капуста
нов — новая
нок — петух
нуш — ватрушка
нять — хлопотать
обр — уздечка
ого — ограда
око — глаз
олг — отсыреть
окр — круг
паль — пламя
пан — еда
паножиться — кушать, резать хлеб
пар — чётно
пас — пастьба
пат — обувь
пать — шить, кушать
пач — кинуть
пер — подарок
пёл — соломенная стена
пёр — перёд
пёт — каша
пёч — печка
пер — вставлять
пет — устать
под — чердак
пол — опавший лес
пом — помощь
пос — после
пуп — пупок
пря — прялка
пуш — оконный или дверной блок
пшо — пшено
пыт — пытаться
раж — лучший
ран — ранее
рец — предсмертный вздох
рёд — план выпаса скотины
рёз — порез
ржа — ржаной
ров — словно
роз — розвязни
рос — роса
рош — умный
рык — плакать
ряд — одежда
ряж — артист
рян — нарядный
ряп — пища
све — свет
сём — девушка
сим — возлюбленный
скл — празднование
сён — сено
сил — сила
смы — обмыть покойника
сне — снежный покров
соб — отдельно, самостоятельно, собственность
сол — озеро
соч — сочень
стл — настил
сто — хводщ
стр — воз
стя — простокваша
скр — скрыть
сун — посуда
суп — собрание баб
там - там
тель — матрас
теп — тепло
теш — игрушка
тём — темно
тир — полотенце
тог — посох
тои — родить
тор — сумка
ткн — дотронуться
тык — жердь
туп — ступенька
тур — нерасколотое полено
тут — тут
туш — полный
тую — часто
тын — огород
тюш — тмин
тят — отец
час — часто, лучина
чис — календарь
чос — дранка
чот — пара
чуя — слышать
шах — свидетель на свадьбе
швы — привозить дрова
шив — шить
шит — мячь
шон — ведро с ушами
щоп - щепа
цель - много
цеп — шест
хар — маска
хиз — холодный ветер
хать — махать
хол — возделанный под посев участок земли
хор — сказать
хот — стричься
хто — кто
ызъя — изьян