PL2

pl2_rainbow


PL/2 Ӧшкамӧшка - язык программирования


Опубликованы предложения по национальным языкам
Девятиэтажик радуга
mudrizm
На Хабрахабре разместил статью
Размещение иерархии словарей языков в каталогах http://habrahabr.ru/post/217505/

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

Опять звездочек больше, чем плюсов :)

Адаптация BNF для именования элементов таблицы LR
Девятиэтажик радуга
mudrizm
BNF для описания грамматики с однозначной идентификацией правил в таблице разбора

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавлены виды разделов META
Девятиэтажик радуга
mudrizm
Разделы meta https://github.com/palexisru/pl2_rus/wiki/file-meta:

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


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

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

Опубликован первый вариант синтаксиса PL/2
Девятиэтажик радуга
mudrizm
Хабрахабр - статья Предложения по учебному языку программирования http://habrahabr.ru/post/219419/

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

Tags: ,

материалы по логическому программированию
Девятиэтажик радуга
mudrizm
Пользователь raydac выложил в сообществе http://ru-declarative.livejournal.com/112145.html исходники по Prolog на Java.

Есть с чего начинать придумывать логические элементы.

Документация - синтаксис
Девятиэтажик радуга
mudrizm
Позаимствовал из SQL права доступа объектов к классам

Добавил операторы для обработки выборок из базы данных и функционального программирования:

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


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

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


|> - конвейер для всех элементов из левой коллекции, задаваемый правым выражением

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

Обновление идеологии видимости и аспектов
Девятиэтажик радуга
mudrizm
Предполагается следующая комбинация аспектов в соответствии с циклом Деминга:
invariant - аналогично контракту
plan - исполняемое перед выполнением
do - основной метод (может быть пустым для использования побочных действий)
check - исполняемое после выполнения

иерархия областей видимости:
idia
logical
functional
presentation
session
police
control
exchange
concurent
executive
common
parallel
special
internal
protect
resource
signal
volatile
empty

При этом класс может иметь доступ не только к элементам с соседней областью видимости, но и с областью видимости, зеркальной по отношению к нему в списке относительно среднего элемента executive. Например, для parallel - exchange, common и special.

Исполняемыми задачами являются элементы с видимостью executive, они могут включать элементы с любой начальной областью видимости, но запрещено одновременное использование элементов с разной (не симметричной) областью видимости. Этим обеспечивается иерархия включения элементов. В отличии от модели OSI распространение начинается не с верхнего, а с центрального уровня, и может продвигаться как в вверх, так и вниз.Сцепленность
Подробнее по девятнадцатиуровневой модели http://habrahabr.ru/post/203770/

?

Log in

No account? Create an account