OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 10 Апрель, 2024 09:18

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 94 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
СообщениеДобавлено: Вторник, 20 Январь, 2009 14:22 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Да-да-да!

А протокол сводится к ещё более базовым понятиям алгоритмизации... И в итоге - уму непостижимо, сколько окольных велосипедных троп натоптано в ИТ )))


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 14:40 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
Лучше так:
Илья Ермаков писал(а):
... протокол сводится к ... алгоритмизации...

Потому, как само описание протокола уже предопределяет реализацию (костяка) действий по его поддержанию...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 15:17 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Именно так :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 16:04 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
Илья Ермаков писал(а):
Именно так :)

А теперь лёгкое движение руки приводит к смычке средств декларации и описания состояний...
Только смотреть надо на "оси" состояние/входное воздействие не со стороны разбора входных сигналов по отношению к состоянию (находимся там-то, как реагировать в этом случае на пришедшее воздействие?), а - ко входу (пришло тот-то, а где мы находимся, что бы как-то среагировать?)...

То есть:

первый подход:

Код:
while( ! quit )
{
    read_chanel( input );
    switch( state )
    {
    case STATE_1:
        switch( input )
        {
         ...
        }
    case STATE_N:
    ...
    }
    ...
}


второй подход:

Код:
while( ! quit )
{
    read_chanel( input );
    switch( input )
    {
    case DATA_1:
        switch( state )
       {
         ...
        }
    case DATA_M:
    ...
    }
    ...
}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 16:49 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Владимир Лось писал(а):
То есть:


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 17:19 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
Vlad писал(а):
Владимир Лось писал(а):
То есть:

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

Правильно.
А Вам лично предоставляется почётное право скрестить boost::Spirit & boost::Statchart...
Тока учтите, Вы должны обеспечить механизмы соблюдения протокола обмена в компал- И в ран- тайме (порядок прихода аргументов в соответствии с описанием протокола, их тип, домены значений. В ОБЕ стороны! :twisted: )


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 17:47 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Владимир Лось писал(а):
А Вам лично предоставляется почётное право скрестить boost::Spirit & boost::Statchart...


Для меня пока неочевидна практическая ценность подобной декларации интерфейсов. Можно пример такого интерфейса компонента, динамика взаимодествия с которым плохо выражается традиционными средствами и становится кристально ясной при "протокольном" описании?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 18:03 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
Vlad писал(а):
Для меня пока неочевидна практическая ценность подобной декларации интерфейсов.
"Виноград зелен!" ? :twisted:
Vlad писал(а):
Можно пример такого интерфейса компонента, динамика взаимодествия с которым плохо выражается традиционными средствами и становится кристально ясной при "протокольном" описании?
См., например, описание Zonnon-а или Composita...
А как "кристально ясно" ДИНАМИКА ВЗАИМОДЕЙСТВИЯ выражется "традиционными средствами", без привлечения доп. документации и средств разработки/проектирования, кроме собственно программного текста???


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 18:44 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Владимир Лось писал(а):
"Виноград зелен!" ? :twisted:


Что вы так вечно воинственно настроены? Я не сказал, что виноград зелен. Я сказал, что не вижу какой он. Покажите поближе.

Владимир Лось писал(а):
См., например, описание Zonnon-а или Composita...


Уж послали так послали. Ладно, посмотрю.

Владимир Лось писал(а):
А как "кристально ясно" ДИНАМИКА ВЗАИМОДЕЙСТВИЯ выражется "традиционными средствами", без привлечения доп. документации и средств разработки/проектирования, кроме собственно программного текста???


Гхм.

Код:
o = get_object();
o.method1();
o.method2();


Есть объект. Ему посылается сообщение method1, затем method2. Какие в этом примере проблемы с динамикой?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 19:28 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Похоже, это и есть второй способ.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 19:50 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
2Vlad:

Динамика взаимодействия-то явно не специфицируется нигде. Специфируется только "алфавит" и "лексика" взаимодействия.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 19:52 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Владимир Лось писал(а):
описание Zonnon-а или Composita...


Посмотрел. Возьмем за основу такой интерфейс:
Код:
INTERFACE HotelService;
{
    IN CheckIn
    (
    OUT AssignedRoom
        { IN EnterRoom IN ExitRoom }
    IN CheckOut
    OUT Bill
    [ IN DirectPayment ]
    |
    OUT FullyBooked
    )
}
END HotelService;


Вот традиционный подход:
Код:
interface HotelService
{
    AssignedRoom CheckIn() throw(FullyBooked);
    Bill CheckOut(AssignedRoom);
};

interface AssignedRoom
{
    void EnterRoom();
    void ExitRoom();
};

interface Bill
{
    void DirectPayment();
};


На мой взгляд "динамика" в традиционном варианте обозначена вполне ясно. Покритикуйте.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 19:57 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Динамика взаимодействия-то явно не специфицируется нигде. Специфируется только "алфавит" и "лексика" взаимодействия.


Пусть так. Но все это должно имет какой-то практический выхлоп? Сама по себе идея записать интерфейс в BNF конечно интересна, но хочется посмотреть на практическое применение.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 20:04 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Ну, ёлки-палки, любое клиент-серверное взаимодействие так разложите )
Подключение и транзакции на некотором объекте, предоставляющем некоторую услугу.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 20:09 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Ну, ёлки-палки, любое клиент-серверное взаимодействие так разложите )


Это предложение или утверждение? Если предложение, то я по-прежнему жду пример такого взаимодействия, где традиционный подоход будет коряв. Если утверждение, то к чему весь сыр-бор?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 20:24 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
Vlad писал(а):
Илья Ермаков писал(а):
Ну, ёлки-палки, любое клиент-серверное взаимодействие так разложите )

Это предложение или утверждение? Если предложение, то я по-прежнему жду пример такого взаимодействия, где традиционный подоход будет коряв. Если утверждение, то к чему весь сыр-бор?

ПОслушайте, Vlad, я не воинственен!
Такое впечатление, что Вам просто доставляет удовольствие приходить и "пёрышком в ноздрю лазить"...
Вам лично какие примеры нужны?
Идёте на сборник документов rfc (как пример явного частого описания взаимодействия - вот уж просто описания диалогов!) и смотрите, как там народ почти в каждом документе подобные описания применяет...) Теперь представьте, как меньше было бы ошибок реализации логики взаимодействия, имей реализаторы просто ЯЗЫК ПРОГРАММИРОВАНИЯ, позволяющий вносить декларации взаимодействия в текст и гарантирующий проверку соблюдения объявленных протоколов...

Приведённый Вами пример - примитивен. Один-в-один. Без возможной промежуточной логики формирования "вопрсов" и "ответов". А логика может быть чрезвычайно запутанной... И Вы всегда взмози отыскать в "макаронинах" текстовки правильное расположение операторов, формирующих обмен по протоколу???


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 20:41 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
Vlad писал(а):
Но все это должно имет какой-то практический выхлоп? Сама по себе идея ... конечно интересна, но хочется посмотреть на практическое применение.

Вапсчето говоря, очень мне это напоминает дискуссии во времена раннего внедрения ООП...
Vlad, никогда не хотели оказаться в роли общепризнанного ретрограда? :twisted:
То, что Вы успешно освоили и пользуетесь технологиями вчерашнего и сегодняшнего дня, нисколько не даёт Вам право, за личиной "непонимания" ради чего кто-то пытается применить что-то новое, охаивать и поносить сообщество! То, что Вы с таким воодушевлением выдаёте за что-то грандиозно-всеобщеспасительное (и - окончательно-правильно-выбранное), ВЧЕРА ещё поносилось тогдашними подобными Вам (только тогда они "на отлично" ориентировались в модификациях Фортрана, его библиотеках и пакетных командах Примуса на ЕСках)...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 20:50 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Владимир Лось писал(а):
Такое впечатление, что Вам просто доставляет удовольствие приходить и "пёрышком в ноздрю" лазить...


Нет, просто прежде чем что-то отрезать (скрещивать boost::spirit и boost::statechart), предпочитаю тщательно отмерить.

Владимир Лось писал(а):
Вам лично какие примеры нужны?


Примеры "нетрадиционного" описания интерфейсов, которые позволяют понять как функционирует система лучше, чем в случае "традиционного" описания.

Владимир Лось писал(а):
Идёте на сборник документов rfc


Еще дальше послали. Туда я уже не пойду.

Владимир Лось писал(а):
Теперь представьте, как меньше было бы ошибок реализации логики взаимодействия, имей реализаторы набор просто ЯЗЫК ПРОГРАММИРОВАНИЯ, позволяющий вносить декларации взаимодействия в текст и гарантирующий проверку соблюдения объявленных протоколов...


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


Последний раз редактировалось Vlad Вторник, 20 Январь, 2009 20:57, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 20:56 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Владимир Лось писал(а):
То, что Вы успешно освоили и пользуетесь технологиями вчерашнего и сегодняшнего дня, нисколько не даёт Вам право, за личиной "непонимания" ради чего кто-то пытается применить что-то новое, охаивать и поносить сообщество!


В каком месте я "охаиваю и поносю"? Больше всего отрицательных эмоций здесь исходит от вас. Пытайтесь себе применить "что-то новое", жалко что-ли. Не можете объяснить "зачем" - не надо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 20 Январь, 2009 21:05 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
Vlad писал(а):
Нет, просто прежде чем что-то отрезать (скрещивать boost::spirit и boost::statechart), предпочитаю тщательно отмерять.

Но складывается впечатление, что Вы и "отмерять"-то САМИ не хотите...
Вы постоянно просите, что бы Вам "разжевали и в рот положили"...

Владимир Лось писал(а):
Примеры "нетрадиционного" описания интерфейсов, которые позволяют понять как функционируется система лучше, чем в случае "традиционного" описания.

Ну да, а то, что городится огород с UML, BOM-ом, диаграммами а ля Дракон, это Вам - не доказательство?! Сам факт производства таких усилий?
А "нетрадиционность"-то описания деклараций - В ЧЁМ? Тот же текст, та же "РБНФ-истость" деклараций...
В чёсм ваши сомненья и недоверия? В том, что в языке нужна реализация поддержки и рухнет нужность системы ваших знаний по традиционному вороху средств?

Владимир Лось писал(а):
Еще дальше послали. Туда я уже не пойду.

О, Господи! Вам нужна была иллюстрация, непосредственно "из жизни"? Уж то, что непосредственно, касающиеся любимого нами всеми интернета и сетевых технологий, Вам не нравится??? - Ваше дело и ваши проблемы! Анализ я за Вас провести у Вас в голове не могу...

Владимир Лось писал(а):
Да, наверное было бы круто. Но мне не кажется, что композита подходящий вариант для подобных выкладок.

А на чём это "кажущность" основана?
Вот я, например уверен, что - как раз подходит! Там средство для такого описание есть и оно верифицируемо (компайл- + реал- тайм).
Вы можете такое сделать на Си++ или указать на готовое решение? Нет! И не сможете никогда (без изменения кардинального языка Си++).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 94 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB