DRAKON.SU

Текущее время: Четверг, 29 Июль, 2021 16:13

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




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 79 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 12:36 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Dmitriid, вы ничего не сказали о видеороликах на http://www.drakon-practic.ru, т.е. о практике программирования на языке Дракон в интегрированной среде Дракон.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 13:03 

Зарегистрирован: Четверг, 14 Июнь, 2012 14:48
Сообщения: 36
Геннадий Тышов писал(а):
Dmitriid, вы ничего не сказали о видеороликах на http://www.drakon-practic.ru, т.е. о практике программирования на языке Дракон в интегрированной среде Дракон.


Я их тоже видел. Они не отвечают на мои вопросы.

dmitriid писал(а):
Давайте с вами проведем один простой эксперимент. Я задам ровно один вопрос, а вы на него ответите, так, разнообразия ради.

Итак. Дракон позиционируется, как язык для представления алгоритмов любой сложности. Более того, его достаточно активно пиарили для решения задач, связанных с «обыкновенным программированием». Почему вы считаете заданные мной в первом сообщении некорректными и отказываетесь на них отвечать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 13:13 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
dmitriid писал(а):
Я их тоже видел. Они не отвечают на мои вопросы.
Вы создали свои вопросы, Вам и искать на них ответы. Материал по Дракону Вам весь предоставлен.

Найдете ответы и вместе с вопросами расскажете нам.

Желаю успехов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 13:24 

Зарегистрирован: Четверг, 14 Июнь, 2012 14:48
Сообщения: 36
Геннадий Тышов писал(а):
Вы создали свои вопросы, Вам и искать на них ответы.

Я их и ищу. Как можно найти ответы на вопросы, если никто ответы на эти вопросы не предоставляет?

Геннадий Тышов писал(а):
Материал по Дракону Вам весь предоставлен.

Весь? Нуну. Где примеры реальных алгоритмов, где ответы на вопросы про параллельность, где ответы на вопросы про верификацию алгоритмов и т.п.? Где это все? Где хоть крупица информации хоть по одному из вопросов, заданных мной в первом сообщении?

Геннадий Тышов писал(а):
Найдете ответы и вместе с вопросами расскажете нам.

Вы эта... Нимб поправьте, он у вас немножко косо сидит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 13:43 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Dmitriid, ищите ответы на любой вопрос.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 13:49 

Зарегистрирован: Четверг, 14 Июнь, 2012 14:48
Сообщения: 36
Поиск ответов на вопросы включает в себя так же следующий процесс:
- незнающий или интересующийся человек задает вопрос
- знающий человек отвечает на этот вопрос

Вы лично ответили хоть на один мой вопрос? Нет. Идите, полируйте свой нимб дальше вместе с TAU. Я продолжу конструктивную беседу со Степаном, Ильей и Валерием.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 13:50 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 112
Откуда: Беларусь, Минск
dmitriid писал(а):
Нет, важно. В том же Erlang'е очередь сообщений у каждого процесса(потока) своя.
Что значит "своя очередь"? Это очередь, из которой поток выбирает сообщения для их обработки. Только и всего. Но если к этой очереди больше нет ни у кого никакого доступа, то кроме самого потока сообщения в неё никто добавить не сможет. А чтобы была возможность добавлять сообщения, то прямой или косвенный доступ к очереди у другого потока должен иметься. А значит, очередь - это ресурс, который находится в сфере влияния нескольких потоков. Можно сказать, что он "глобальный". И влияние на него оказывают оба потока, только влияние это находится в разных плоскостях.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 14:09 

Зарегистрирован: Четверг, 14 Июнь, 2012 14:48
Сообщения: 36
Valery Solovey писал(а):
Что значит "своя очередь"? Это очередь, из которой поток выбирает сообщения для их обработки.


Да

Valery Solovey писал(а):
А значит, очередь - это ресурс, который находится в сфере влияния нескольких потоков.


Только если его рассматривать, как неблокирующую очередь (не просто неблокирующую, а еще с гарантией без ожиданий) с правом на запись многими и на чтение только одним. Что, согласитесь, является весьма частным случаем.

Valery Solovey писал(а):
Можно сказать, что он "глобальный". И влияние на него оказывают оба потока, только влияние это находится в разных плоскостях.


Именно. И эту разницу необходимо отразить при описании алгоритма. Иначе человек, который пришел из «классической» школы, в которой все построено на мьютексах, локах и доступе к разделяемым данным, увидя такую глобальную переменную в алгоритме, будет думать о мьютексах, локах и разделяемых данных. И, соответсвенно, у него будет другой подход к алгоритму, потому что он будет считать эту глобальную переменную/очередь бутылочным горлышком. А она таковой не является.

То есть с точки зрения именно алгоритма очереди сообщений в Erlang'е полезно считать локальными для процесса, а не разделяемыми между несколькими процессами, потому что у нас есть возможность реализовать несколько вариантов:
- локальные очереди процессов (неблокирующие, не требующие мьютексов и т.п.)
- разделяемые данные (блокирующие, требующие мьютексы и т.п.)
- синхронные сообщения, использующие неблокирующие очереди (см. call)
- асинхронные сообщения, использующие те же неблокирующие очереди (cast)

И было бы хорошо иметь возможность указать эту разницу при создании алгоритма.


Да, вот только что в голову пришло. Тут можно посмотреть, как выглядят типичные системы, написанные на Erlang'е «изнутри» (со всеми процессами и т.п.). Если мы будем использовать только глобальные переменные для описания взаимодействия процессов, то можно будет запутаться во всех этих переменных и кто и когда их изменяет.

То есть хотелось бы иметь более наглядную систему для описания взаимодействия разных процессов/потоков.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 14:17 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 112
Откуда: Беларусь, Минск
Геннадий Тышов писал(а):
Dmitriid, ищите ответы на любой вопрос.
Один из рассказов Шекли заканчивался фразой "Чтобы задать правильный вопрос, нужно знать большую часть ответа". Что-то есть в этой фразе... Ответить на вопрос может и получится, но вопрошавший может оказаться недостаточно подготовленным, чтобы его понять. Поэтому особого смысла отвечать нет.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 14:32 

Зарегистрирован: Четверг, 14 Июнь, 2012 14:48
Сообщения: 36
Правка: цитируемое сообщение было предназначено не мне, приношу извинения Валерию.

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

Это демагогия и менторство.

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

Что вы имеете в виду? Задайте уточняющий вопрос, я на него отвечу. В этом ведь состоит принцип цивилизованной дискуссии, не?

P.S. Только сегодня в чате по Erlang'у был задан вопрос: «мм а что значит решетка ) что то я до сих порне сталкивался с таким) A#arg.state или State = #upload{},». Это вопрос уровня человека, который вообще ничего не читал про Erlang, и вместо того, чтобы читать про Erlang, решил сразу задавать вопросы. Вместо того, чтобы почти неприкрыто послать такого человека на три буквы (как это делают некоторые участники здесь), два человека быстро и корректно объяснили, что это такое. Человек сказал спасибо и продолжил свои изыскания.

Поэтому реакция «ты тупой, иди на хер отсюда», с которой я тут столкнулся, мягко говоря, меня удивляет.


Последний раз редактировалось dmitriid Воскресенье, 17 Июнь, 2012 14:50, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 14:35 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 112
Откуда: Беларусь, Минск
dmitriid писал(а):
То есть с точки зрения именно алгоритма очереди сообщений в Erlang'е полезно считать локальными для процесса, а не разделяемыми между несколькими процессами, потому что у нас есть возможность реализовать несколько вариантов:
...
И было бы хорошо иметь возможность указать эту разницу при создании алгоритма.
Я лишь хотел сказать, что то, что Вы хотите от языка программирования в плане многопоточности не является таким уж недостижимым. Просто, в Эрланге этот механизм идёт в стандартной поставке (плюс ещё куча всего другого в виде OTP), а для ДРАКОНа, который пока тощий и золотых гор за душой не имеет, это придётся реализовывать самому.

Правда, не стоит забывать про назначение ДРАКОНа, и сделать такой механизм эргономичным. Увы, на любом языке можно написать программу на фортране. Если язык помогает в эргономике, то из этого автоматом не следует, что программы на нём эргономичны. Нужно прилагать некоторые усилия, в простых - и хорошо изученных - случаях эти усилия ничтожны. Для синхронизации потоков - это область исследований. Что поделать - в реальных задачах, где используется ДРАКОН "потоки" крутятся по одному на железку, и синхронизация там обеспечивается иначе, чем на настольных компьютерах.

P.S. см. Л.С.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 14:45 

Зарегистрирован: Четверг, 14 Июнь, 2012 14:48
Сообщения: 36
Valery Solovey писал(а):
Я лишь хотел сказать, что то, что Вы хотите от языка программирования в плане многопоточности не является таким уж недостижимым. Просто, в Эрланге этот механизм идёт в стандартной поставке (плюс ещё куча всего другого в виде OTP), а для ДРАКОНа, который пока тощий и золотых гор за душой не имеет, это придётся реализовывать самому.


Я с этим не спорю :) Возможно, мои замечания подтолкнут сделать в Драконе (в его графической части) новые примитивы/способы для наглядного представления разных способов организации параллельных вычислений. Из нашего разговора я понял, что, увы, для графического описания достаточно большого круга задач, решаемых на том же Erlang'е, Дракон пока не подходит.

Спасибо!
Valery Solovey писал(а):
Что поделать - в реальных задачах, где используется ДРАКОН "потоки" крутятся по одному на железку, и синхронизация там обеспечивается иначе, чем на настольных компьютерах.


Это мне напомнило: на недавней конференции на одном из выступлений было сказано: «сейчас у нас странная ситуация. "Железками" называется огромное количество радикально разных вещей — от микроконтроллеров с килобайтами памяти до монстров с 4-ядерными процессорами и сотнями мегабайт памяти» :) Но я понимаю, о чем вы говорите


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 15:50 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
dmitriid писал(а):
P.S. Только сегодня в чате по Erlang'у был задан вопрос: «мм а что значит решетка ) что то я до сих порне сталкивался с таким) A#arg.state или State = #upload{},».

Поэтому реакция «ты тупой, иди на хер отсюда», с которой я тут столкнулся, мягко говоря, меня удивляет.
В процитированном вами сообщении новичок в Эрланге в первом же своём сообщении никого из заслуженных участников чата не называет клоунами и не употребляет слово "сливаться" (это отсылка к сортиру, не так ли?), так что удивляться особо нечему. Элементарная вежливость. Иначе забанили бы, не?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 16:52 

Зарегистрирован: Четверг, 14 Июнь, 2012 14:48
Сообщения: 36
Александр Ильин писал(а):
В процитированном вами сообщении новичок в Эрланге в первом же своём сообщении никого из заслуженных участников чата не называет клоунами и не употребляет слово "сливаться" (это отсылка к сортиру, не так ли?), так что удивляться особо нечему.

Да, не спорю, пришел я на форум с излишне резкой характеристикой. Но, к сожалению, моя характеристика продиктована несколькими днями обсуждения Дракона на РСДН. Как я уже говорил, для меня человек по ту сторону экрана характеризуется исключительно буквами, что он пишет. И Паронджанов, судя по всему, намеренно игнорировал любые заданные ему вопросы (так же как это делали TAU и Тышов).

Все это я уже детально описал тут: viewtopic.php?f=78&t=3992&start=20#p73144

Александр Ильин писал(а):
Иначе забанили бы, не?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 22:54 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 341
Valery Solovey писал(а):
dmitriid писал(а):
Rational Rose, Visual Studio, Altova UModel (и так далее, их десятки) для генерации кода из UML
Насколько я помню, после генерации из UML работа не заканчивается, а только начинается

Вообще говоря, ни Rational Rose, ни Visual Studio ничего особо полезного не генерируют - лишь шаблоны интерфейсов классов из UML-диаграммы классов. Здесь, совершенно правильно подмечено, все лишь начинается.Это если говорить о "мэйнстриме".

Специализированные средства существуют (например, QL или отечественный UniMod), которые позволяют генерировать программу на С, С++, Java по UML-диаграмме конечного автомата. Вряд ли можно считать это среством получения полноценной программы произвольного назначения.

Полагаю, что даже существующие - а еще важнее- перспективные возможности сред Тышова и особенно Митькина - учитывая впечатляющую скорость совершенствования - в плане генерации программ лучше. Хотя и здесь в определенном смысле Вы правы - программу на "промежуточном" языке С/С++/Erlang и пр. еще нужно перевести в машинный код.

Не говоря уж о ГРАФИТ/ФЛОКС, специализированной, где на выходе получается, насколько я понимаю, именно готовая к прошивке в ПЗУ исполняемая программа.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 23:11 

Зарегистрирован: Четверг, 14 Июнь, 2012 14:48
Сообщения: 36
TAU писал(а):
Вряд ли можно считать это среством получения полноценной программы произвольного назначения.


Я предположу, что и на Драконе программу произвольного назначения получить не удастся. По тем же причинам

TAU писал(а):
Хотя и здесь в определенном смысле Вы правы - программу на "промежуточном" языке С/С++/Erlang и пр. еще нужно перевести в машинный код.


Не только. Например, для генерации программ на Erlang'е невозможно использовать сопоставление с образцом и функции, использующие сопоставление с образцом (см. сообщение Степана Митькина), что приводит к далеко не самому оптимальному коду, и не позволяет компилятору проводить оптимизацию этого кода. Отсутствие средств для обозначения параллелизма (см. viewtopic.php?f=78&t=3992&start=60#p73183) также ставит под сомнение возможность эффективно использовать языковые средства и библиотеки (например, деревья контроля).

То есть полученный на выходе код надо будет активно дорабатывать вручную.

Я не говорю, что это невозможно и никогда в Драконе не будет. Но такова ситуация на данный момент.

TAU писал(а):
Не говоря уж о ГРАФИТ/ФЛОКС, специализированной, где на выходе получается, насколько я понимаю, именно готовая к прошивке в ПЗУ исполняемая программа.


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


Последний раз редактировалось dmitriid Воскресенье, 17 Июнь, 2012 23:15, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 23:12 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 341
Valery Solovey писал(а):
Что поделать - в реальных задачах, где используется ДРАКОН "потоки" крутятся по одному на железку, и синхронизация там обеспечивается иначе, чем на настольных компьютерах

Валерий, Вы не правы. Вернее, не совсем правы.

Если мы говорим о "реальных задачах", мы можем говорить с уверенностью на данный момент лишь:
1. Об использовании ГРАФИТ/ФЛОКС.
2. Об использовании сред Тышова (насколько мне известно по этому форуму, для программирования их практически применяют вроде как Ярослав Романченко, Петр Приклонский и Сергей Ефанов) и Митькина (пока мне известно, что сам Степан использует свою систему - "самораскрутка" :) ).

По БЦВМ "Бисер", используемых в качества целевой платформы в ГРАФИТ/ФЛОКСе, у нас по понятным причинам сведений по организации вычислительного процесса нет, мы можем лишь предполагать, присутствует ли на одной машине несколько потоков, или нет.
В принципе, для управления КА БЦВМ с многозадачными операционными системами реального времени - естественно, с параллелизмом и многими потоками на одной машине, - и в нашей стране, и за рубежом достаточно давно и успешно применяются.

Не могу с уверенностью сказать об организации вычислительного процесса на целевых платфомах у Приклонского и Ефанова. В то же время, мне почему-то смутно припоминается, что у Романченко речи о скудных вычислительных ресурсах не было.

Митькин ведет разработку явно на персоналке с многозадачной ОС.

Поэтому с уверенностью утверждать под Вашим предположением я бы не спешил подписываться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Воскресенье, 17 Июнь, 2012 23:13 

Зарегистрирован: Четверг, 14 Июнь, 2012 14:48
Сообщения: 36
TAU писал(а):
позволяют генерировать программу на С, С++, Java по UML-диаграмме конечного автомата. Вряд ли можно считать это среством получения полноценной программы произвольного назначения.


И да, совсем забыл: Дракон тоже реализует именно КА. То есть конечная программа будет программой, реализующей этот КА. Вопрос о программах, не укладывающихся в КА, остается открытым.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про сложные задачи в Драконе
СообщениеДобавлено: Понедельник, 18 Июнь, 2012 11:52 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 143
Откуда: Россия, Орёл
Тема закрыта: viewtopic.php?p=73194#p73194


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

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


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

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


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

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