Концепции языка Zonnon
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 26.11.04 16:01
Оценка: :))
Интересная презентация:

The Concepts of Zonnon
A language for systems engineering with Modules, Objects and Concurrency
Brian Kirk, David Lightfoot andProf Jurg Gutknecht


http://www.zonnon.ethz.ch/papers/The_Concepts_of_Zonnon_6_y041123.pdf

227'755 bytes



На пятой странице приведен рисунок из которого следует, что следующим шагом после современных Java и C#, будут языки Active Java и Active C# (названия, разумеется, условные). Так вот Zonnon принадлежит этой "активной" серии...
Re: Концепции языка Zonnon
От: Mamut Швеция http://dmitriid.com
Дата: 26.11.04 16:26
Оценка:
Боюсь, что не туда, но я не понял на 13-ой странице:

PROCEDURE {PUBLIC} Next( ): REAL;


Ну что за все с головы на ноги. Чем хуже

PUBLIC PROCEDURE Next( ): REAL;


я не понимаю, хоть убейте.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>


dmitriid.comGitHubLinkedIn
Re[2]: Концепции языка Zonnon
От: bkat  
Дата: 26.11.04 16:32
Оценка: :))) :))) :)))
Здравствуйте, Mamut, Вы писали:

M>Боюсь, что не туда, но я не понял на 13-ой странице:


M>

PROCEDURE {PUBLIC} Next( ): REAL;


M>Ну что за все с головы на ноги. Чем хуже


M>

PUBLIC PROCEDURE Next( ): REAL;


M>я не понимаю, хоть убейте.


Скажи спосибо, что не

;LAER : ) (txeN ERUDECORP CILBUP

При определенной снаровке и опыте, который приобретается, можно работать и с таким
Re[3]: Концепции языка Zonnon
От: Kh_Oleg  
Дата: 26.11.04 16:37
Оценка:
Здравствуйте, bkat, Вы писали:

M>>Боюсь, что не туда, но я не понял на 13-ой странице:

M>>

PROCEDURE {PUBLIC} Next( ): REAL;

M>>Ну что за все с головы на ноги. Чем хуже
M>>

PUBLIC PROCEDURE Next( ): REAL;

M>>я не понимаю, хоть убейте.
B>Скажи спосибо, что не
B>

B>;LAER : ) (txeN ERUDECORP CILBUP

B>При определенной снаровке и опыте, который приобретается, можно работать и с таким
Девиз флеймера: ни одного поста без ответа?

А по существу нечего сказать?

Насчет модификаторов — мне фигурные скобки тоже не очень нравятся, но существенных проблем при программировании не возникает.
Может быть потому что, когда ключевое слово procedure идет первым, упрощается структура анализатора.
Re[4]: Концепции языка Zonnon
От: bkat  
Дата: 26.11.04 16:40
Оценка:
Здравствуйте, Kh_Oleg, Вы писали:

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


M>>>Боюсь, что не туда, но я не понял на 13-ой странице:

M>>>

PROCEDURE {PUBLIC} Next( ): REAL;

M>>>Ну что за все с головы на ноги. Чем хуже
M>>>

PUBLIC PROCEDURE Next( ): REAL;

M>>>я не понимаю, хоть убейте.
B>>Скажи спосибо, что не
B>>

B>>;LAER : ) (txeN ERUDECORP CILBUP

B>>При определенной снаровке и опыте, который приобретается, можно работать и с таким
K_O>Девиз флеймера: ни одного поста без ответа?

K_O>А по существу нечего сказать?


По существу уже много чего сказано.

K_O>Насчет модификаторов — мне фигурные скобки тоже не очень нравятся, но существенных проблем при программировании не возникает.

K_O>Может быть потому что, когда ключевое слово procedure идет первым, упрощается структура анализатора.

Возможно. Если создатели языка больше думают о проблемах создателей анализатора,
то кое о чем это тоже говорит.
Но на самом деле это всего лишь догадки.
Re[2]: Концепции языка Zonnon
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 26.11.04 16:44
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Боюсь, что не туда, но я не понял на 13-ой странице:


M>

PROCEDURE {PUBLIC} Next( ): REAL;


M>Ну что за все с головы на ноги. Чем хуже


M>

PUBLIC PROCEDURE Next( ): REAL;


M>я не понимаю, хоть убейте.


{PUBLIC, ...} — это модификаторы, их может быть несколько. Так что, лично я бы предпочел писать их в конце и без скобок:
PROCEDURE Do1(), PUBLIC,  NEW, EXTENSIBLE;
PROCEDURE Do2(), NEW, CONST;
PROCEDURE Do3(), NEW, ABSTRACT;
PROCEDURE Do4(), STATIC, OVERRIDE;
PROCEDURE Do5(), EMPTY;
Re[3]: Концепции языка Zonnon
От: Mamut Швеция http://dmitriid.com
Дата: 26.11.04 17:07
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, Mamut, Вы писали:


M>>Боюсь, что не туда, но я не понял на 13-ой странице:


M>>

PROCEDURE {PUBLIC} Next( ): REAL;


M>>Ну что за все с головы на ноги. Чем хуже


M>>

PUBLIC PROCEDURE Next( ): REAL;


M>>я не понимаю, хоть убейте.


СГ>{PUBLIC, ...} — это модификаторы, их может быть несколько. Так что, лично я бы предпочел писать их в конце и без скобок:

СГ>
СГ>PROCEDURE Do1(), PUBLIC,  NEW, EXTENSIBLE;
СГ>PROCEDURE Do2(), NEW, CONST;
СГ>PROCEDURE Do3(), NEW, ABSTRACT;
СГ>PROCEDURE Do4(), STATIC, OVERRIDE;
СГ>PROCEDURE Do5(), EMPTY;
СГ>


Имхо, предложенный Вами вариант лучше соответствует паскалевскому синтаксису.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>


dmitriid.comGitHubLinkedIn
Re[2]: Концепции языка Zonnon
От: eugals Россия  
Дата: 26.11.04 17:23
Оценка: +1
Здравствуйте, Mamut, Вы писали:

M>Боюсь, что не туда, но я не понял на 13-ой странице:

M>

PROCEDURE {PUBLIC} Next( ): REAL;

M>Ну что за все с головы на ноги. Чем хуже
M>

PUBLIC PROCEDURE Next( ): REAL;

M>я не понимаю, хоть убейте.

Э-э-э.
Именно про это же Влад тебе тут
Автор: VladD2
Дата: 29.10.04
и говорил, меньше месяца назад
... << RSDN@Home 1.1.4 beta 3 rev. 215>>
Re[3]: Концепции языка Zonnon
От: Mamut Швеция http://dmitriid.com
Дата: 26.11.04 17:39
Оценка:
Здравствуйте, eugals, Вы писали:

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


M>>Боюсь, что не туда, но я не понял на 13-ой странице:

M>>

PROCEDURE {PUBLIC} Next( ): REAL;

M>>Ну что за все с головы на ноги. Чем хуже
M>>

PUBLIC PROCEDURE Next( ): REAL;

M>>я не понимаю, хоть убейте.

E>Э-э-э.

E>Именно про это же Влад тебе тут
Автор: VladD2
Дата: 29.10.04
и говорил, меньше месяца назад


Старею

Правда тут
Автор: bkat
Дата: 26.11.04
интересный аспект:

K_O>Может быть потому что, когда ключевое слово procedure идет первым, упрощается структура анализатора.

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

... << RSDN@Home 1.1.4 beta 3 rev. 185>>


dmitriid.comGitHubLinkedIn
Re: Концепции языка Zonnon
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.11.04 04:31
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>На пятой странице приведен рисунок из которого следует, что следующим шагом после современных Java и C#, будут языки Active Java и Active C# (названия, разумеется, условные). Так вот Zonnon принадлежит этой "активной" серии...


Про Active J читать тут: http://gzip.rsdn.ru/Forum/Message.aspx?mid=849295&amp;only=1
Автор: VladD2
Дата: 13.10.04
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Концепции языка Zonnon
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.11.04 04:31
Оценка: +1
Здравствуйте, Сергей Губанов, Вы писали:

СГ>{PUBLIC, ...} — это модификаторы, их может быть несколько. Так что, лично я бы предпочел писать их в конце и без скобок:

СГ>
СГ>PROCEDURE Do1(), PUBLIC,  NEW, EXTENSIBLE;
СГ>PROCEDURE Do2(), NEW, CONST;
СГ>PROCEDURE Do3(), NEW, ABSTRACT;
СГ>PROCEDURE Do4(), STATIC, OVERRIDE;
СГ>PROCEDURE Do5(), EMPTY;
СГ>


Ага. Очень по Виртовски. Так ведь парсить проще.

На фиг живым людям чиать наизнанку? Ты не не написал бы "процедура сделать1 публичная", а написал бы "публичная процедура сделать1". Так зачем восприятие поганить?
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Концепции языка Zonnon
От: Трурль  
Дата: 27.11.04 14:20
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>На фиг живым людям чиать наизнанку? Ты не не написал бы "процедура сделать1 публичная", а написал бы "публичная процедура сделать1". Так зачем восприятие поганить?


Наизнанку это "защищенная публичная сделать1()", а что процедура предлагается догадаться по контексту.
Re[4]: Концепции языка Zonnon
От: Kh_Oleg  
Дата: 29.11.04 07:43
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Сергей Губанов, Вы писали:


СГ>>{PUBLIC, ...} — это модификаторы, их может быть несколько. Так что, лично я бы предпочел писать их в конце и без скобок:

СГ>>
СГ>>PROCEDURE Do1(), PUBLIC,  NEW, EXTENSIBLE;
СГ>>PROCEDURE Do2(), NEW, CONST;
СГ>>PROCEDURE Do3(), NEW, ABSTRACT;
СГ>>PROCEDURE Do4(), STATIC, OVERRIDE;
СГ>>PROCEDURE Do5(), EMPTY;
СГ>>


VD>Ага. Очень по Виртовски. Так ведь парсить проще.

А что смешного? Только потому, что этот критерий Вирт выдвинул? Или можешь привести преимущества сложных парсеров перед простыми аналогичной фонкциональности?

VD>На фиг живым людям чиать наизнанку? Ты не не написал бы "процедура сделать1 публичная", а написал бы "публичная процедура сделать1". Так зачем восприятие поганить?

Здесь я с Сергеем согласен, мне тоже такой вариант кажется наиболее удачным. Наизнанку никто не пишет. Я вначале определяю объект (т.е. определяю, что у меня будет именно процедура, а не переменная, класс или константа), а потом уточняю описание этого объекта — статический или, например, перегруженный.

Нигде в программировании мне не будет позволено изменять свойства некоторого объекта, предварительно не описав этот объект. Так и с языками программирования.

А в С-подобных языках модификатор стоит перед объявлением языковой конструкции именно из-за стремления сделать ЯП как можно более похожим на английский, где все прилагательные, относящиеся к существительному, пишутся до этого существительного.

В итоге это приводит к усложнению компилятора. Где-то в стандарте С++ встречается фраза: "Если некоторые выражение выглядит, как объявление, значит это объявление, иначе — это оператор." Вот уж точно "Прэлестно!"
Re[3]: После здравого размышления...
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 29.11.04 09:17
Оценка: :))
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, Mamut, Вы писали:


M>>Боюсь, что не туда, но я не понял на 13-ой странице:


M>>

PROCEDURE {PUBLIC} Next( ): REAL;


M>>Ну что за все с головы на ноги. Чем хуже


M>>

PUBLIC PROCEDURE Next( ): REAL;


M>>я не понимаю, хоть убейте.


СГ>{PUBLIC, ...} — это модификаторы, их может быть несколько. Так что, лично я бы предпочел писать их в конце и без скобок:

СГ>
СГ>PROCEDURE Do1(), PUBLIC,  NEW, EXTENSIBLE;
СГ>PROCEDURE Do2(), NEW, CONST;
СГ>PROCEDURE Do3(), NEW, ABSTRACT;
СГ>PROCEDURE Do4(), STATIC, OVERRIDE;
СГ>PROCEDURE Do5(), EMPTY;
СГ>


Хотя, конечно, после здравого размышления, написание модификаторов сразу же после слова PROCEDURE ведь действительно более правильно. Вот смотрите, компилятор прочитал слово PROCEDURE, ага думает, сейчас значит будет процедура. Но процедуры бывают разные — абстрактные, обычные, виртуальные, пустые или еще какие-нибудь. Вот компилятор и думает: "А как дальше-то эту процедуру разбирать?". А тут бац, ему сразу же подсказочка вроде {ABSTRACT} — компилятор, мгновенно запускает подсистему синтаксического разбора ABSTRACT процедур.

ПРОЦЕДУРА {НОВАЯ, ПУБЛИЧНАЯ, АБСТРАКТНАЯ} ИмяПроцедуры(Параметры...): ТипВозвращаемогоЗначения;


Кстати, в конце место осталось, туда тоже можно, какие нибудь другие модификаторы наставить...
Re[4]: Концепции языка Zonnon
От: Kluev  
Дата: 29.11.04 10:00
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Сергей Губанов, Вы писали:


СГ>>{PUBLIC, ...} — это модификаторы, их может быть несколько. Так что, лично я бы предпочел писать их в конце и без скобок:

СГ>>
СГ>>PROCEDURE Do1(), PUBLIC,  NEW, EXTENSIBLE;
СГ>>PROCEDURE Do2(), NEW, CONST;
СГ>>PROCEDURE Do3(), NEW, ABSTRACT;
СГ>>PROCEDURE Do4(), STATIC, OVERRIDE;
СГ>>PROCEDURE Do5(), EMPTY;
СГ>>


VD>Ага. Очень по Виртовски. Так ведь парсить проще.


VD>На фиг живым людям чиать наизнанку? Ты не не написал бы "процедура сделать1 публичная", а написал бы "публичная процедура сделать1". Так зачем восприятие поганить?


ИМХО компилер должен быть умным и позволять разные варианты по вкусу.
Мне например больше подходит:

double public static inline
   procedure()
{
 // понеслась
}

int virtual public
    function()
{
  // бла бла бла
}


Сначала возвращаемый тип потом прочие второстепенные вещи в порядке убывания, и строчнй ниже имя чтобы читать удобнее.

А иногда я бы писал бы так:
int method() const static public inline
{
}
Re: Концепции языка Zonnon
От: Курилка Россия http://kirya.narod.ru/
Дата: 29.11.04 11:46
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>На пятой странице приведен рисунок из которого следует, что следующим шагом после современных Java и C#, будут языки Active Java и Active C# (названия, разумеется, условные). Так вот Zonnon принадлежит этой "активной" серии...


Т.е. Active Perl — это начало серии?
Re[2]: Концепции языка Zonnon
От: hrg Россия  
Дата: 29.11.04 18:23
Оценка: :)
Курилка -> Re: Концепции языка Zonnon

К> Здравствуйте, Сергей Губанов, Вы писали:


СГ>>На пятой странице приведен рисунок из которого следует, что следующим

СГ>>шагом после современных Java и C#, будут языки Active Java и Active
СГ>>C# (названия, разумеется, условные). Так вот Zonnon принадлежит этой
СГ>>"активной" серии...

К> Т.е. Active Perl — это начало серии?


ты зачем козыри раньше времени раскрываешь?

<!-- Yury Kopyl aka hrg | Гордость мешает доходам! -->
Posted via RSDN NNTP Server 1.9 delta
Re[5]: Концепции языка Zonnon
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.11.04 21:55
Оценка: 1 (1) +3
Здравствуйте, Kh_Oleg, Вы писали:

K_O>Или можешь привести преимущества сложных парсеров перед простыми аналогичной фонкциональности?


Парсеры делаются сложными не ради самоцели. Они делаются сложными, чтобы упростить восприятие кода человеком. Другими словами делается язык удобный для человека, а уже под него делается парсер. То что сложно для парсера зачастую оказывается простым для человека, и наоборот.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Концепции языка Zonnon
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.11.04 21:55
Оценка:
Здравствуйте, Kluev, Вы писали:

K>Мне например больше подходит:


K>
K>double public static inline
K>   procedure()
K>{
K> // понеслась
K>}

Нда. Т.е. процедура возвращающая значение?

K>int virtual public
K>    function()
K>{
K>  // бла бла бла
K>}
K>


А нафиг такой изврат?
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Концепции языка Zonnon
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 30.11.04 08:13
Оценка:
Здравствуйте, VladD2, Вы писали:

VD> Нда. Т.е. процедура возвращающая значение?


Процедура возвращающая значение называется процедурой-функцией:
PROCEDURE f(x: REAL): REAL;

Специальное ключевое слово function используемое для процедур-функций было в старом Паскале 70-го года, в Оберонах обычные процедуры и процедуры-функции обозначаются одним и тем же ключевым словом PROCEDURE.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.