DRAKON.SU https://forum.drakon.su/ |
|
"дракон" - оно в каком месте "работает"? https://forum.drakon.su/viewtopic.php?f=62&t=2618 |
Страница 3 из 7 |
Автор: | Илья Ермаков [ Вторник, 04 Май, 2010 17:44 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Лично в моей текущей практике ДРАКОН занимает такое же место, ну, как скажем, НФБ-грамматики. Описательная нотация. Хорошо соответствующая природе некоторых задач (описание поведения систем). В этом же качестве начал применять (после долгого "сдерживания") на ранней стадии (докомпьютерной, 3-4 занятия) курса "Основ алгоритмизации и программирования", в параллель с КП-псевдокодом. Жить сразу стало легче - и себе, и студентам. Позже тоже нашлось применение - графическое изображение сильно разгружает восприятие, когда только начинаешь объяснять доказательное построение алгоритмов. На схеме удобно помечать "разрезы", приписывать утверждения о состоянии, показывать инварианты, и т.п. В тексте сразу воспринимают трудно - слишком "сплошная" символика получается. |
Автор: | Димыч [ Вторник, 04 Май, 2010 17:45 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Wlad2 писал(а): Peter Almazov писал(а): Процитирую себя: Peter Almazov писал(а): "Дракон - это поделка для недоучек в программировании. Причем она эффективно закрепляет их на этом уровне". а никто не опасается, что повторится ситуация, когда критическая масса недоучек начнёт учить остальных программированию. ну, просто потому, что массе "вот так удобней" делать, а не книжки почитать? Вы попробуйте применить те ограничения, которые налагаются на дракон-схемы, и поймете, что название не просто так выбрано Ценность дракона в том и состоит, что он накладывает "драконовские" ограничения на возможности по созданию схемы, благодаря которым "тупой предметник" (уж простите, из предыдущего обсуждения складывается такое впечатление о вашем понимании этих людей) не может просто сделать ничего лишнего и сделает схему, строго соответствующую имеющемуся у него алгоритму. Обращаюсь ко всем участникам, перечитайте еще раз (а кто-то в первый раз!) главу 15 книги "Как улучшить работу ума" (полные реквизиты легко найти на форуме). Там приведено довольно строгое описание языка. За относительно простым внешним видом схем кроется жесткая структурность, и это важно и ценно. "Большое видится на расстоянии" (с) |
Автор: | Владимир Паронджанов [ Вторник, 04 Май, 2010 18:03 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
ПОПУТНОЕ ЗАМЕЧАНИЕ В этой теме Илья Ермаков затронул математические вопросы. Уместно напомнить, что на данном форуме есть тема "Математические основы языка Дракон" viewtopic.php?f=62&t=1757 |
Автор: | Info21 [ Вторник, 04 Май, 2010 18:45 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Владимир Паронджанов писал(а): 1. Если я правильно понял ... Нет, не правильно. "Существенный" и "СУЩЕСТВЕННЫЙ" -- это разные вещи. Потому что существенность относительна. В том конкретном высказывании подразумевалось сравнение алгоритмической выразительности дракон-схем и обычной структурированной программы. Но буду рад, если, наконец, суть Дракона будет четко сформулирована в одном, пусть длинном, абзаце, и не надо будет продираться сквозь 14 глав букв. |
Автор: | Info21 [ Вторник, 04 Май, 2010 18:48 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Wlad2 писал(а): Geniepro писал(а): Как я понял, оно работает там, где программу должны делать не программисты, а специалисты-предметники, не желающие (не имеющие возможности) тратить время на изучение языков и парадигм программирования. и что они наработают?Ни логику, ни граничные условия, ни вырожденные случаи Дракон не отменяет. |
Автор: | Илья Ермаков [ Вторник, 04 Май, 2010 18:59 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Тут другая ниша. Дракон нацелен на алгоритм, как "скрипт", конфигурирование поведения. Инструмент, на котором предметник может написать алгоритм принятия решений (например, последовательность событий ввода-вывода и проверок при старте ракеты; либо последовательность проверок и решений в бизнес-правиле...). |
Автор: | Димыч [ Вторник, 04 Май, 2010 19:01 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Info21 писал(а): Владимир Паронджанов писал(а): 1. Если я правильно понял ... Но буду рад, если, наконец, суть Дракона будет четко сформулирована в одном, пусть длинном, абзаце, и не надо будет продираться сквозь 14 глав букв.А для Оберона можете сформулировать такой абзац? Пусть длинный? |
Автор: | Илья Ермаков [ Вторник, 04 Май, 2010 19:07 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Цитата с главной страницы И21: Цитата: ... в IT-индустрии сложился определенный консенсус относительно базового набора средств программирования общего назначения в виде синтеза «старого» процедурного программирования и «нового» объектно-ориентированного. Такой синтез впервые — и притом в наиболее чистом виде — был представлен в Системе Оберон (Н.Вирт и Ю.Гуткнехт, с 1988) и получил фактическое признание IT-индустрии в популярных системах ... , которую продолжим (где-то на других страницах И21 в этом духе сформулировано):... Основная новизна Оберона - в сбалансированном сочетании динамической модульности, ООП, герметичной системы типов и автоматического управления памятью в эффективно компилируемом языке - и поддержке за счёт этого высокой готовности к эволюции программных систем (парадигмы компонентно-ориентированного программирования). Примерно так. |
Автор: | Димыч [ Вторник, 04 Май, 2010 19:24 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Язык Дракон - строго формализованный способ представления алгоритмических знаний. Набор правил языка позволяет строить и изменять легко читаемые, быстро понимаемые алгоритмы любой сложности. К особенностям языка следует отнести учет механизмов восприятия информации человеком и учет принципов структурного программирования. Благодаря строгой формализации алгоритмы на языке Дракон легко поддаются автоматному преобразованию в произвольное представление, в том числе и в тексты на языки программирования. Область применения - описание бизнес-процессов, описание поведения систем, системы управления, отчасти - автоматное программирование. Как-то так. |
Автор: | ==== [ Вторник, 04 Май, 2010 19:28 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
отсюда Цитата: Уважаемый Тимур. Вы упоминаете Дракон, это язык по определению алгоритмический, не является языком программирования, здесь происходит подмена понятий. Соответственно, говорить о типах данных и режиме отладки не приходится. Дракон нужен тем кто создает алгоритм и пользуется алгоритмом. Когда говорят что это и язык программирования, то "хотят сидеть на двух стульях" и вводят в заблуждение. Об этом раньше в сообщении |
Автор: | Владимир Паронджанов [ Вторник, 04 Май, 2010 20:24 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Уважаемый Геннадий Николаевич! В этом пункте у нас с Вами есть разногласие. В отличие от Вас я понимаю Дракон как семейство языков. В книге " Как улучшить работу ума" на стр. 101, 102 сказано: Цитата: СЕМЕЙСТВО ДРАКОН-ЯЗЫКОВ ДРАКОН — не один язык, а целое семейство, все языки которого имеют одинаковый визуальный синтаксис (что зрительно делает языки семейства почти близнецами) и отличаются текстовым синтаксисом. ДРАКОН-1 — визуальный псевдоязык, визуальный аналог обычного текстового псевдокода. Он служит для описания структуры деятель¬ности, создания технологий, алгоритмов и проектов программ, используется в методе пошаговой детализации, а также при формализации профессиональных знаний. ДРАКОН-2 — язык визуального программирования реального времени. Он является элементом CASE-технологии для разработки программного обеспечения систем управления ракет и космических объектов, а также атомных электростанций, нефтехимических и металлургических заводов, биотехнологических производств и т. д. Кроме того, семейство включает гибридные визуальные языки программирования: ДРАКОН-БЕЙСИК, ДРАКОН-ПАСКАЛЬ, ДРАКОН-СИ и т. д. Чтобы получить гибридный язык, например, ДРАКОН-СИ, необходимо взять визуальный синтаксис ДРАКОНА и присоединить к нему по определенным правилам текстовый синтаксис языка СИ. Строгое разграничение визуального и текстового синтаксиса позволяет в максимальной степени расширить сферу применения языка, обеспечивая его гибкость и универсальность. При этом единообразие правил визуального синтаксиса семейства ДРАКОН-языков обеспечивает их концептуальное единство, а разнообразие текстовых правил (т. е. возможность выбора любого текстового синтаксиса) определяет гибкость языка и легкую настройку на различные проблемные и предметные области. В настоящей книге основное внимание уделяется визуальному псевдоязыку ДРАКОН-1. Что касается остальных языков ДРАКОН-семейства, даются лишь краткие пояснения. Вы трактуете вопрос по-другому (это Ваше право). И это хорошо. По-моему, Ваша концепция вписывается в идею "Дракон -- семейство языков", если брать этот термин в расширительной трактовке. |
Автор: | Wlad [ Вторник, 04 Май, 2010 20:25 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Info21 писал(а): Wlad2 писал(а): Geniepro писал(а): Как я понял, оно работает там, где программу должны делать не программисты, а специалисты-предметники, не желающие (не имеющие возможности) тратить время на изучение языков и парадигм программирования. и что они наработают?Ни логику, ни граничные условия, ни вырожденные случаи Дракон не отменяет. я - немножко не о том. есть ситуации, когда я сознательно иду на нарушения структурности. не потому, что "извратно-прикольно", а потому, что - "к стенке приперает". например, вот: Код: switch( groupSymbolI ) { case 1: if( isInserting_ ) { default: needUpdate = MoveCursorToThisGroupPrevIndex(); break; } else // ! isInserting_ case 0: needUpdate = MoveCursorToPrevGroupLastIndex(); } уверяю вас, что этот ужас получен "свёрткой" из вполне себе "приличной" записи конструкций с логикой обработки. но, в память оно не влезало. в микронотроллер это надо было пихнуть и нельзя было на ассемблере. так вот "по-правильному" - не влезало. а так - ещё и под восемь констант место осталось. но! свёртка потребовала "напряжения ума". пример приведён по-проще. "в пять строк". а есть - на три страницы. тоже - "с извратами". приходится "крутиться". так вот. может дракон такие изоморфизмы на "1-2-3" находить? способствует? |
Автор: | Илья Ермаков [ Вторник, 04 Май, 2010 20:29 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Вот такие свитчи хитрые, которые приходится во встроенке воротить, как раз хорошо выражаются "силуэтом" - конструкцией верхнего уровня в ДРАКОНе. Которая позволяет показывать такие безусловные переходы между состояниями. |
Автор: | Владимир Паронджанов [ Вторник, 04 Май, 2010 20:32 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Продолжу мысль. Не так давно на форуме Компьютерры я писал: Цитата: Уважаемый Тимур! Вопрос. Дракон - это язык программирования или алгоритмический? Ответ. И то, и то. В программе DRAKON, созданной Геннадием Тышовым (спасибо ему), - это алгоритмический язык. Но в языке ДРОН = ДРАКОН + Оберон - это язык программирования http://sage.com.ua/ru.shtml?e6l0 У нас на работе (Федеральное ксмическое агентство) ДРАКОН - это язык программирования для бортового компьютера БИСЕР, установленного на целом ряде ракет-носителей и разгонных блоков космических аппаратов Язык ДРАКОН лежит в основе Технологии разработки алгоритмов и программ (CASE-технологии) ГРАФИТ-ФЛОКС http://store.oberoncore.ru/lib/paper/grafit_A4.pdf Моя задача - превратить космический ДРАКОН (точнее, его процедурную часть), используемый для специализированного компьютера БИСЕР, в универсальный язык , пригодный для персональных компьютеров, ноутбуков и т. д. Общая схема такова. ДРАКОН + "язык" Х (описание данных) = целевой язык Z В качестве языка Z можно попытаться использовать почти любой язык: Перл, Питон, С, С# и т.д. Важная мысль. Дракон - это не один язык, а СЕМЕЙСТВО ЯЗЫКОВ. Семейство может включать: Дракон-Оберон; Дракон-си; Дракон-Перл; Дракон-Питон; Дракон-си; Дракон-С# и т.д. Речь идет об открытой разработке, осуществляемой силами добровольцев-энтузиастов. Координация добровольцев осуществляется на сайте OberonCore Моя цель - привлечь энтуазиастов и заинтересовать их (если получится) в реализации намеченной программы. Например, Дмитрий_ВБ задумал сделать язык Дракон-си viewtopic.php?f=79&t=2203 Я от всей души желаю ему успеха. Разумеется, это очень сложная задача. Получится или нет? -- покажет время. Я приношу искреннюю благодарность всем, кто заинтересовался идеей Дракона и внес свой вклад в ее осуществление. На всякий случай напоминаю. Дракон - это не розовая мечта, а ПРАКТИЧЕСКИ РАБОТАЮЩАЯ СИСТЕМА. ДРАКОН используется в следующих ракетно-космических проектах (при разработке систем управления ракет-носителей и разгонных блоков космических аппаратов): -- разгонный блок космических аппаратов ДМ-SL (в рамках международного проекта «Морской старт» — участники Россия, США, Украина, Норвегия); -- разгонный блок космических аппаратов Фрегат (Российско-европейский проект); -- модернизированная ракета-носитель тяжелого класса Протон-М; -- разгонный блок космических аппаратов ДМ-03; -- разгонный блок космических аппаратов «Наземный старт»; -- ракета-носитель легкого класса Ангара 1,2; -- ракета-носитель тяжелого класса Ангара-А5; -- и др. http://www.computerra.ru/forum/index.ph ... age1064266 http://www.computerra.ru/forum/index.ph ... age1064164 см. стр 77, сообщение 1920 |
Автор: | Peter Almazov [ Вторник, 04 Май, 2010 21:04 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Димыч писал(а): Язык Дракон - строго формализованный способ представления алгоритмических знаний. Набор правил языка позволяет строить и изменять легко читаемые, быстро понимаемые алгоритмы любой сложности. К особенностям языка следует отнести учет механизмов восприятия информации человеком и учет принципов структурного программирования. Благодаря строгой формализации алгоритмы на языке Дракон легко поддаются автоматному преобразованию в произвольное представление, в том числе и в тексты на языки программирования. Область применения - описание бизнес-процессов, описание поведения систем, системы управления, отчасти - автоматное программирование. Вот, кстати, яркий пример эффективного закрепления на уровне недоучки. Человек искренне верует в то, что он написал, и больше ему ничего не надо.Какой смысл его оспоривать? |
Автор: | Илья Ермаков [ Вторник, 04 Май, 2010 21:05 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
И что там не так? Я бы внёс пару стилистических правок, типа убрать "любых алгоритмов", ибо ставить квантор A в утверждениях без крайней уверенности нельзя. |
Автор: | Axcel [ Вторник, 04 Май, 2010 22:08 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Возможно не в тему, но мне кажется пригодится. 1985 - 1992 я работал в НПО "Импульс", комплексником (нас не без иронии называли идеологами ). Кроме всего прочего, в наши обязанности входило формулирование алгоритмов поведения системы, для последующего утверждения заказчиком. "Дракона" тогда еще не было, а очень похожий SDL уже был. Я честно пытался его применить, но мало того, что пришлось на несовершенном редакторе рисовать, так потом еще на скрипучем матричном принтере самому печатать, одним словом кошмар . А вот псевдокод на основе Алгола-68 меня очень даже вручал, быстро изобразишь на черновике (и на Алголе-68), затем перепишешь на канцелярите в секретный блокнот и ву-а-ля (сдаешь в машбюро ) и ни каких проблем. Тем не менее попытки внедрения единого формализованного представления у нас тоже предпринимались. За основу была взята семиуровневая модель протоколов (были там и какие-то графические средства, временные диаграммы точно были). Короче основной упор на всякое согласование по протоколам, а алгоритмы это так, само собой, постольку - поскольку, как наиболее простое и понятное, в котором разработчики и сами в случае чего разберутся. По моему разумению системы подобные Дракону могут дать эффект только при мощной технологической корпоративной поддержке. Когда твой твою схему у тебя без дополнительных усилий возьмут, зарегистрируют, передадут, распечатают, протестируют и т.д., и без всего этого - просто дополнительная нагрузка. При этом, хороший редактор схем и "правильный" генератор кода всего лишь необходимые, но совершенно не достаточные элементы. |
Автор: | Info21 [ Вторник, 04 Май, 2010 22:10 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Димыч писал(а): Язык Дракон - строго формализованный способ ... Но не описана специфика, сущность. Этого хотелось.
|
Автор: | Илья Ермаков [ Вторник, 04 Май, 2010 22:16 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Axcel писал(а): Возможно не в тему, но мне кажется пригодится. 1985 - 1992 я работал в НПО "Импульс", комплексником (нас не без иронии называли идеологами ). Кроме всего прочего, в наши обязанности входило формулирование алгоритмов поведения системы, для последующего утверждения заказчиком. "Дракона" тогда еще не было, а очень похожий SDL уже был. Я честно пытался его применить У А.Н. Терехова в ЗАО "Ланит-Терком" SDL используется - и на базе его CASE-технология и процесс коллективной разработки ПО для встроенных систем (системы связи). В его книжке "Технология программирования" рассказывается. |
Автор: | Axcel [ Вторник, 04 Май, 2010 22:21 ] |
Заголовок сообщения: | Re: "дракон" - оно в каком месте "работает"? |
Так я у них технологию SDL и брал. У них вроде работало (университет), а у нас (НПО "Импульс") нет. Кроме того, у меня есть подозрения в некоторой искусственности или "парадности" этой их технологии. Просто наши предпочитали (имели возможность) держать специальный отдел для работы с заказчиком, а те им блок схемы рисовали, но внимания этому они действительно уделяли много. Как пример http://www.sysprog.info/2004/18.pdf |
Страница 3 из 7 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |