DRAKON.SU

Текущее время: Четверг, 28 Январь, 2021 19:26

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




Начать новую тему Ответить на тему  [ Сообщений: 127 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения: Re: Так чего же нехватает ДРАКОНу?
СообщениеДобавлено: Воскресенье, 16 Май, 2010 18:50 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 51
Info21 писал(а):
... с двумерной картинкой жестко отформатированного текста.
... , записанного моноширинным шрифтом :mrgreen: .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Так чего же нехватает ДРАКОНу?
СообщениеДобавлено: Воскресенье, 16 Май, 2010 21:09 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 140
Откуда: Троицк, Москва
igor писал(а):
Info21 писал(а):
... с двумерной картинкой жестко отформатированного текста.
... , записанного моноширинным шрифтом :mrgreen: .
Да уж кому что.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Так чего же нехватает ДРАКОНу?
СообщениеДобавлено: Понедельник, 17 Май, 2010 05:01 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Info21 писал(а):
Драконограф писал(а):
Я не уверен, что при создании техноязыка ставилась цель превзойти все существующие способы разработки для всех имеющих место задач - по-моему, задача ставилась сократить в среднем умственные усилия сочинителя - см. /Паронджанов, 2001, Введение, Гл.1-5/.
Странное противопоставление.

Драконограф писал(а):
Картинка - удобная форма для передачи смысла
Текст -- это тоже картинка, состоящая из других картинок (букв).

Драконограф писал(а):
ограничение только текстовой формой алгоритма и программы мне представляется как раз разновидностью "избыточной сложности" - причём и для части программистов, они ведь тоже люди :))...
Вы всё время игнорируете главный вопрос:

Чем двумерная Дракон-картинка настолько лучше двумерной картинки отформатированного текста, чтобы оправдать избыточную сложность двумерного редактора, из ограничений которого выход всё равно неизбежен?

Это постоянная подтасовка в аргументации защитников Дракона:
сравнивать Дракон с простым линейным текстом, а не с двумерной картинкой жестко отформатированного текста.

Я ничего не игнорирую. Сейчас Вы сформулировали одну из Ваших претензий конкретно, и могу дать конкретный ответ. Из двумерного текста мозгу читателя также надо извлекать структуру маршрутов алгоритма/программы, ориентируясь на подмножество ключевых слов ТАЯ/ТЯП, отвечающее за указание маршрутных связей. В Обероне это подможество максимально сокращено, как и вариантность употребления ряда слов (напр. в ряде ТЯП нужно правило связывания ELSIFов в сложной развилке) - но от этого только понижается сложность подзадачи восприятия маршрутной структуры в составе задачи понимания смысла текстового описания.
В языке с визуализацией маршрутов умственные усилия на эту подзадачу минимальны - структура маршрутов уже дана графически. Мало того, возникающий образ алгоритма/программы служит лучшим объектом для мозговой проверки правильности, для обдумывания и совершенствования визуала. Вот :)

И опять - из каких ограничений выход неизбежен? Каково Ваше точное целостное мнение по этим ограничениям и по вопросам, поставленным мною в цитированном Вами сообщении (ряд из которых являются цитатами из Вас же)? Давайте разбираться по существу каждой проблемы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Так чего же нехватает ДРАКОНу?
СообщениеДобавлено: Понедельник, 17 Май, 2010 05:14 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Info21 писал(а):
Владимир Паронджанов писал(а):
Это алгоритм на псевдокоде (с интендацией) и в дракон-схеме.
Какой же это псевдокод, когда столько в нем синтаксического мусора -- "иначе если" и проч.

Если бы был текст этого "псевдокода", готов его поправить до настоящего псевдокода.


Ну что ж, как-нидь распознаю с пэлобраза и кину (если кто раньше не сделает :))... интересный будет эксперимент...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 18 Май, 2010 04:48 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Владимир Паронджанов писал(а):
Уважаемый В.Н. Жаринов!

Благодарю за Ваши комментарии, размышления и аргументацию.

_______________________________________________________

Мы здесь почти все знаем друг друга по имени.
Буду очень рад, если Вы сообщите Ваше имя отчество

Владимир Паронджанов


Владислав, а по отчеству, наверное, слишком будет :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 19 Май, 2010 04:49 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
На сообщение: viewtopic.php?p=47472#p47472
Info21 писал(а):
Если бы был текст этого "псевдокода", готов его поправить до настоящего псевдокода.

Пожалуйста :) Я только выделил первую графу (нулевой табулостоп) под метки; насколько помню, так обычно было в структурированном прогтексте языков с goto...

Вложение:

Только хорошо бы с пояснениями - в силу чего было внесено то или иное исправление.


Последний раз редактировалось Владислав Жаринов Среда, 19 Май, 2010 11:32, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Ещё о цикле Дейкстры и логике
СообщениеДобавлено: Среда, 19 Май, 2010 04:52 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
В продолжение сообщения: viewtopic.php?p=47444#p47444
Теперь выйдем за пределы классической логики и на примере всё той же конструкции посмотрим воплощение логик псевдофизических (ситуативных, перцептивных, "здравого смысла"). Наверное, сказанное тривиально, но тем не менее...
Пусть среди переменных состояния визуала фигурирует текущее время - как значение регистра системных часов/таймера - и эта переменная участвует в логвырах развилок цикла Дейкстры. При этом выбор/пропуск текущей ветви зависит и от того, удовлетворяет ли значение времени неким условиям, записанным в тексте начинающей её иконы Вопрос. Это значение обновляется обязательно перед ответом на вопрос (напр. берётся в логвыр прямо из регистра). Т.о. вопрос можно сформулировать как "Выполнены ли заданные соотношения между величинами не слишком рано и/или не слишком поздно?"
Опять возьмём пустую (ненагруженную) ветку. Пусть она выбрана, как в предыдущем сообщении - т.е. и условие для новой переменной в составе её вопроса справедливо (и полагаем, что оно определено корректно - т.е. перекрытия областей значения времени для вопросов разных ветвей не происходит). Пройдена ветка будет также без последствий... кроме одного - пройдёт время, необходимое на естественный переход по шампуру ветки (на уровне машинных команд фактически - на формирование адреса циклового безусловного перехода в составе команды ветвления) и далее на этот БП. Затем начнут выполняться команды проверки условий ветвления для предшествующих развилок, прежде чем мы придём к данной - и это тоже требует конечного времени. В результате, если текущее время перестанет удовлетворять условиям выбора пустой ветки на момент их проверки - она выбрана не будет, хоть в ней как будто ничего и не делалось - на самом деле, конечно, в расширенной нами алгообстановке делалось - совершались шаги алгопроцесса, требующие конечного времени.
Т.к. параметры условия времени, как и всякие значения в информатике, конечны, а время у нас изменяется в одну сторону (прямой или обратный отсчёт, или реверсивный - но с фиксацией в дополнительных переменных текущего направления и значения, соответствующего последней перемене), то когда-то это событие произойдёт обязательно - м.б. не сразу, т.е. количество проходов по пустой ветке и в этом случае будет больше единицы - но никакого "зацикливания" уже не будет. Вот так логика "здравого смысла" нам строить и жить помогает... :)


Последний раз редактировалось Владислав Жаринов Четверг, 20 Май, 2010 10:43, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 19 Май, 2010 06:09 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 140
Откуда: Троицк, Москва
Драконограф писал(а):
Пожалуйста :)
Так текст не полный.

"ветка", "адрес" -- это и не псевдокод, а какой-то странный ЯП.

Переписать по-человечески на "русском" Обероне,
добавить отбивок,
и всё.
Не бином Ньютона.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 19 Май, 2010 11:40 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Info21 писал(а):
Так текст не полный.

Виноват, не оттуда образ взял... исправился :)

Info21 писал(а):
"ветка", "адрес" -- это и не псевдокод, а какой-то странный ЯП.

Ну дык для ДРАКОНа модернизированный... о чём в /Паронджанов, 2001, с. 91-92/ честно и написано :D

Info21 писал(а):
Переписать по-человечески на "русском" Обероне,
добавить отбивок,
и всё.
Не бином Ньютона.
Ну так. В свете этого утверждения:
Info21 писал(а):
Если бы был текст этого "псевдокода", готов его поправить до настоящего псевдокода.

не очень понятно. :| Хотя по сути ничего против предложения не имею... только думал, у Вас есть некие конкретные стандарты "настоящести" псевдокода, точно отражающего дракон-схемы...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 19 Май, 2010 15:54 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 140
Откуда: Троицк, Москва
Значит, все-таки не псевдокод.

Моё утверждение в том, что Оберон с русскими ключевыми словами -- вполне себе годится как скелетная основа для псевдокода. Ведь даже на псевдокоде нужно договариваться о том, как, к примеру, циклы писать.

Так что ничего странного.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 20 Май, 2010 05:16 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Info21 писал(а):
Значит, все-таки не псевдокод.

Моё утверждение в том, что Оберон с русскими ключевыми словами -- вполне себе годится как скелетная основа для псевдокода. Ведь даже на псевдокоде нужно договариваться о том, как, к примеру, циклы писать.

Так что ничего странного.


А, ну то есть суть Вашего предложения - всё та же "примитивизация" силуэта перед текстовым кодированием, т.е. операция, обратная описанной на примере в конце этого пункта операции Топологический переход к силуэту? Тогда у нас появляется схема с пересечениями, что в этом случае неважно - её не смотреть, а преобразовывать в текст - зато нет операторов Имя ветки и Адрес (метки Р-БП и собственно команды Р-БП), которые Вы считаете ненужными в псевдокоде.
А вот можно ли также избавиться от всех БП (goto) - это IMHO, надо работать над маршрутной логикой нелинейных дракон-конструкций... чтобы без break-БП и continue-БП обходиться... и по-моему, ещё кое-над чем подумать надо, что у Дмитрия_ВБ и Ярослава Романченко выявилось...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 20 Май, 2010 08:49 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 140
Откуда: Троицк, Москва
Драконограф писал(а):
А, ну то есть суть Вашего предложения - всё та же "примитивизация" силуэта перед текстовым кодированием, т.е. операция, обратная описанной ...
Не узнаю сути моего предложения. Но Дракона я не знаю.

Насколько могу упомнить, я тут пытаюсь понять преимущество двумерной драконовой картинки над двумерно-сформатированным Обероном.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 20 Май, 2010 10:49 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Info21 писал(а):
Драконограф писал(а):
А, ну то есть суть Вашего предложения - всё та же "примитивизация" силуэта перед текстовым кодированием, т.е. операция, обратная описанной ...
Не узнаю сути моего предложения. Но Дракона я не знаю.

Насколько могу упомнить, я тут пытаюсь понять преимущество двумерной драконовой картинки над двумерно-сформатированным Обероном.


...но притом, чтобы не допускать в псевдокоде, описывающем дракон-схему, ничего, чего нет в Обероне - именно путь удовлетворения этого требования я и предложил выше.
Незнание ДРАКОНа не освобождает от ответственности за суждения о нём :wink:

Преимущество в первую голову эргономическое (разгрузка восприятия читателя), о чём выше: viewtopic.php?p=47480#p47480


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 20 Май, 2010 11:35 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 234
Откуда: Украина, Киев
Драконограф писал(а):
Преимущество в первую голову эргономическое (разгрузка восприятия читателя)
Эквивалентные фрагменты кода на Оберон-е и ДРАКОНЕ-е, текстовый код в один экран не вмещается и весьма трудночитаем, схема выглядит значительно эргономичнее:
Код:
  BEGIN {ACTIVE}
    Dr010Vtk := Dr010Vtk0060;
    WHILE Dr010Vtk # Dr010VtkExit DO
      CASE Dr010Vtk OF
      | Dr010Vtk0060:
        (* Init *)
        NEW(receiveBuf,
          Base.MaxUDPDataLen);
        NEW(sendBuf, 0);
        NEW(clients);
        NEW (users);
        running := TRUE;
        terminated := FALSE;
        Dr010Vtk := Dr010Vtk0073
      | Dr010Vtk0073:
        (* Packet receive *)
        IF running THEN
          CheckKeepAlive(clients);
          s.Receive (receiveBuf^, 0,
            Base.MaxUDPDataLen,
            1, ip, port, len, res);
          IF (res = UDP.Ok) & (len > 0) THEN
            receiveBufOffset := 0;
            (* Version check *)
            IF Base.BufGetInt(receiveBuf, receiveBufOffset) = Base.VERSION THEN
              Dr010Vtk := Dr010Vtk0088
            ELSE
              Dr010Vtk := Dr010Vtk0073
            END; (* IF *)
          ELSE
            Dr010Vtk := Dr010Vtk0073
          END; (* IF *)
        ELSE
          Dr010Vtk := Dr010Vtk0066
        END; (* IF *)
      | Dr010Vtk0088:
        (* Authentication *)
        command := Base.BufGetInt(receiveBuf,
          receiveBufOffset);
        seqNum := Base.BufGetInt(receiveBuf,
          receiveBufOffset);
        uin := Base.BufGetLInt(receiveBuf,
          receiveBufOffset);
        Utilities.IntToStr(seqNum, str1);
        Utilities.Concat(" SeqNum: ", str1, str1);
        Utilities.Concat(str1, " Command: ", str1);
        Utilities.IntToStr(uin, str2);
        Utilities.Concat("User ID: ", str2, str2);
        Utilities.Concat(str2, str1, str1);
        Base.CommandDecode(command, str2);
        Utilities.Concat(str1, str2, str1);
        Log(AosEvents.Information, 0, str1, FALSE);
        IF FindClient(clients, uin, client) THEN
          (* Additional check *)
          IF (IP.AdrsEqual(client.ip, ip)) & (client.port = port) THEN
            Dr010Vtk := Dr010Vtk0098
          ELSE
            Dr010Vtk := Dr010Vtk0073
          END; (* IF *)
        ELSE
          CASE command OF
          | Base.LOGIN:
            password :=
              Base.BufGetString (receiveBuf,
              receiveBufOffset);
            IF users.PasswordCorrect(uin, password) THEN
              NEW(client);
              client.ip := ip;
              client.port := port;
              client.uin := uin;
              client.inSeqNum := seqNum;
              client.outSeqNum := 0;
              Kernel.SetTimer(client.keepAliveTimer,
                Base.clientKeepAliveAwait);
              clients.Add(client);
              Server_LoginReply(client, sendBuf, s);
              MulticastStatus(clients, client,
                Base.USER_ONLINE, sendBuf, s);
            END; (* IF *)
          | Base.NEW_USER_REG:
            password := Base.BufGetString(receiveBuf,
              receiveBufOffset);
            shortName := Base.BufGetString(receiveBuf,
              receiveBufOffset);
            fullName := Base.BufGetString(receiveBuf,
              receiveBufOffset);
            eMail := Base.BufGetString(receiveBuf,
              receiveBufOffset);
            user := users.Add(password, shortName,
              fullName, eMail);
            Server_NewUserReply(ip, port, user.uin,
              seqNum, sendBuf, s);
          ELSE (* CASE *)
          END; (* CASE *)
          Dr010Vtk := Dr010Vtk0073
        END; (* IF *)
      | Dr010Vtk0098:
        (* Packet handle *)
        IF command = Base.ACK THEN
          IF Base.SeqNumInACKList( client.ACKList, seqNum, ACKReq) THEN
            client.ACKList.Remove(ACKReq);
          END; (* IF *)
        ELSE
          IF Base.isNextSeqNum( seqNum, client.inSeqNum) THEN
            client.inSeqNum := seqNum;
            CASE command OF
            | Base.SEND_MESSAGE:
              Server_ACK(client, sendBuf, s);
              receiverUin := Base.BufGetLInt(
                receiveBuf, receiveBufOffset);
              messageType := Base.BufGetInt(
                receiveBuf, receiveBufOffset);
              message := Base.BufGetString(
                receiveBuf, receiveBufOffset);
              dt := Dates.Now();
              IF receiverUin = 0 THEN
                MulticastMessage(
                  clients, client, dt,
                  messageType,
                  message,
                  sendBuf, s);
              ELSE
                IF FindClient(clients, receiverUin, receiver) THEN
                  Server_ReceiveMessage(
                    client, receiver, dt,
                    messageType, message,
                    sendBuf, s);
                END; (* IF *)
              END; (* IF *)
            | Base.KEEP_ALIVE:
              Server_ACK(client, sendBuf, s);
              Kernel.SetTimer(
                client.keepAliveTimer,
                Base.clientKeepAliveAwait);
            | Base.INFO_REQ:
              receiverUin := Base.BufGetLInt(
                receiveBuf, receiveBufOffset);
              user := users.Find(receiverUin);
              IF user # NIL THEN
                Server_InfoReply(
                  client, user,
                  sendBuf, s);
              END; (* IF *)
            | Base.SEND_TEXT_CODE:
              Server_ACK(client, sendBuf, s);
              textCode := Base.BufGetString(
                receiveBuf, receiveBufOffset);
              IF textCode^ = "USER_DISCONNECTED" THEN
                MulticastStatus(clients,
                  client, Base.USER_OFFLINE,
                  sendBuf, s);
                clients.Remove(client);
              END; (* IF *)
            ELSE (* CASE *)
            END; (* CASE *)
          END; (* IF *)
        END; (* IF *)
        Dr010Vtk := Dr010Vtk0073
      | Dr010Vtk0066:
        (* End *)
        users.Store;
        FinalizeClients(clients);
        clients.Clear;
        BEGIN {EXCLUSIVE}
          terminated := TRUE
        END;
        Dr010Vtk := Dr010VtkExit
      ELSE (* CASE *)
      END (* CASE *)
    END (* WHILE *)

  END Instance;


Вложения:
active.png
active.png [ 29.64 КБ | Просмотров: 7495 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 20 Май, 2010 12:36 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 82
Откуда: Москва
Хрен редьки не слаще. И то, и другое не умещается на экране и тяжело воспринимается. Надо дробить на сворачиваемые блоки, кадры, связывать гиперссылками. Идея семантического редактора возникла как раз из неудовлетворенности обеими формами представления.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 20 Май, 2010 13:02 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 234
Откуда: Украина, Киев
Сергей Прохоренко писал(а):
Хрен редьки не слаще.
Можно убрать программный код из икон "Действие", оставить лишь краткое описание сути выполняемых действий и схема станет значительно компактнее. Код в случае необходимости смотреть в отдельном окне или извлекать из иконы щелчком (по-сути - разворачивание свёрнутого блока).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 20 Май, 2010 14:03 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 82
Откуда: Москва
Ярослав Романченко писал(а):
Сергей Прохоренко писал(а):
Хрен редьки не слаще.
Можно убрать программный код из икон "Действие", оставить лишь краткое описание сути выполняемых действий и схема станет значительно компактнее. Код в случае необходимости смотреть в отдельном окне или извлекать из иконы щелчком (по-сути - разворачивание свёрнутого блока).


То же самое можно сделать и с кодом на Компонентном Паскале - Блэкбокс допускает фолдинг. После свертки и добавления комментариев код станет столь же простым для восприятия, что и блок-схемы на Драконе, но при этом не придется заморачиваться с размещением блоков на экране и трансляцией в программный код. Но и свертка кода на Компонентном Паскале, и предлагаемая Вами модернизация Дракона - это полумеры. Нужен полноценный семантический редактор.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 20 Май, 2010 15:16 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 56
Откуда: Узбекистан, Чирчик
Сергей Прохоренко писал(а):
То же самое можно сделать и с кодом на Компонентном Паскале - Блэкбокс допускает фолдинг. После свертки и добавления комментариев код станет столь же простым для восприятия, что и блок-схемы на Драконе, но при этом не придется заморачиваться с размещением блоков на экране и трансляцией в программный код.
Только потом оно вроде перестанет правильно компилироваться?
А в той же Visual Studio, да и в редакторах попроще, folding не влияет на результат компиляции.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 20 Май, 2010 20:43 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 82
Откуда: Москва
О том и речь, что имеющиеся средства разработки (и Дракон, и Блэкбокс, и Вижуалстудия) устарели уже в момент выпуска первых версий. Несколько десятилетий идет топтание на месте. Согласитесь, нормально работающий фолдинг трудно признать новым революционным изобретением.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 21 Май, 2010 02:25 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 140
Откуда: Троицк, Москва
У фолдинга в ББ есть нейминг, и программно доступны все (простые) средства манипуляции фолдами с неймами.

Совершенно не проблема устроить любую схему с раскрытием (только нужных кусков) -- компилированием -- закрытием.

Базовое решение ББ -- наименее чревато, вот и всё.
Кто хочет шею сломать -- ломайте на здоровье, только других не принуждайте.


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

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


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

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


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

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