PDA

View Full Version : BAL - усовершенствованный язык запросов для деревьев



computer20
02-02-2007, 11:14 AM
BAL - усовершенствованный язык запросов,
предназначенный для обработки в базе данных деревьев.
Формат файлов базы данных - BAF (описан в проекте).

Документация на
http://bal10.chat.ru

Прошу помочь в разработке (или критике).

computer20
02-05-2007, 04:14 AM
Речь идет о таком применении:
запросом в базе данных получить сразу дерево, а не декартово произведение
http://bal10.chat.ru/site/bal/ru/tree_ru.htm
и отправить его сразу в браузер
http://html60.chat.ru/site/html60/ru/anytag_ru.htm
– это вместо того, чтобы писать генерацию html-страницы на php или perl.
Определить свойство "kind" в css-файле – это проще, чем писать полноценный XSL.

Т.е. в первую очередь речь идет о сопоставлении старого метода "3 языка" (html+php[perl]+sql) и
нового метода "2 языка" (html+bal)"

Кроме проекта HTML 6.0 язык предназначен для использования в проекте Computer 2.0
http://computer20.chat.ru

Прошу помочь в разработке (или критике).

crazy-mike
02-05-2007, 02:33 PM
Прошу помочь в разработке (или критике).
Первое впечатление:
1) MUMPS в любой реализации - круче!!!!!!!
2) Надежность программирования и удобочитаемость текста - стремится к абсолютному нулю.
3) Наличие значительной подсистемы моделирования для времени выполнения существенно обесценивает идею применения во встраиваемых системах.
4) Совмещение декларативных и процедурных языков программирования - в одном - является чрезвычайно неудачным решением.
:bis: может быть по email еще добавлю.
5) язык "D" - c www,digitalmars.com - концептуально элегантнее.
А в предлагаемом материале - несколько сумасбродное смешение понятий и разрыв с практикой "надежного программирования". Лучше уже с чистым Лиспом работать...:bis:
:34: Не пугайтесь...По email может быть подробнее напишу. Как внутренний узкоспециализированный язык внутри CAD системы - но с графическим интерфейсом - может быть и сработает... :bis: Но может быть стоило сосредоточить внимание на разработке системы команд "Машины Базы Данных" - а не на внешних выразительных средствах (семантическое содержание которых - очень сильно зависит от реализации)

computer20
02-06-2007, 01:47 AM
>Надежность программирования

Каким способом вы ее оценили?

>Наличие значительной подсистемы моделирования для времени выполнения

А где она в языке?

>может быть стоило сосредоточить внимание на разработке системы команд "Машины Базы Данных"

Предполагается, что BAL будет компилироваться.

>По email может быть подробнее напишу

Напишите скорее.
Кстати, я не обижусь, если напишите прямо здесь.

crazy-mike
02-06-2007, 02:09 AM
>Надежность программирования
Каким способом вы ее оценили?

Надежность программирования в последнее означает простота поиска новых ошибок в программе при дописывании компонент программы.
Очень легко написать и отладить "одноразовую программу" ( как это обычно студенты на лабораторных работах делают). Все фокусы начинаются именно при поддержке и внесении изменений. Да - в самом деле существуют иерархические системы проектирования - еще с 60-х. Даже деревья проектов.
- Одна из причин , по которой приобрел популярность MUMPS. Позже - для повышения удобства визуального восприятия - деревья стали прятать в иерархию объектов и появились даже аппаратные средства поддержки пространства объектов (iMax от Intel , AS/400 от IBM - хотя существовали компьютеры с поддержкой древовидной организации памяти еще раньше).
В какой-то мере можно считать - что FORTH очень давно поддерживает деревья и иерархию словарей.

computer20
02-06-2007, 04:56 AM
>>Каким способом вы ее оценили?
>Надежность программирования в последнее означает

Я не спрашивал, что она означает, я спрашивал процедуру.
Сам контекст рассмотрения вопроса (контекст задали вы)
предполагает сравнительную характеристику BAL и какого-то другого средства.

Так проведите эту сравнительную характеристику.

P.S.
В сравнительной характеристике ОБЯЗАТЕЛЬНО присутствуют ДВА объекта, а не один.

crazy-mike
02-06-2007, 05:15 AM
Сам контекст рассмотрения вопроса (...)
предполагает сравнительную характеристику BAL и какого-то другого средства.
В сравнительной характеристике ОБЯЗАТЕЛЬНО присутствуют ДВА объекта, а не один.
1) Можно и больше двух:
Prolog, Lisp, MUMPS , Forth , APL, Java , D , C# , DATA BASIC
2) SQL просто бессмысленно с чем-либо сравнивать - так как там внутри есть фактически несколько языков ("Язык описания данных" и "Язык Запросов" - как минимум)
3) Во всех из (1) - есть общие черты , связанные с построением виртуальной машины (способ распределения памяти , определение семантики языка через композицию МП-автоматов).
Этот BAL по первому впечатлению чем-то неуловимо напоминает странную смесь LISP и APL/360. - эта ассоциация практически дает желаемую Вам сравнительную характеристику в минимализированной форме. Мне кажется - что желательным бы было явное разграничение декларативной и процедурной семантики (с учетом популярности не-фон-Неймановских архитектур)...

computer20
02-06-2007, 06:25 AM
>Мне кажется - что желательным бы было явное разграничение декларативной и процедурной семантики

Очень даже возможно,
я это уже обдумываю.

Вообще идеи BAL - использовать маску при извлечении деревьев, самостоятельно устанавливать TCP/IP-соединение и выдавать данные в виде деревьев (xml-деревьев. Все остальное - только развитие языка.

crazy-mike
02-07-2007, 12:36 AM
>
Вообще идеи BAL - использовать маску при извлечении деревьев, самостоятельно устанавливать TCP/IP-соединение и выдавать данные в виде деревьев (xml-деревьев. Все остальное - только развитие языка.
бессмертный КОБОЛ вместе с ЯОД КОДАСИЛ опять возвращается?
TCP/IP-connection в ENVIRONMENT SECTION
ну и все остальное...
Просто в СССР полной реализации языка КОБОЛ - ни в одной из систем не было... :bis:

Krakadil
02-07-2007, 08:22 PM
Не вдаваясь в подробности и сравннения возможностей, скажу только что меня озадачило само название BAL

Для нас Кракадилов и прочиx динозаврофф BAL всегда ассоциировался с Basic Assembly Language. In the public - Assembler

crazy-mike
02-07-2007, 11:34 PM
Не вдаваясь в подробности и сравннения возможностей, скажу только что меня озадачило само название BAL

Для нас Кракадилов и прочиx динозаврофф BAL всегда ассоциировался с Basic Assembly Language. In the public - Assembler
BALR 12,0
USING *,12
STM 14,12,12(13)
:bis:

computer20
02-08-2007, 10:11 AM
Кратко - язык вот о чем.

Современный SQL не годится:
в индустрии используются сложные, много-связынные структуры данных - деревья и графы, а SQL (и даже PL/SQL) не приспособлен для их обработки (кроме того, PL/SQL уже даже не является реляционным, "матричным" языком - это процедурный язык)
каждая строчка кода должна экономить слова, каждое лишнее слово - будь то "where" или "select" - это лишняя мозговая энергия. Нужен более совершенный синтаксис

Коммерческое промежуточное ПО имеет следующие недостатки:
требует инсталляции и занимает несравненно больше места, чем exe-файл, скомпилированный из какого-либо языка
своим существованием увеличивает нагрузку на аппаратуру
предъявляет неоправданно высокие требования к кодирующему и настраивающему персоналу

Промежуточное ПО, создаваемое под каждый конкретный проект на PHP/Perl (точнее SQL+PHP/Perl):
требует знания большего количества языков (разнородных синтаксисов)
в функциональной точки зрения не имеет преимуществ монолитного, однородного языка разработки
требует дополнительной настройки Web-сервера

Идеи BAL - использовать маску при извлечении деревьев, самостоятельно устанавливать TCP/IP-соединение и выдавать данные также в виде деревьев (xml-деревьев или специальным способом). Все остальное - только развитие языка. Сферы применения языка:
запросом в базе данных получить сразу дерево, а не декартово произведение, и отправить его сразу в браузер (при этом предпочтительнее определить свойство "kind" в css-файле HTML 6.0, чем писать полноценный XSL)
для использования в проекте Computer 2.0

Примеры BAL невозможно переписать на SQL, в нем отсутствуют следующие средства:
- вывод в IP-трафик, SQL с необходимостью требует прокладки (php, perl, etc)
- ввод из IP-трафика, SQL с необходимостью требует прокладки

crazy-mike
02-08-2007, 10:40 AM
Кратко - язык вот о чем.
Современный SQL не годится:
в индустрии используются сложные, много-связынные структуры данных - деревья и графы, а SQL (и даже PL/SQL) не приспособлен для их обработки
В индустрии (даже в микропроцессорных системах) в последнее время как-то больше пространства объектов используются...Я уже писал о том - что иерархия объектов практически является разновидностью древовидного представления...:skr: А итераторы (функции над массивами структур) еще в Common LISPе были. Весь парадокс "проблемы представления" в алгоритмических языках и соответствующих языках программирования - скорее всего заключается в ориентации этого языка на соответствующий класс пользователей. Пользователем может быть не только человек (программист и т.д.) - но и другая компьютерная система (программма). Соответственно и требования к пользовательским интерфейсам - несколько различны.

computer20
02-09-2007, 01:57 AM
В индустрии (даже в микропроцессорных системах) в последнее время как-то больше пространства объектов используются...Я уже писал о том - что иерархия объектов практически является разновидностью древовидного представления...:skr: А итераторы (функции над массивами структур) еще в Common LISPе были. Весь парадокс "проблемы представления" в алгоритмических языках и соответствующих языках программирования - скорее всего заключается в ориентации этого языка на соответствующий класс пользователей. Пользователем может быть не только человек (программист и т.д.) - но и другая компьютерная система (программма). Соответственно и требования к пользовательским интерфейсам - несколько различны.

Не понятно, ты одобряешь BAL в этой части его возможностей или нет.

crazy-mike
02-09-2007, 02:07 AM
Не понятно, ты одобряешь BAL в этой части его возможностей или нет.
Я любую новую по-настоящему экзотическую идею в языках программирования одобряю!!!! :bis: Только идея - больше на плагиат из APL и LISP - пока похожа...

computer20
02-09-2007, 03:55 AM
Только идея - больше на плагиат из APL и LISP - пока похожа...

Такие вопросы самые ценные.
Что общего вы видите между APL & LISP и BAL-ом, и чем они по вашему отличаются (видимо "минимально отличаются").

crazy-mike
02-09-2007, 04:06 AM
Такие вопросы самые ценные.
Что общего вы видите между APL & LISP и BAL-ом, и чем они по вашему отличаются (видимо "минимально отличаются").
:bis: минимально отличаются - в первую очередь с точки зрения языковой виртуальной машины и возможного вида U-кода. (промежуточного представления для компиляции в систему команд целевой архитектуры или
непосредсвенной интерпретации).. - Это сразу бросается в глаза....Добавьте еще возможность вычисления аргументов функций "по готовности" - для организации "естественного распараллеливания"....А принудительный линейно-последовательный порядок вычисления можно было бы задать обращением к специальной функции seq(....) - с переменным числом аргументов - вычисляемых в фиксированном порядке "слева-направо" или "справа-налево" и последовательно....Аргументами подобной функции конечно же могут быть constraints и exception traps...:34: кажется - понесло....

computer20
02-09-2007, 05:47 AM
>минимально отличаются - в первую очередь с точки зрения языковой виртуальной машины

Т.е. это у них общее (я вас правильно понял?).

А какие языки сильно отличаются с т.з. языковой виртуальной машины?

>Добавьте еще возможность вычисления аргументов функций "по готовности" - для организации "естественного распараллеливания".

А где это у меня?

>А принудительный линейно-последовательный порядок вычисления можно было бы

А это у меня где?
Может я че-то недопонимаю, ты обязательно скажи.

>кажется - понесло....

Лучше больше, чем меньше,
так что не ограничивайся.

computer20
02-09-2007, 05:47 AM
>минимально отличаются - в первую очередь с точки зрения языковой виртуальной машины

Т.е. это у них общее (я вас правильно понял?).

А какие языки сильно отличаются с т.з. языковой виртуальной машины?

>Добавьте еще возможность вычисления аргументов функций "по готовности" - для организации "естественного распараллеливания".

А где это у меня?

>А принудительный линейно-последовательный порядок вычисления можно было бы

А это у меня где?

>кажется - понесло....

Лучше больше, чем меньше,
так что не ограничивайся.

crazy-mike
02-09-2007, 06:05 AM
>минимально отличаются - в первую очередь с точки зрения языковой виртуальной машины
( 1 ) А какие языки сильно отличаются с т.з. языковой виртуальной машины?
( 2 ) А принудительный линейно-последовательный порядок вычисления можно было бы
А это у меня где?

( 1 ) - все очень сильно зависит от формального способа описания семантики языка. При использовании Синтаксически-Управляемого перевода в языках , описыаемых контекстно-свободными грамматиками естественным выглядит использование "стекового процессора" в качестве виртуальной машины. Почти все функциональные языки описываются однозначными контекстно-свободными грамматиками - поэтому функциональные языки имеют постоянных ярых сторонников в рядах разработчиков СИИ. (они в этом случае уверены в том - что написанная на этом языке программа в самом деле будет работать так - как она написана)....
( 2 ) - стандартная управляющая конструкция "последовательность выражений" в BAL все же есть - насколько я успел заметить. В кратком описании ее семантическое описание - вообще не фиксировалось. :umn:

computer20
02-09-2007, 09:11 AM
ОК.

BAL разрабатывался (громко сказано :) )
как язык под HTML60
(http://html60.chat.ru) и
Computer20
(http://computer20.chat.ru).
Было бы крайне ценным услышать ваши замечания по этим проектам.

Про HTML60 можно, наверное,
прямо в этой теме (отдельную тему про него удалили), для
Computer20 существует тема
http://forum.russianamerica.com/f/showthread.php?p=1449566#post1449566

Было бы очень важно услышать ваши соображения.