Для интересующихся новыми концепциями

1.	Введение

Я сегодня хотел бы остановиться на одной серьезной проблеме, которую, как мне кажется, решил или как минимум, на пути к решению.
Перед тем как программист примется за свое любимое дело, обычно происходит формулировка решаемой задачи. Проблема возникает как раз в этом месте. Ибо возникает необходимость организовать свои (а еще проблемнее когда чужие) мысли в виде алгоритмов и объектов. Т.е. в форму, которую «понимает» компьютер. Этот язык однозначен и жестко регламентирован, чего не скажешь о том, что творится  в голове, даже если она собственная. А если это голова заказчика, то проблем возникает еще больше. Формулируется это как «семантическая разница» между языком и мышлением человека и языком компьютера. 
Попытки приблизить образ мышления человека и компьютера реализованы в так называемых декларативных  языках. Например, в языке Prolog (парадигма логического разбора) и в функциональном программировании Lisp, Nemerle (функциональная парадигма).  Я предложу свое решение, объединяющее некоторые из этих парадигм и заодно нейронные сети.

2.	События. Высказывания. Понятия.

Для начала сформулируем определение события. Интуитивно мы понимаем и даже успешно работаем с событиями, но я здесь выскажу свои соображения, и начнем с истины по Тарскому.
 «Высказывание Р истинно тогда и только тогда, когда "Р"» 
Это не масло масляное, а глубокая или простая мысль в зависимости от интеллекта читателя и я немного на ней остановлюсь.
Высказывание «Снег белый» может быть и истинным и ложным в зависимости от того какой, собственно, цвет снега.  Т.е. вопрос об истинности высказывания решается на другом логическом уровне, а не в самом высказывании. Это говорит об иерархичности семантики языка. Бертран Рассел писал об логических уровнях. Но, мы эту философию пропустим, а поговорим о программировании и компьютерах. Набор всех высказываниях (базовый набор) о памяти ограничен (=0, >0 и т.п.)  Так вот проверка этих (и других) высказываний и назовем событием.  (Это определение требует развернутого анализа, но это сделаем позже).
Любое высказывание в программировании это выражение. Любое выражение, в конечном счете, сводится к анализу памяти, и к  базовому набору высказываний. Имя этого выражения можно назвать новым событием или понятием. Так, например, события Key_Down и Key_Up это не что иное, как проверка на ноль или единицу. Приобретая новое имя, событие приобретает новый семантический смысл, оставаясь тем же процессом проверки ячейки памяти.
Одновременно с приобретением нового смысла событие порождает новое понятие. Так, например, понятие Positive есть не что иное, как событие >0. Осталось два шага до понимания, что такое логический разбор и интерпретация как в Prolog.

3.	Подписки, взаимодействие.

Организация взаимодействия событий с концептами (объектами) происходит с помощью подписок.  Подписка определяет действия по выполнению события (реакция) и начинается с стрелки вправо «→» после интересующего нас выражения, за которой следует имя состояния и далее реакция на него. Подписка имеет секцию Else, которая определяет реакцию на не истинность высказывания.
Синтаксис подписки

Подписка = «→»"Имя события" Реакция {«Else» Реакция }01

Пример. 1. Вычисление НОД
Nod a ~ b→  > {a=a-b Nod}  Else {a=b-a Nod}

Данный пример выполняет сравнение а и b и   присваивает а, в случае a>b  разность a-b, и b-a в противном случае. После чего опять производит сравнение (переход по адресу Nod).
Знак «~»- операция сравнения. Знак «>»-это не операция, а имя класса события.
Работа событийной машины заключается в адресации концепта (с параметрами или без),  проверку на наличие подписок и, если они есть выполнения концепта, после чего проверка на события указанные в подписке и ее реализация при выполнении события.
Выполнение концепта зависит от типа контента, а их три. Атрибуты, выражения и события.
Выполнение атрибута заключается в выполнении операций чтения/записи, операции просто в выполнении и в событии выполняется выражение этого события. Если адресуемый контент объединен в группу, то выполняется группа.

4.	Сортировка.

Классическим примером начинающего программиста (после «Hello Word») является программа сортировки. Каждый может вспомнить свои ощущения при работе с этим шедевром человеческой мысли и изменения в сознании от постановки задачи до реализации программы.  И на этом моменте я хотел бы остановиться. Постановка задачи элементарная. Отсортированный массив предполагает упорядочивание элементов массива в порядке убывания (или возрастания). Но, вот циклы, проверки, перестановки и все что называется алгоритмом, далось далеко не сразу. Превратить постановку задачи в алгоритм потребовало некоторых усилий. Повторюсь. Задача то элементарная. Вот бы такой язык, что бы сразу определить проверки и перестановки (т.е. написать формулировку в терминах постановки задачи) и что не морочить голову. И у нас такое предложение есть!!! Вот оно:
Пример 2. Сортировка массива A
‘Создаем массив Integer A
     Integer A [] → “Change Value” ‘Две подписки на событие “Change Value”
‘В первой сравниваем текущий элемент со следующим
                 {A [Index] ~ A [Index+1]) → > A [Index+1]:=: A [Index] ‘Если событие > то меняем.
‘Во второй подписке сравниваем текущий элемент с предыдущим
                  A [Index] ~ A [Index-1]) → < A [Index]:=: A [Index -1] ‘Если < то меняем
               }
Из незнакомого здесь только знаки операции сравнения «~» и перестановки «:=:». Выполнение начинается с изменения значения какого-то элемента массива. Так как определены подписки на события больше/меньше то, выполняются операция сравнения и реакция на произошедшие события – обмен соседними значениями, что приводит  в свою очередь к изменению значения соседнего элемента массива. И так до тех пор, пока элемент не найдет свое место в массиве.
5.	Анализ текста.

Постановка задачи. Проанализировать текст А и посчитать количество комбинаций букв «аб», «ав», «авс» в с1, с2, с3.  Длина текста N. Индекс текущей буквы i.  Текущая буква А[i]
Попробуем решить эту задачу без алгоритмов, только определяя события.
Пример 3
Text A     ‘Текстовый массив A
Integer N=A.Length-1                  ‘Длина массива
Integer I =0  → Change More2  ‘Счетчик текста. При изменении значения на проверку конца текста
Integer (C1=0, C2=0, C3=0)         ‘Счетчики с начальными значениями.
‘Создаем события контролирующие конец текста
More2 (N-I) ~1  →  > FirstA            ‘До конца текста більше 2-х букв. Подписка на проверку первуй буквы а
More3 (N-I) ~2 →  >  Thirdc  Else {C2+=1} ‘До конца текста більше 3-х букв. На проверку третьей буквы 
FirstA A[I] ~ «а» → ={Secondб Secondв} Else i+=1  ‘Первая буква а-на проверку вторых букв б и в
Secondб A[I+1] ~ «б» →= {С2+=1 I+=2} Else i+=1     ‘вторая буква б-наращиваем счетчик C1 на 1 и индекс на 2
Secondв A[I+1] ~ «в» →=More3                ‘вторая буква в-на проверку конца текста
Thirdc A[I+2] ~ «с» →={C3+=1 I+=3}  Else {C2+=1  I+=2}  ‘третья буква c-наращиваем счетчик С3 или счетчик С2 если не с


Анализ инициируется присвоением 0 счетчику I и запуском проверки на наличие не меньше двух букв до конца текста(More2).
Если букв больше чем 2, то проверяем на букву «а» выражением FirstA.
Если буква а, то проверяем на вторую букву (Secondб и Secondв), если нет, то наращиваем счетчик текста на 1, чем инициируем проверку More2 
Проверка на вторую букву «б» либо заканчивается успехом и наращиваем счетчик С1 и счетчик текста на 2, либо не успешно, тогда наращиваем счетчик текста на 1 для продолжения анализа.
Успешная проверка на букву «в» подписана на проверку наличия третьей буквы до конца текста.
Если третьей буквы нет, то наращиваем счетчик С2 чем и заканчиваем анализ.
Если есть третья буква, то если это «с» то изменяем счетчик C3. В противном случае С2 с советующими изменениями счетчика текста для продолжения анализа.
Может с непривычки покажется решение этой задачи сложноватым, но нашей целью продемонстрировать метод решения без построения алгоритма. И этот метод решения при известной сноровке легче как для программирования, так и для сопровождения.

6.	Понятия (Define). Логический разбор.

Понятия определяются как высказывания над событиями и понятиями согласно правилам формальной логики и высказываний при общем синтаксисе языка и имеют события True и False. Операции формальной логики «&»-И, «|»-Или, «¬»-Нет.

Пример 3
Define Квадрат {Многоугольник & 4  ребра & все ребра равны}
Квантификация переменных.
@ (Integer X) Define R (A, B(X))
Параметры определяют универсальную квантификацию, и читается так
Для любого целого X понятие R (A, B(X)) – истинно
Экзистенциональная переменная имеет имя понятия и определяется двоеточием после определяемого понятия с областью определения.
@ (Integer X) Define R (A, B(X)): Integer
Читается так: для любого целого X существует целое R такое что R (A, B(X)) истинно.
Истинность понятия определяется как следование из его определения.
Сейчас попробуем определить выполнение события в том случае, когда выполнение выражение императивно невозможно.
Определим множество, на котором будет выполняться интерпретация. В нашем случае это множества целых чисел и значения I и Y. 
Integer (I=-50000, N=108) 
Positive (I ^ N)
К операции возведения в степень "^" добавим к событиям следующее высказывание.
@ Integer (X, Y) Define Positive {Positive X |Четное Y}   (1)

Анализируемое высказывание называется целевым высказыванием. В нашей системе запуск анализа понятия происходит при адресации  и называется интерпретацией.
Для нашей задачи оно выглядит так:
Высказывание(1)  нужно читать так:  Для любых параметров X и Y типа Integer операция "^" является  Positive тогда,  когда выполняется событие Positive X, либо событие Четное Y.
Знак «|»-операция Или.
Шаг логического разбора называется резолюцией. На первом шаге резолюции  ищем высказывания Positive относительно функции "^". Оказывается, у нас есть такое высказывание (1) . Разбираем по правилам операции Или проверяя событие Positive X. Делаем вычисление. Вместо параметра X подставляем значение -5000 и получаем негативный результат. Значит, делать выводы на основе этого высказывания нельзя. При положительном результате вопрос был бы закрыт, но не все потеряно, у нас есть еще не проанализированное определение Четное (Y) и область действия нас устраивает. Вычисляем его на истинность, подставляя в качестве параметра значение 108, и получаем положительный результат. Делаем вывод, что целевое высказывание Positive (-50000 ^ 108)? =True.
В общем случае, если мы не получим результат с помощью интерпретации, то у нас остается вариант просчитать непосредственно значение с помощью функции возведения в степень. (Императивное решение). Хотя вопрос запуска логического разбора можно решить и иначе. 
В некоторых источниках процесс преобразования предикатов называется редукция.

Кого заинтересовало
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

О естественных статусах человека или о том, как «ИСТИНА ПОЗНАЁТСЯ В БРАКЕ (И.Кант)»
Для РЕАЛИЗОВАННОСТИ (Рлз-и) в СТАТУСЕ ЕДИНСТВЕННОГО (СЕ-го) /на Земле/ ДОСТОЙНО ОПЕКАЮЩЕГО МУЖЧИНЫ (ДОМ) достаточно найти согласную для Рлз-и в СЕ-й ДОСТОЙНО ОПЕКАЕМОЙ (в браке с ним) ЖЕНЩИНЫ (ДОЖ)!!!
В норме не должно быть не удостоверившейся о соответствии потенциала кандидата на её руку и сердце удачно осуществить обе эти Рлз-и: здесь без советов родителей, старающихся выявить правду в сказках о сватающемся просто не обойтись, особенно, в случае, когда делегаций сватов несколько.
Даже та, чьи телесно-духовные данные далеки от идеальных кажутся совершенными тому, кому суждено иметь Рлз-ь в СЕ-го ДОМ благодаря брачному союзу с ней!
Когда соответствие мужа СЕ-го ДОМ перестаёт быть зримо функциональной благополучный этап семейного сериала завершается начавшим владеть сознанием жены представлениями о её Рлз-и в СЕ-й неДОЖ и безденежному мужу приходится вести борьбу с последствиями ВСЕГО МА-гически ЛО-гического несоответствия ...
Ему не понять «как могло быть МАЛО медового периода продолжавшийся вплоть до его безработицы»
Путь Рлз-ей — от СЕ-й ДОЖ (-го ДОМ) к СЕ-й неДОЖ (-го неДОМ), как к предшествующему полагании РАЗВОДА, т.е. к Рлз-и как неДОЖ (неДОМ) без СЕ-й (-го) — низводящего характера...
Разведённой /даже не родившей/ не обрести былого величия дававшееся СЕ-й ДОЖ и бывшей царице желающей перестать дорожить своим рабочим местом в лучшем случае достичь в Рлз-и не СЕ-ой ДОЖ места следующей из жён в гареме султана, которому груз даже четырёх ДОЖ не представляет тяжести.
Преступен вариант увода чужого мужа, как попытка имитации Рлз-и в СЕ-й ДОЖ полаганием развода, но плачевен вариант оставаться элементом среды подпитывающей проституцию...
Внебрачная связь с мадам не проявляющей никакого интереса к проблеме соответствия юноши Рлз-и в СЕ-го ДОМ прививает ему примитивные понятия об обоих полах связанное с постигшей его Рлз-ью в не СЕ-го неДОМ — он КАК-БЫ РАЗВЁЛСЯ НЕ ЖЕНИВШИСЬ: он понятийно падший впоследствии даже поднятый браком с приличной девушкой к возможной для него Рлз-и в СЕ-го неДОМ не внесёт тепла в семейный очаг — идеальная жена терпеливо вместе с голоду не засыпающими детьми будут ожидать появления этого безответственного кормильца, от которого более гуманного отцовского отношения ждать напрасно!
Человек рождается устремлённым к Рлз-и в СЕ-го ДОМ (-й ДОЖ) !!!
Мать должна и играет трудно подъемные для её хрупких плеч роль СЕ-го ДОМ в отношении детей каждому из которых отводится роль СЕ-й ДОЖ: как можно ранний выход мальчика (особенно важно, когда он единственный братик, ещё важнее, когда он единственный ребёнок) из-под опеки не только матери, но и отца освободит от груза роли искажающе ослабляюще воздействующей на его устремлённость к Рлз-и в СЕ-го ДОМ!
Единственному ребёнку сыну вдовы, сохраняющей номинально былое величие Рлз-и в СЕ-й ДОЖ, освободится из-под ига несвойственной ему роли легче, чем, если бы его матерью была бы разведённая женщина...

(будет дан развёрнутый текст)

Фуфломет. Не говорил такого Кант. Он опроверг корреспондентную теорию
истины. Чем сделал сильный шаг. А точку в проблеме определения истины поставил Тарский.

Уважаемый, если предположим, что Кант такого не говорил это не меняет суть темы о статусе человека разъясняемое доступно через состояние брака. Здесь не рассматривается отдельно понятие «истина»

Доработанная окончательная версия «Решения парадоксов»
...;

ВЕТВЬ /противоречивых суждений/ развёртывается при не фиксировании момента смыслового изменения ВЕДОМОГО /понятия в рассматриваемом вопросе/ полагающегося при переходе из МАКСИМАЛЬНО ВОЗМОЖНОГО (МксВ-ого) к МИНИМАЛЬНО ВОЗМОЖНОМУ (МнмВ-ому) УРОВНЮ ЗАВИСИМОСТИ (УЗ-и) от смысла ВЕДУЩЕГО понятия полагающегося на переднем плане для рассмотрения — Вдщ1 — и, соответственно, из МнмВ-ого к МксВ-ому УЗ-и от смысла ВЕДУЩЕГО понятия оставшегося за кадром или же перешедшего на задний план — Вдщ2 /антонима Вдщ1/.

Смысл ВЕДОМОГО:
«Критянин» перешедшего из МксВ-ого УЗ-и от смысла Вдщ1 «лжецы» к
МксВ-ому УЗ-и от смысла Вдщ2 «не лжецы» стал антонимом прежнему;
«Я» ... «ложь» к ... «правда»
Есть также ВЕТВЬ мнимая, развёртывание которой не связана с «не фиксированием момента ...», ибо смыслового изменения полагающего развёртывание ВЕТВИ здесь нет.

Смысл ВЕДОМОГО:
«Ахиллес» не перешедшего из МксВ-ого УЗ-и от смысла Вдщ1 «путь
пройденный черепахой» к МксВ-ому УЗ-и от смысла Вдщ2 «пути не
пройденной черепахой» не допускает обгона;
«Стрела» ... «движущаяся» ... «покоящаяся»
преподносится как смысл перешедшего к антониму;
«Мнение Платона о ложности последующего мнения Сократа» ...
«ПОДТВЕРЖДЕНИЯ /Сократом этого мнения Платона/» ... «не
ПОДТВЕРЖДЕНИЯ» ...;
«Времени затраченного» ... «преодоления полпути» ... «преодоление всего пути»
не допускает достижения конца намеченного пути;
«Буриданов осёл» ... «НЕУМЕНИЕ /делать выбор между двумя одинаковыми
стогами сена/» ... «УМЕНИЕ» обречёт животное на смерть от голода;
«Сюрпризная дата казни» ... «определения надсмотрщика» ... «оптимистического
размышления приговорённого» не отменяет его казни в следующей
неделе;
«Брадобрей» ... «бреющих себя» ... «не бреющих себя» не допускает небритого
вида для брадобрея.

«Куча», «Лысый», «Корабль Тесея», «Яйцо или курица» не полагают развёртываний в отношение к себе даже мнимых ВЕТВЕЙ.

Спасибо. Познавательно. Понял. Принял.

Іди краще про Зеленського пиши, краще виходить (ні)

профессор, который не может объяснить простыми словами 12летнему мальчику, чем он занимается — не профессор, а шарлатан © кто-то типа Эйнштейна

язык не может определять себя сам без какой-то базы. у естественных языков это объекты, явления и действия внешнего мира.

если вы говорите о своем языке как чем-то новом, но которое реализуется в железе, то как имея в железе операции not, xor, and, nand, or, nor (вроде бы ж на этой элементной базе все строится), а так же запись и считывание ячеек памяти, реализовать ваши подписки?

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

тебя забыл спросить. У меня все работает. Остальное проблемы твоего интеллекта. Мог бы спросить. А ты тут цитатами борешься.

Я бы начал принимать лекарства какие-то. До весны как-то приглушил бы обострение, подтянул фронтенд-фреймворк какой-то. Ну и на собеседование можно было бы начинать ходить ...

Так принимай. Что ты в этой теме делаешь?

все, непризнаный гений поплыт, дальше все по накатанной дорожке из прошлых тем

Шизофрения — она такая...

В истории создания компьютеров известен случай, когда крутой математик фон Нейман, своим авторитетом задавил попытки реализовать математику с плавающей точкой!
Его аргументы были «железные»: Всякий грамотный математик способен преобразовать в уме свой алгоритм к форме, использующей фиксированную точку...
Говорить к чему это привело? Кто помнит математические сопроцессоры?
На сегодня, пользователями компьютеров являются вовсе не математики и, даже, не программисты. И задачи решаются не вычислительные, а информационные. И описываются они в терминах естественных языков...
Так какую (и чью?), собственно, проблему собрался решать автор?

Поучительный пример. Хотя таких показательных примеров масса. От ошибок никто не застрахован. Я помню даже двоично-десятичный формат)) Где каждые 4 разряда были десятичным значением.
Если вопрос ко мне, то я никакой проблемы поначалу решать не собирался. Мне просто не нравилось как работает компьютер. Начитался в 80-х за машины управляемые потоком данных. Это японцы заявили как 5-е поколение. Идея хорошая. Дело в том, что инициирование процессора данными ( а не командами) ближе к реальной модели мира. Единственный вопрос который у меня возник это не соответствие работы человеческого мозга и такой машины. Человеческий мозг думает последовательно. А в мире много параллельных процессов. Как это положить на программу и на архитектуру совершенно не понятно. Ну, вот в районе 2000-х мне пришла идея заняться этой темой. Я бросил бизнес и занялся.. Т.е. никакой коммерции. Чистые расходы.. Переделал кучу вариантов и версий.. Начинал вообще с тегового языка.. Вот лет через 15 получилось что-то имеющее коммерческий смысл. Особенно в области автоматики, умных домов и т.п.. Можно заломать все. Ардуино и близко не стоит. Начал искать инвестора. Потому как деньги кончились.. Сначала находились. Кое что сделали даже в железе.. Потом инвестор кончился.. Новых не нашел. А я продолжал работать.. Вот в прошлом году сделал систему и транслятор. Осталось фигня.. Сделать виртуальную машину на контроллере.. И написать хотя б с десяток классов.. А инвесторов нет.. Ситуация в стране повернулась жопой.. Сам я не очень активный в смысле поисков и бизнеса.. Вот работаю дальше.. И хз что будет дальше.. Пишу вот здесь.. Раньше на RSDN общался. Но после майдана меня там на 30 лет забанили)) Все.

Цифровые ЭВМ это прошлый век, советую смотреть в сторону аналоговых, если уже реально продвигать новые идеи в массы. На операционных усилителях можно решать дифуры в реальном времени. После этого нужно смотреть в сторону пневмоники, такой компьютер выдержит даже последствия ядерного взрыва.

Цифровые ЭВМ это прошлый век, советую смотреть в сторону аналоговых

Смотреть в позапрошлый?

Товарищ не в курсе что когда то на ракетах ставили функциональные усилители. Это такой типа реостат килограмм 20 веса)). Но справлялся

Ребята, не стоит вскрывать эту тему. Вы молодые, шутливые, вам все легко. Это не то.

>This article presents a programmable analog accelerator for solving systems of linear equations.
>The analog accelerator approach is 10 times faster and provides 33 percent energy savings.

www.computer.org/...​017/03/mmi2017030030.html

>Because the core of our computer is analog, it can interface directly with sensors and actuators if need be. And its high speed allows for real-time interactions with the user in computational tasks that otherwise would be impossibly slow.

>speedups of a factor of 10 or so were easily achievable, with energy savings of similar magnitude.

spectrum.ieee.org/...​r-fathers-analog-computer

Пневмоника — akuna.org.ua/2014_pneumonica.htm

Пневмоника

Спаси и сохрани: www.youtube.com/watch?v=_UXL-ywOmp0 (1980 !!!! как раз в это время появился 8086)

процессор инициируется данными? это как? какой-то специальный процессор? в архитектуру которого уже заложена схема работы с данными?

/me достает свой магический шар и активирует телепатические чакры: наверное имеется ввиду нейронка или FPGA

Вот «программа» и заключается в том, что бы организовать эту схему

А вообще хороший вопрос.. Тут надо поменять в голове что это не обычная программа, что оттранслировал и она запустилась и работает, а просто описание данных и схема работы с данными.. С хелпами, классами и прочей императивной фигней. Инициируется вся кухня с «адресацией». Сама адресация это типа прерывания в обычной архитектуре.. Только рассчитано на параллельное выполнение.. Адресация это отдельная и не простая тема для отдельного разговора..

Да. Специальный процессор. Виртуальная машина. Может выполняться на классике, но эффективней будет новая архитектура..

Ваши слова: «...Я сегодня хотел бы остановиться на одной серьезной проблеме, которую, как мне кажется, решил или как минимум, на пути к решению.» Вероятно я как-то неправильно понял Ваши слова? Кстати, позиция «от проблемы» мне кажется очень правильной!
Японцы (именно японцы, а не современные толкователи и именно в 1979 году!) определяли 5-е поколение как поколение компьютеров, работающих со знаниями! Это несколько отличается от Вашего определения...
Идея Японцев мне понятна. Человек мыслит понятиями и компьютер 5-го поколения, если бы состоялся к 1990 году, также должен был мыслить понятиями. По факту это значило бы резкое уменьшение семантического разрыва. Увы, ВМ 5-го поколения в 1990 году (как обещали) на рынке не появилось.
Какую проблему хотите решить Вы и какими средствами? Если языковыми, то как будет интерпретироваться терминальный и аксиоматический уровни? Если программно, на самых крутых компьютерах, то Семантический разрыв никуда не денется и КПД останется на стандартных сотых и тысячных процента. Если Вы готовы выделить свой вариант аксиомотерминального базиса, который:
1. Будет семантически близок к человеку-пльзователю-не программисту;
2. Будет эффективно интерпретироваться Вашим специализированным аппаратный процессором.
Если это так, то это очень круто! И хочется получить оценочную информацию по (1) Семантической близости примитивов и (2) по эффективности интерпретации этих примитивов Вашим железом. Хотя бы обоснованные (на бумаге) оценки...

P.S.: все таки, какую проблему Вы хотите решить?
P.P.S.: Что касается проблем с финансированием, — вполне понимаю, разделяю но могу только пожелать успеха!

За японцев промолчим. 5-е поколение провалилось. О причинах я здесь говорил. Только у них шла речь не о декларативных языках. Надежды на Prolog и функциональные языки тоже не оправдались. Я предложил решение событийное и показал связь событий с логическим разбором, императивной парадигмой и даже нейронными сетями.. Видимо, вы не совсем поняли. Попробуйте в голове проиграть с предложенными примерами. Тогда придет понимание.. Мыслить в предложенных терминах событий и подписок. А что для эффективной реализации этой парадигмы нужна новая архитектура процессора, это скорее следствие.
Оценить на бумаге цифрами семантическую близость как-то не научно.. Могу ответственно сделать такую оценку. Что рост стоимость ПО от объема при разработке в моей системе зависит МЕНЕЕ чем линейно. Применяя императивную парадигму он растет экспоненциально. Это могу доказать.. Но это другая тема.. И уже в личке..

За семантическую близость просмотрите еще раз пример с разбором текста.. И сравните с обычным решением этой задачи..

ударім наукообразієм по бездорожжю!

Вначале складывается такое впечатление, что автор открыл Smalltalk, только с более витиеватой терминологией и корявым синтаксисом :) Зачем нужны понятия тоже вопрос, тут больше ассоциация с контрактным программирование (Eiffel, Ada 2012).

При этом вычисление Nod в принципе нерабочее, потому как нет никакого критерия остановки. Более того, при вычислении надо сравнивать остаток от деления с нулём, а порядок чисел в общем-то и не важен — это только добавит одну итерацию, где числа переставяться в нужном порядке.

К сортировке тоже задана куча вопросов. Ну и до рабочего примера интерпретатора говорить особо не о чем, это фантазии автора.

За синтаксис это отдельная тема. У меня значительно проще чем Smalltalк. Но это отдельная тема. Что в вычисление Nod въехал это уже хорошо. С нулем сравнивать не надо. Если подписанные события не произошли, то вычисления прекратятся. С сортировкой согласен что не оптимально (в каком-то смысле) решение. Я хотел показать метод решения задачи. Вопросы эффективности выполнения решаются в другом месте. И это отдельная тема. А вообще приятно когда хоть кто-то понял. Уже начало. Очень рекомендую покрутить тему в голове еще.

Скопирую:
Nod a ~ b→ > {a=a-b Nod} Else {a=b-a Nod}

Вычисления прекратяться это хорошо. Но тут два вопроса: (1) когда прекратяться? (2) где результат? Формально я вижу одно условие, которое генерит новое собыбие безусловно (и в случае Then, и в случае Else). Фактически я ещё мог бы согласиться в случае
НОД a ~ b: больше {a=a-b НОД} меньше {a=b-a НОД}

Во-вторых, алгоритм очень неэффективный, потому что не используется деление с остатком. Чтобы посчитать НОД(4611686018427387904, 2) таким способом, необходимо примерно 2e+18 раз вычесть число 2, что займёт несколько продолжительное время. С другой стороны классический алгоритм Эвклида справляется с этим случаем за 1–2 итерации в зависимости от порядка аргументов:
gcd = lambda a, b: a if b==0 else gcd(b, a%b)

И тут я даже не знаю, как перевести это язык. Могу попытаться
НОД b ~ 0: равно {a, b = b, a%b НОД} иначе { a }
но эта запись очень запутана, непонятно откуда возникает a, которая по сути является параметром события НОД

Ну и абсолютно непонятно, как использовать результат этого НОД. По сути, по сравнению с одной строчкой на Python, мы поимели кучу проблем, и я не вижу ни одного плюса. Вообще, многие декларативные фичи подразумевают понимание работы интерпретатора. Не понимая, как prolog-система строит запросы, невозможно писать на prolog. Не понимая, как интерпретируется SQL сложно писать на нём эффективные запросы. Так что без формального описания, как будет интерпретироваться тот или иной код вообще говорить не о чем.

Ну и НОД переводится на ангельский как Greatest Common Divisor (GCD).

1. Результат в а.
2. Конечно, деление эффективней. Но это ж пример.
3. Согласен что без понимания всей конструкции трудно. Это не интерпретатор. Транслятор переводит текст в двоичную вид со своей структурой. Этот двоичный код и есть программа (если так можно выразиться) для машины. Структуру концептов, я кажется, пытался здесь разместить. Или до этого не доходило..
Ну, и синтаксис надо бы отдельно написать.. Тоже пробовал здесь выложить.. Там интересно.. Могу прислать отдельно файлы.
3. Здесь примеры для демонстрации образа мышления, а не для эффективности. Эффективность достигается распараллеливанием и другими плюшками..
4. Большая благодарность за понимание. Всегда рад ответить на все вопросы.

И отдельно за формальный синтаксис. Я пробовал здесь его выкладывать. Плохо получается потому как у меня не ФБН, а описание синтаксиса в самом языке. Мой транслятор анализирует надстрочные и подстрочные знаки. Здесь на форуме они не работают. Здесь при описании синтаксиса подписки Подписка = "→""Имя события" Реакция {«Else» Реакция }01 последние цифры подстрочное и надстрочное значение говорит что содержимое скобок может отсутствовать (выполняться 0 раз минимум) или 1 раз максимум.

Так сделайте EBNF, в чем проблема?

Мой транслятор анализирует надстрочные и подстрочные знаки

Воспользуйтесь диграфами и триграфами

Проблем несколько. Мое описание грамматик позволяет определять класс грамматик шире чем регулярные множества, и потом само описание синтаксиса является транслятором. Кроме того есть и собственное определение языка. В связи с тем, что разбор лексем идет снизу, а синтаксиса сверху то, лексику порождает алфавит, а в синтаксис порождают понятия определенные в синтаксисе-лексемы. А правила не ФБН , а сразу понятие. Ну, и использование скобок общее. Т.е. язык сам себя определяет. Не нужно никакого ФБН. А нафига?

Потому что язык сам себя определять не может, нужен метаязык, а то мы можем попасть на парадоксы типа парадокса Берри и привет.

Нет такого парадокса. Есть проблемы с пониманием структуры языка. Читайте того же Бертрана Рассела «Логические типы» и Тарского «Иерархия семантики». Если будет не понятно, то обращайтесь ко мне. Вкратце объяснение простое. Высказывание нельзя использовать для доказательства истинности самого себя. Кстати, здесь в стартовом топике именно об этом речь.

И заблуждение что язык не может сам себя определять. Очень даже может. Мы ж как-то общаемся и развиваем язык. Слова Мета-язык говорит скорее о недостатке языка, который не может развиваться. Правильно говорить мета-уровень того же самого языка..

Во-вторых, алгоритм очень неэффективный, потому что не используется деление с остатком.

Вообще, для свовременных компов самый эффективный — это двоичными сдвигами. Деление сейчас чудовищно дорого и потому тоже неэффективно (для примера типа НОД(4611686018427387904, 2), конечно, будет лучше вычитания, но по сравнению с двоичным — в общем случае — нет).

В остальном согласен.

Целочисленное деление всегда выполняется двоичными сдвигами и все не так уж «чудовищно». 1-7 тактов habr.com/...​company/otus/blog/343566
Хотя пример был не об этом..

1-7 тактов habr.com/...​company/otus/blog/343566

В их таблице английским по фоновому написано: «Integer division — 15-40».
И это для 32-битного. Для 64-битного — до 90, смотрите мануалы от Intel.

И в данном примере вообще за один такт выполнится, потому как окружено операцией сравнения и потом перехода.. Обе операции не занимаются вычислениями.

вообще за один такт выполнится

Нет.

Обе операции не занимаются вычислениями.

Последующая проверка использует результат деления, поэтому будет его ждать.

С такими познаниями в процессорах вам явно рано за новыми концепциями охотиться.

Это тот случай когда все правы. )) И, как обычно, готовы обосрать всех лишь бы доказать свою точку зрения вместо того что б попробовать понять написанное. То, что я ничего не понимаю я уже здесь слышал не раз. Кстати, именно с проблемы деления я получил первую работу на Буране. 18 часов до старта необходимо было с точностью до миллисекунды отсчитывать. В тогдашнюю разрядную сетку не вписывалось деление. Обидно, но это Украина, детка.. Половина гениев. Спорить не буду. Вы мне просто надоели. Просто вы полуграмотные.. Вот половинку знаний получили, и дальше тормоз.

Спорить не буду. Вы мне просто надоели.

Ну да, все-то ткнули носом в голый факт. Не спорьте, кто ж вас заставляет.
До этого я про ваши «концепции» старался не высказываться — из-за 1/1000000 шанса, что из них вылезет что-то полезное. Но для этого нужны знания, а не фантазия.
Что там у вас с «Бураном» было и зачем таймеру деление — вы не рассказываете. Но к свойствам современных процессоров это не относится аж никак.

Вот половинку знаний получили, и дальше тормоз.

Вы и 1/10 не получили, по собственной вине, и не читаете даже собственные источники — до такого уровня, что хочется подарить букварь. Но это не поможет, так что продолжайте витать в собственных [censored].

Для особых гениев операция перехода не ждет. Она вычисляет все адреса переходов не ожидая результата..

Шапку не читал, но искренне рад, что появилась эта тема.

edit:
Ознакомился. Авто пытается решить несуществующую проблему. А как известно, бороться с тем чего не существует очень сложно.

Спасибо. А проблема есть. Рост стоимости разработки растет экспоненциально объему обычно. У меня будет расти менее чем линейно. Если это не проблема, то я ничего не понимаю в программировании.

Собственно этим все сказано

Иногда и сам не могу сформулировать чего ваяю.

Да. Так бывает когда придумываешь то, чего никогда и нигде не было.

Ты с 2014 года (по ДОУ) пытаешься протолкнуть свои концепции, хоть кто-то заинтересовался новым велосипедом?

С 2004-го. Может даже раньше. Я еще до ДОУ этим занимаюсь. ))

И с 2004 года нет даже готового интерпретатора?

Есть. Год назад же говорил что закончил последнюю версию. Сейчас созрел для новой. И транслятор есть. Нет реализованного в железе. В этом тормоз. Денег нет.

ну собственно Эндрю выразил главный вопрос
Почему с 2004 года нет ничего что можно было бы пощупать? даже если вдруг есть проблемы с железом — сделай эмулятор с визуальным отображением всех операций

та сделал.. Уже не нравится.. Хочу новую версию сделать

это все равно что нету, очень странно.

Это означает что есть новые идеи. И старое уже не устраивает.

так а что может гарантировать что вот то что тут — это не промежуточное ошибочное решение?
Вот берем биткоин, идея блокчейна и децентрализации долго витала в воздухе (отдельные энтузиасты разработали), а потом Сатоши\коллектив авторов\Накамото накатал свой концепт на 3 страницы, у меня вон даже книжечка есть, и этот концепт проверили и заимплентили, усовершенствовать можно долго, но концепт показал себя и решал определеные потребности которые долго были сложно решаемыми

А ты даже проблемы никакой не решаешь, ни производительности, ни энергопотребления, и пока что на форуме девелоперов ни разу никого не убедил

Если ты не понял, это твои проблемы. Меня вообще удивляет откуда здесь берутся люди сомневающиеся что если управление передано на команду присваивающую в ячейку 1, то надо проверить присвоена ли 1. Что там проверять? Мрак какой-то. Еще могу понять бизнесмена нифига не смыслящего. Но здесь....

Если ты не понял, это твои проблемы.

нет братка, это твои проблемы)))
мне от твоих потуг ни холодно ни жарко, так, поприкалываться чуток и все. Это твои проблемы — донести до потенциальных стейкхолдеров\кастомеров\инвесторов\партнеров свою идею, что ты и пытаешься делать, пока что безуспешно)

Опять не угадал. Я написал это для тех кому интересно и кто может понять. Те, кто не понял мне вообще не интересны. Даже если это инвесторы)).. Я не из того материала и воспитания. Дебилы мне не интересны в любом качестве.

ну то что ты дАртаньян было понятно из твоих первых тем, не надо тут никого в этом убеждать, и так известная истина)
Ну собственно результат мы видим на лицо, так сказать, главное не меняй курс и делай завтра то же что делал вчера, главное стабильность)

та сделал

де подивитись ?

Нигде. Только общаться со мной. Я нигде не печатаюсь и не пишу.

Я одиночка. Меня не интересуют звания, бабки вся херня.. Я хочу сделать дело..

ем. а до чого тут гроші ? щоб зробити «дело» треба бачити результат або хоча прогрес. завжди є опен сорс

якщо ти одиночка, то чого кожні пів року пишеш на доу про свої роботи і шукаєш когось в проект?

Да ищу.. Мне нужен программист контроллеров..

Мне нужен программист контроллеров.

И вычислитель электронно-вычислительных машин... %)

якщо не цікавлять гроші, то чому в інших темах шукаєш інвесторів ?

А где противоречие? Что б запустить производство и закончить разработку какой то линейки устройств нужны деньги.. Иначе бабла не заработать

Меня не интересуют звания, бабки вся херня
Иначе бабла не заработать

Как много уродов.. В цитируем первоисточнике нет моего интереса «заработать бабла». Вы даже не понимаете до какой степени вы уроды..

Давай сразу за сортировку:

Во-первых, не определена модель выполнения. В каком порядке будет происходить сравнение элементов? Последовательно? Параллельно? Очень параллельно? Случайной выборкой элементов? Что с синхронизацией?

Во-вторых, напиши мне не пузырьковую сортировку, а квиксорт.

В-третьих, покажи что твой код можно преобразовать в машину тьюринга / рекурсивную функцию.

Параллельно. В машину тьюринга можно преобразовать только по веткам. Она не предполагает параллельного выполнения. Тут другое мышление нужно. В реальной работе нельзя предсказать в каком порядке будет выполняться. За машину это отдельная тема. Моя машина работает не как обычная с выборкой команд по порядку и переходами. Вычисления вообще второстепенный вопрос. Здесь хотел бы обратить внимание что сравнение не изменяет память и может выполняться параллельно на нескольких процессорах.

В машину тьюринга можно преобразовать только по веткам.

Так свойство полноты по Тьюрингу выполняется или нет? Вы можете это показать?

Она не предполагает параллельного выполнения

Параллельные вычисления можно свести к МТ

В реальной работе нельзя предсказать в каком порядке будет выполняться

А какие тогда критерии останова?

Вычисления вообще второстепенный вопрос.

Вычисления это первостепенный вопрос. Вы описываете язык для вычислений, таким образом сформулируйте модель по которой будут происходить эти вычисления. Алгоритм, так сказать.

Например, ваша сортировка не имеет критерия готовности — т.е. она будет выполняться вечно, проверяя элементы на упорядоченность. Это никому не интересно.

Свойство полноты выполняется. В машине Тьюринга нет параметра время. Есть последовательность шагов. По каждой отдельной ветке выполнения мощности одинаковы. Проблема только в недетерминизме. А так совершенно верно. Сводится к МТ. Только события происходят независимо и параллельно.
Критерий останова-нечего делать.)) Как произойдет событие с подпиской так и запускается машина.
Вычисления таки второстепенный вопрос в моей машине. На первый план выходят шины доступа, коих желательно иметь больше чем вычислителей. Анализ событий происходит отдельно как и проверка на наличие подписок.
Короче алгоритм адресации такой. Адресуемся к области памяти, проверяем класс адресуемого концепта и наличие подписок. Если подписок нет-вообще ничего не делается (кроме случаев адресации с параметром к значениям. Тогда это запись). Если подписка есть, проверяем на событие (это не вычислитель) и выполняется параллельно. Если событие произошло, то, адресация к реализации подписки.. Т.е. до вычислений доходит только в случае адресации к командам. А в общем случае адресация возможна трех видов к атрибутам, событиям и группам команд. Команды, кстати, тоже могу иметь подписки))

Свойство полноты выполняется.

Докажите.

Сводится к МТ.

Покажите

Критерий останова-нечего делать.))

Покажите на примере сортировки

Короче алгоритм адресации такой. Адресуемся к области памяти, проверяем класс адресуемого концепта и наличие подписок. Если подписок нет-вообще ничего не делается (кроме случаев адресации с параметром к значениям. Тогда это запись). Если подписка есть, проверяем на событие (это не вычислитель) и выполняется параллельно. Если событие произошло, то, адресация к реализации подписки..

Что делать если у вас несколько подписок на один адрес?

Если несколько подписок на один адрес, то они выполняются в порядке времени. Можно на очевидное не отвечать? Это я про полноту. А насчет сортировки так что тут доказывать? Так задумано)) Нет событий-остановка.

Если несколько подписок на один адрес, то они выполняются в порядке времени

А если возникает рекурсия? Обходим подписки в ширину или в глубину?

Можно на очевидное не отвечать? Это я про полноту.

Во-первых оно не очевидное. Во-вторых, нельзя не отвечать.

А насчет сортировки так что тут доказывать? Так задумано)) Нет событий-остановка.

Как использовать сортировку в смысле подпрограммы?

1. Сталкивался с рекурсией.. )) Не знаю как. Отлаживать надо.
А адресация каждый раз идет со своей шиной и стеком. Могут быть в каждом стеке разные параметры..
2. За полноту -таки очевидное..
3. Не знаю как использовать сортировку.. Может вообще никак. Определил массив и забыл. Он сам отсортируется.
Как использовать подпрограммы, вообще отдельная тема.. Команда Sub предусмотрена. Пока не использовал. Не было необходимости. Группы команд хватало. Может когда вплотную займусь функциональным программированием, тогда понадобится. Лямбда-без проблем.. Тоже группа команд..

Рано или поздно стек закончится. Что тогда?

Очевидно = легко доказать. Вот легко и докажите. Математика это точная наука.

Та не вопрос.. регулярные грамматики являются полными по тьюрингу. На своем языке я могу описать класс грамматик шире чем регулярные.

регулярные грамматики являются полными по тьюрингу

Не, не являются.

Алсо, я прошу не регулярную грамматику, а формальную грамматику.

А чем тебе ФБН не формальная грамматика? Так моя грамматика элементарно реализует всю ФБН

Так покажите мне EBNF

Пару тысяч скинь на карточку. Сделаю в лучшем виде.

Пару тысяч скинь на карточку
Я одиночка. Меня не интересуют звания, бабки вся херня.. Я хочу сделать дело..

И что не понятно? Бабло как фильтр от болтунов

Да.. Комп состоит из памяти, шин доступа, диспетчера событий и логического разбора и вычислителя. Диспетчер событий занимается еще интерпретацией как в Prolog

Комп состоит из памяти, шин доступа, диспетчера событий и логического разбора и вычислителя.

А куст — это организованная группа палок, произростающих из одной точки.

честно пытался понять, но особо ничего не понял. ощущение что автор все время прыгает от одного к другому (хотя читать русский текст о программировании это вообще звиздец какой-то для меня).

как язык программирования может понять заказчика — вообще не вижу взаимосвязи...

а есть чтонить эдакое революционное по концепции сигналов и слотов?

Есть. Это первое для чего подходит такая система.. Подробности в личку или на скайп

Не дуже зрозуміло, наскільки запропонований підхід буде краще існуючого і якщо краще то де і в чому.

Я только об одной проблеме рассказал. Там есть еще куча приятностей. А что б заценить нужно попробовать думать в терминах событий и подписок. Просто поверьте это не супер большое усилие понадобиться. Надо просто забыть про существование алгоритмов. Сначала будет не привычно. Потом понравится))

До пятницы ещё 4 дня((

И сеньер? Представляю уровень фирмы в которой ты работаешь.. А мы делали старт и техничку Бурана в свое время..

не, ну интересно же

А мы делали старт и техничку Бурана

про это тоже бы почитал

Нафига? Просто поверь ничего интересного по современным меркам..

Просто поверь

я лучше в макаронного монстра поверю

Ок. Вы пипискасм решили мерятся, завидев трольный пост некоего вроде украинского синьора. Но а сами-то понимаете, что при такой подаче материалла (ну или у меня мозгов не хватает — каюсь конечно) — у читателя в голове мешанина из конечных автоматов, регулярок и как-йто урезанной лямбда-математики. Может стоит как-то аккуратнее изложить?

Согласен. Есть у меня такой недостаток.. Потому как тему сам копаю. Иногда и сам не могу сформулировать чего ваяю. Здесь выложил то, что уже точно работает и могу написать. Извиняюсь. Но свежее материала нет. Есть надежда что в общении найдутся лучшие слова и более наглядные примеры.. Буду копать дальше..

Да!? ну я рассчитывал Кольчугу, которая в отличие от, до сих пор работает. По крайней мере в трех государствах :8)

А мы делали старт и техничку Бурана в свое время..

А мы уже на Марсе и что?

Неплохо сигналл идёт — поздравляю :)

Не мы, а они. Ты к этому отношения не имеешь

Ты вообще к программированию отношения не имеешь, но тут пишешь.

Ты еще под стол пешком ходил когда я группой программистов руководил

Руками водить — это не программировать.

Вот зачем ты это написал? Меня не за красивые глаза назначили руководителем через пол-года работы в СКБ. Я там здорово шороху навел)) Кстати, за это и пришлось уйти. Опустил работу целого орденоносного отдела который занимался блоком синхронизации трех наземных компов с бортом.

Подписаться на комментарии