Девятиэтажик радуга

Предложения по унарным, бинарным, тернарным операторам

Прошу проверить на полноту и здравый смысл предложения по операторам

Операторы сравнения https://github.com/palexisru/pl2_rus/wiki/pl2-operator-compare

== сравнение на равенство
=/= сравнение на неравенство
> больше
>= больше или равно
< меньше
<= меньше или равно

Операторы присваивания https://github.com/palexisru/pl2_rus/wiki/pl2-operator-assign

:= присваивание значения переменной
++ преффиксный инкримент - увеличение значения на 1
-- преффиксный декремент - уменьшение значения на 1
:=: обмен значениями двух переменных

Операторы арифметические https://github.com/palexisru/pl2_rus/wiki/pl2-operator-arithmetics

+ сложение
- вычитание
* умножение
/ деление
-/- рациональное деление
% получение остатка от деления
** возведение в целую степень

Операторы строковые https://github.com/palexisru/pl2_rus/wiki/pl2-operator-string

.. - конкатенация строк
.= - добавление строки к строке с присваиванием нового значения

Операторы логические https://github.com/palexisru/pl2_rus/wiki/pl2-operator-logical

~ отрицание (NOT)
&& логическое AND (И)
$$ логическое OR (ИЛИ)
^^ логическое XOR (исключающее ИЛИ)

операторы двоичной арифметики https://github.com/palexisru/pl2_rus/wiki/pl2-operator-binary

~ отрицание (NOT)
&&& двоичное AND (И)
$$$ двоичное OR (ИЛИ)
^^^ двоичное XOR (исключающее ИЛИ)

Операторы сопоставления https://github.com/palexisru/pl2_rus/wiki/pl2-operator-choice
операторы работы с лямбда-выражениями и списками

::= - определение раскрытия выражения

Кванторы существования и всеобщности на упорядоченных списках

|> - конвейер для всех элементов из левой коллекции, задаваемый правым выражением
&> - коллекция из всех элементов из левой коллекции, удовлетворяющих правому выражению
!> - конвейер для всех элементов из левой коллекции, не удовлетворяющих заданному правому выражению
%> - коллекция из первого элемента из левой коллекции, удовлетворяющего правому выражению (арифметически - остаток от деления)
$> - коллекция из последнего элемента из левого списка, удовлетворяющего заданному правому выражению
~> - все элементы списка, кроме первого, удовлетворяющие правому условию

Операторы пунктуации https://github.com/palexisru/pl2_rus/wiki/pl2-operator-punctuation

; - окончание оператора
. - разделение элементов полного имени идентификаторов

Тернарный оператор https://github.com/palexisru/pl2_rus/wiki/pl2-operator-ternar

boolean ? value_true :: value_false
Девятиэтажик радуга

Управление проектами и версиями

В исходном файле добавляются ссылки на другие файлы (зависимости make) и из таких ссылок формируется раздел source mode="package".

Для сборки решения, содержащего ссылки на независимые пакеты, оформляется раздел source mode="solution".

Описания в разделах идентичны структурам данных, заключены в скобки {...}.

При получении команды на смену версии (версия.подверсия.модификация) делается архивная копия текущего состояния исходников пакета.
Девятиэтажик радуга

Опубликованы предложения по национальным языкам

На Хабрахабре разместил статью
Размещение иерархии словарей языков в каталогах http://habrahabr.ru/post/217505/

Описана иерархия каталогов для национальных языков с наследуемым переводом и единым прототипом culture/an/draft

Опять звездочек больше, чем плюсов :)
Девятиэтажик радуга

Адаптация BNF для именования элементов таблицы LR

BNF для описания грамматики с однозначной идентификацией правил в таблице разбора

Каждое правило состоит из одного (синоним) или двух правил.

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

Рекурсивные правила определяются через имя элемента коллекции правил и ключевого слова "recursively".

Направление рекурсии определяется расположением ключевого слова "recursively" слева или справа от имени члена коллекции.
Девятиэтажик радуга

Последовательность развития анализаторов

1. Анализатор входного файла для анализа тегов meta ... /meta
2. Рекурсивный анализатор описания языка в формате BNF в пространстве имен
3. Анализатор BNF типа LR описания языка в формате BNF в пространстве имен
Девятиэтажик радуга

Формат хранения предикатов

Появилось предположение о подходящем формате хранения предикатов, основанном на семантических связях:

1. Тип субъекта связи (на основе расширяющегося списка, в котором на данный момент 70 терминов)
2. Идентификатор субъекта связи

3. Тип объекта связи (зависит от списка разрешенных связей для идентификатора субъекта связи)
4. Идентификатор объекта связи

5. Добавочно - оценка связи

Варианты оценки связи:
+бесконечность (или MaxValue)- связь точно есть
-бесконечность (или MinValue) - связь точно отсутствует
промежуточные варианты могут соответствовать оценке положительной ли отрицательной связи

NaN - можно использовать для указания того, что понятие связи не применимо
0 - какая-то связь возможна :-)

6. Актуальность предиката

Варианты:
Do - Актуально на данный момент
Check - Устарело, но может представлять интерес
Act - Навсегда для данной предметной области
Plan - Прогноз на будущее
Девятиэтажик радуга

Добавлены виды разделов META

Разделы meta https://github.com/palexisru/pl2_rus/wiki/file-meta:

source="menu" - структура меню пользователя - главного или контекстного
source="form" - описание формы со стандартными кнопками диалога
source="table" - инициализация таблиц и массивов структур
source="tree" - инициализация вложенных иерархических списков


Выложил предложения по учебному языку программирования на Хабрахабре - http://habrahabr.ru/post/219419/

Отзывы пока не очень - первый отрицательный поступил через 3 минуты
Во, скорость чтения у людей :-)
Девятиэтажик радуга

еще один Prolog для Java

Оригинал взят у raydac в еще один Prolog для Java
по запросу японца одного, достал с полки пылившиеся сырцы моего движка Prolog для юзания вместе с JVM и сделал опенсоурс проект. Движок неочень мощный (зато маленький и весь в одном юберджарнике со всеми библиотеками), разрабатывался скорее для изучения языка и изучения разных механизмов взаимодействия с явой, но так позволяет писать несложное и смотреть как выполняется. Проект опубликован под Apache License 2.0 и доступен на https://code.google.com/p/jprol/