Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SOL (Соль) = Simple Objects Language


Страницы:   1 2 3 4 5 6 7 8

Vladimir Kladov ©   (2007-12-15 22:08:00) 

http://kolmck.net/sf/SOL=IdealSpade4Programmer.rar

Ну хорошо, пусть будет отдельная ветка.
Сразу ответ D[u]fa на
зачем каждый раз писать do, почему б нельзя объявить массив как arr[... , ..., ...]


Мы же пишем begin, и нормально. Анализ текста значительно упрощается. Дело даже не в компиляторе. Человеку тоже проще, если есть открывающая скобка блока. Есть ведь и эквиваленты, кому само слово DO не нравится (и END).

Массив не надо так объявлять. Я долго думал, почему. Например, во избежание непонимания того, что если есть объявление [3,3,3], то можно обратиться как [i,j] и получить элемент-масив из 3 элементов. Если можно объявлять только [3][3][3], согласитесь, такой проблемы вообще нет. В конце концов, ][ ничем не хуже , ,но видно этот "символ" лучше.

Спрашивайте ещё. Я пока пытаюсь "победить" многозадачность (точнее многонитевость). Изучил адовские рандеву, мониторы модулы-2, активные объекты эктив-оберона - ничего мне не нравится пока. И вообще. Механизм защиты CATCH, который я предложил как черновой, мне самому трашно не нравится. В общем, голову ещё есть над чем поломать.


homm   (2007-12-24 15:35:00) [61]

Мне вот не нравится бесконечное множество типов.
Вернет ли истину сравнение типов, один из которы  от 5 до 10, а второй не определе (т.е. число по умолчанию)


Vladimir Kladov   (2007-12-24 15:31:00) [62]

Кому не нравится TO, можно писать to. Можно ещё и эквивалент придумать. Только не '..' - сильно смахивает на опечатку при попытке написать число с ПТ. Я бы взял ->, но очень не хочется (догадаётесь сами, почему).

А что меня за отсутствие типа Boolean не ругает никто? Я для чего проект языка выставил на обозрение - чтобы не получилось как у Вирта, всё сам придумал, ни с кем не посоветовался, а потом в языке остаются перлы типа with, большего приоритета and/or, чем <, > и всякое такое. Я, кстати, думал, как же ввести boolean не вводя его в язык. Вот придумал, кажется: запрет на приведение типов с меньшим диапазонам к большему, и диапазонов с разным шагом, неявно, без преобразующей функции. Ещё подумаю над этим, но, кажется, этого должно хватить. Преобразуюзую можно на шаблонах сделать, как бы общую для всех (точнее, набор: обрезающие, выставляющие при выходе за диапазон ноль, со специальным параметром по умолчанию, генерирующие исключение, ... ).

Кому тяжело большой текст читать, можно средний. Только его внимательно надо читать, там воды-то уже как бы и нет вовсе, каждая запятая значимая.


homm   (2007-12-23 22:27:00) [63]

http://kolmck.net/sf/Geometry_vs_Cosmology.htm

Владимир, спасибо большое за материал. Описание соли (соля?) я так и не дочитал, но наткнулся на эту статью. Равномерность расширения правда застявляет задуматься, правда не опровергая на прямую БВ. От строк о вечности и равномерном развитии вселенной и правду на душе спокойнее стало :)


ANTPro   (2007-12-23 21:41:00) [64]

> [88] homm ©   (23.12.07 21:00)

Я вижу.

> [89] vpbar ©   (23.12.07 21:00)

Как в бейсике. Ну или похоже.

Я пока еще не читал осоль может, что-то не правильно понял. Но не стоит стили нескольких языков смешивать.


homm   (2007-12-23 21:00:00) [65]

> [86] ANTPro ©   (23.12.07 20:52)
> > P = M[ 6 TO 10];
>
> Basic? Почему не P=M[6..10]; ?

Смотри внимательнее, это не объявление, это операция присвоения указателю P участка массива M с элементами от 6 до 10.


vpbar   (2007-12-23 21:00:00) [66]

>>ANTPro ©   (23.12.07 20:52) [86]
А какая разница. Просто по желанию создателя диапазано в Соль описываются имено так. a TO b


vpbar   (2007-12-23 20:56:00) [67]

>>Vladimir Kladov ©   (23.12.07 20:00) [84]
Хм. то есть запрещено перекрывать определения. В принципе тоже вариант встречается. Со своими +-
ЗЫ. просто любопытно. Вы знаете Xerion и nemerle?


ANTPro   (2007-12-23 20:52:00) [68]

> [85] Vladimir Kladov ©   (23.12.07 20:03)
> P = M[ 6 TO 10];

Basic? Почему не P=M[6..10]; ?


Vladimir Kladov   (2007-12-23 20:03:00) [69]

А, кстати, выложил версию. Всё, что добавил, касается забытого и чуть не утраченного про инициализацию всех переменных, особенно указателей, так же перенёс в краткое описание про явное напоминание о присваивании LOOP- и SOLE-указателю (тоже ведь забыл), и решил "упростить" конструкцию присваивания значения указателю на массив:
P = M[ 6 TO 10];

Долго раздумывал. Конструкция какая-то не такая. Но ничего, зато удобно. Выглядит и правда проще.


Vladimir Kladov   (2007-12-23 20:00:00) [70]

Допустим у нас есть переменная XXX = 10.
Ниже мы хотим новую переменную, причем почему-то приходим к такому же имени (ну бедная фантазия, например, при сходном
назначении переменных)
XXX=100.
И все. Компилятор посчитает что это присваивание.

И чем жта ситуация отличается от случая, когда переменная XXX объявлена выше? И там, и там - присваивание.

Кстати, я же не запрещаю объявлять. Пожулуйста, берите и объявляйте:
X;
Чем не объявление? Но объявить другуюпеременную X во вложенном блоке таким же способом уже нельзя, компилятор заругается.


vpbar   (2007-12-23 19:07:00) [71]


Это девочка Маша. Маша урониля мячик.  Маша сходи туда -
 сюда.


О чем это я... Предлагаю все -таки подумать о том, чтобы переменные объявлялись. Это вполне просто и естественно. В человеческой речи обычно выделяется первое упоминание об обьекте. Так почему бы и Соль не сделать так.
К тому же homm ©   (23.12.07 18:46) [81] прав. Какие в Соль  есть методы сказать что это новая переменная с тем же именем, а не присваивание старой.
Допустим у нас есть переменная XXX = 10.
Ниже мы хотим новую переменную, причем почему-то приходим к такому же имени (ну бедная фантазия, например, при сходном назначении переменных)
XXX=100.
И все. Компилятор посчитает что это присваивание. Тип совпадает - ошибок нет. Но мы будем полагать что у нас другая переменная. А про ту XXX которая выше ма забудем, до той поры пока не заотлаживаемся до сыта. Или ради простоты нужно заставить программиста помнить все переменные.


homm   (2007-12-23 18:56:00) [72]

> [81] homm ©   (23.12.07 18:46)

Прошу прощения. Впредь постараюсь воздержатся от коментариев, пока не прочту хотябы пару экранов :)


homm   (2007-12-23 18:46:00) [73]

Переменная, объявленная на вышележащем уровне (в функции), не может переопределяться на более глубоком уровне (это и невозможно: оператор присваивания просто присваивает переменной другое значение).

Ох, Владимир, сколько же с этим мороки будет. Тяжело  понять почему все летит к чертям, и обидно потом, когда оказывается что за тысячу строк ранее переменная с таким же именем, как локальная обявлена глобальной и ее значение нельзя изменяить.


vpbar   (2007-12-23 17:53:00) [74]

>>homm ©   (23.12.07 17:48) [79]
Прочитайте. Весьма любопытно.

> Vladimir Kladov ©   (23.12.07 17:41) [76]
> > Не надо шаблонов? Может и не надо.
>

Это вы с кем беседуете?


vpbar   (2007-12-23 17:48:00) [75]

>>Vladimir Kladov ©   (23.12.07 17:27) [74]

> Где было обсуждение?

Гдето в "прочее", но давно (месяца два назад). И щас не могу найти. Видно в архив ушло.

> Сделать можно
Дык я знаю.
homm ©   (23.12.07 17:35) [75]
А ничего. Ибо sizeof нет в Соль


homm   (2007-12-23 17:48:00) [76]

> [77] Vladimir Kladov ©   (23.12.07 17:46)
> Что такое sizeof, зачем он вообще нужен и с чем его едят
> в языке, в котором размером данных занимается компилятор
> и самый нижний уровень программирования?

Хороший ответ :) Наверное все же застявлю себя седня прочесть описание :)


Vladimir Kladov   (2007-12-23 17:46:00) [77]

Вот поменьше бы опций :)

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


А что вернет sizeof(p) во втором варианте?

Что такое sizeof, зачем он вообще нужен и с чем его едят в языке, в котором размером данных занимается компилятор и самый нижний уровень программирования?


Vladimir Kladov   (2007-12-23 17:41:00) [78]

> При этих условиях const, in, var и out - совершенно ненужный
> семантический мусор для параметров.
Может быть, может быть. Просто мне больше нравится сказать компилятору что данный out парамеот должен обязятельно быть
изменен в функции.

Ну и скажите, описывая параметр как указатель. Если не изменяется, всегда передавайте по значению. Результат будет тот же: компилятор использует указатель для агрегатов. Проблемы?

При сборщике мусора пользовательский деструктор не нужен для освобождения памяти. Свой деструктор может понадобиться только для освобождения инкапсулированных ресурсов Всё у меня написано. Я разве собираюсь с кем-либо спорить? Я собираюсь это реализовывать. Мое мнение простое: системы с обобщённой сборкой мусора не годятся для рил-тайм систем. И чем больше данных может лежать в куче, и чем более интенсивно она используется, тем меньше годятся. Поэтому и искал способ, как быть если нужна сборка мусора, но без сборщика.

Не надо шаблонов? Может и не надо. Copy-paste тоже метод, хотя вместе с умножением кода умножаются и ошибки. Причём не линейно, а гораздо быстрее.

Функциональные языки меня не интересуют. Привычка. А может, склад ума такой. И неэффективные они, кроме некоторых очень узких классов задач вроде моделирования ИИ. Я их не собираюсь отменять, пусть живут. Мне императив нужен, прямой как палка.


homm   (2007-12-23 17:35:00) [79]

> [74] Vladimir Kladov ©   (23.12.07 17:27)
> Впрочем, можно и оба варианта реализовать, и просто переключаться
> в опциях.

Вот поменьше бы опций :)
А что вернет sizeof(p) во втором варианте?


vpbar   (2007-12-23 17:27:00) [80]

Прошу прощения. Тыкнул не туда. Продолжаем.

> Ну нету в Delphi шаблонов, и не надо

Надо. Мне, по крайней мере. Но тут у вас, вроде ничего революционного. В том же nemerle и haskel-е похожий подход.


Страницы:   1 2 3 4 5 6 7 8

Наверх

Титульная страница Поиск, карта сайта Написать письмо