Автор: daner ладно хоть не на ассемблере в этот раз вы конкретно что собираетесь писать? интерпретатор? компилятор? препроцессор? просто библиотеку/и? или что-то еще? синтаксис у языка планируется свой? если да, то как он по вашему должен выглядеть (общее представление наверняка уже имеете). Можете какой-нибудь пример привести. Чем вас существующие языки (возможно с дополнительными библиотеками) не устраивают? что особенного будет в вашем языке? |
|
Собственно говоря, этот проект - логическое продолжение предыдущих моих проектов, так сказать, следующая попытка.
В заголовке темы я указал - интерпретатор. Иное трудно мне самому представить, т.к. сам программный код будет расположен в онтологии и будет существовать возможность его программной самомодификации. Это важнейшее качество моего языка программирования позволит в максимальной степени менять алгоритмы своего поведения. Такую возможность имеют некоторые ЯП, например, LISP. Если машина Фон-Неймана позволяет в общем поле памяти располагать и программный код и данные, то меня все то же, но не только в общей памяти, но и в общей структуре данных - онтологии.
Давайте я хоть как-то временно назову мой ЯП. Назову его пока просто:
AIPL - The Artificial Intelligence Programming Language.
В основе - движок на основе продукционных правил, работающий только с онтологиями.
Рабочая среда состоит из микроагентов (МА). Каждый микроагент содержит собственный онтологический движок и отдельную рабочую память. МА взаимодействуют между собой посредством посылки сообщений. МА я еще тоже не знаю как назвать.
AIPL будет иметь режим интерпретации командной строки и программный режим. Это - обычные режимы множества ЯП. Также будет предусмотрена возможность встраивания, когда можно будет скомпилировать из него библиотеку для использования с другими языками. А также можно будет брать программный код и напрямую встраивать его в собственные С++ или С программы. Что-то подобное ЯП Lua.
Синтаксис языка лиспоподобный со скобками. LISP работает со списками произвольной древовидности. В LISP не встроен механизм, обрабатывающий не только элементы списков, но и типы связей между элементами списков.
AIPL будет работать и с типами связей между элементами и с самими элементами сети.