Re[12]: А вот вам и новый язык. Зацените. Можно ругать.
От: batu Украина  
Дата: 17.09.10 11:01
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, batu, Вы писали:


B>>Так понятно. Инструкции также могут обладать всеми этими качествами. Не вижу противоречия.

S>Я не вижу каким образом инструкции могут обладать этими качествами. Поясните жизненный цикл этих ваших "объектов-инструкций": что является их состоянием, какие сообщения они обрабатывают, какие сообщения посылают другим объектам.
Сначала про "жизненный цикл". В общем случае объекты создаются не только динамически. Есть статические объекты. Есть базы данных или текст. Это тоже объекты и хотя это не программа (а у меня нет разницы между программой и документом. Даже форматов нет.). А в программе есть инструкции. Это тоже объекты. Говорить о жизненом цикле таких объектов. Ну, вот сколько существует документ, столько и существуют в нем объекты. Объекты создающиеся динамически это просто объекты к которым применяется оператор (инструкция, объект) Dim или New.
Итак, как у меня создаются объекты? Подчеркиваю У МЕНЯ. Хотя все происходит как обычно, просто я акцентирую на этом внимание потому, что предлагаю именно такой подход.
1. Первый уровень объектов мы создаем клавиатурой. Это, буквы и знаки (в дальнешем просто знаки)и размещаются в документе по общепринятым правилам. В общем случае каждому знаку соответсвует какой-то объект. В частном случае это знаки.

2. Второй уровень объектов возникает при лексическом анализе. Это и лексемы и значения. Лексический анализатор встретив в тексте "10" создает объект класса Integer со значением 10, а встретив 1.Июня.1998г создаст объект класса Date, c соответствующим значением. Ну, и создаются объекты-лексемы, согласно лексического анализа. Так как глубоко в лексику языка мы внедряться не будем, то и примеры лексем я опущу. Но, факт в том, что последовательность объектов-знаков преобразуется в объекты-лексемы. И теперь мы можем смотреть на текст с двух точек зрения. С одной стороны это знаки. Каждый из которых может иметь значения свойств соответсвующих своему классу. Например шрифт, цвет и т.д..
С другой стороны эти знаки составляют лексему. А это объект совсем другого класса и со своими значениями свойств, которые вполне возможно заинтересуют нас процессе отладки, и сто процентов будут использованы в синтаксическом анализе. Такой вот двойственный подход. Но это еще не все. Есть и третий уровень создания объектов.
3. Синтаксический анализ создает из последовательности объектов-лексем и объектов-знаков новые объекты! Так как синтаксис у меня простой сначала имя класса ,а затем имя создаваемого объекта (далее в скобках идет присвоение значений свойств объекту и определение вложеных объектов) то выглядит это примерно так.

Form Fm {Size=120;50 Label Lb {Size=20;30 Text="Конечно"}}
For I=0 To N { J+=1 Z=X*Y}


Из первой строки синтаксический анализатор создаст форму с вложеной меткой и текстом "Конечно".
Вторая строка создаст объект-инструкцию класса For, с вложенными операторами J+=1 Z=X*Y

Это все будет документ, и здесь нет объектов созданных динамически во время выполнения программы. Для создания динамических объектов, необходимо применить к объекту объект-инструкцию класса Dim или New. Вот так

New Form Fm {Size=120;50 Label Lb {Size=20;30 Text="Конечно"}}
New For I=0 To N { J+=1 Z=X*Y}


Совершенно верно изумление. Мы создаем оператор For в динамической области. Давай только не будем сейчас обсуждать зачем это нужно.
Но это четвертый уровень создания объектов.
Теперь, надеюсь, понятно, что такая многоуровневость позволяет иметь абсолютно всю информацию как при выполнении так и при редактировании, и позволяет создавать как программы, так и документы.
Про отсутсвие форматов я, конечно, нагрузил. Просто он единый, и содержится внутри файла как описание классов объектов содержащихся в документе. Ясный пень объекты системных и библиотечных классов в этом не нуждаются. Достаточно ссылки на версию системы и на библиотеку.

Фух! Перерыв.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.