DRAKON.SU

Текущее время: Вторник, 16 Апрель, 2024 16:45

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




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
СообщениеДобавлено: Четверг, 22 Ноябрь, 2012 15:20 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
http://xbb.uz/dev/Algoritmicheskij-jazyk-Drakon
Эту статью написал Ваниликин

Цитата:
«Слушайте, граждане,» — сказали советские конструкторы космической техники в далёком 1986-м году, — «а почему это нам приходится постоянно дёргать программистов, даже ради создания несложного софта? Давайте-ка сделаем так, чтобы любой инженер мог самостоятельно справиться!» Так появилась совершенно потрясающая разработка — ДРАКОН, применяемая РосКосмосом в промышленном масштабе с 1996-го. О ней и расскажем.

Суть вкратце

«ДРАКОН» — своеобразная аббревиатура. Расшифровывается она так: Д — Дружелюбный, Р — Русский, А — Алгоритмический язык, К — Который, О — Обеспечивает, Н — Наглядность.

Наглядность обеспечивается на самом деле. Алгоритмы, доступные для создания целостных программ, отображаются в виде блоков на дисплее компьютера. Всякие прямоугольники, соединённые линиями и стрелочками. Внутри них указаны действия. Всё это называется ДРАКОН-схемы. (Причём, некоторые прямоугольники — с закруглёнными углами. Такой дизайн запатентован конторой Apple. Правда, Apple явно побаивается подавать в суд на РосКосмос.)

Так вот, инженер, сконструировав какой-нибудь прибор, может самостоятельно создать программу для управления устройством, просто передвигая блоки — элементы ДРАКОН-схемы. Без ручного написания исходного кода.

Гибриды

Хотя в вышеупомянутом исходном коде разбираться необязательно, обойтись без него всё равно нельзя. Ведь алгоритмы, представленные в виде схем, всё равно нужно преобразовывать в нечто пригодное для компиляции. И одновременно понятное как можно большему количеству среднестатистических специалистов.

Всякие велосипеды, конечно изобретали, но здравомыслие победило: разумные люди принялись прикручивать к ДРАКОН-схемам уже существующие языки программирования (выбрав самые популярные, естественно). Получились гибриды, такие как «Дракон-Си», «Дракон-Java», «Дракон-Perl» и, с особенно красивым названием, «Дракон-Питон».

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

Среда разработки

Конечно же, управление ДРАКОН-схемами происходит не просто так, а внутри какой-то компьютерной программы. Впрочем, почему в какой-то, есть вполне конкретный, пригодный для работы софт: DRAKON Editor 1.13, присутствующий на SourceFordge (вот здесь: sourceforge.net/projects/drakon-editor/files/). По заверениям создателя, Степана Миткина, позволяет изготавливать софт на языках Java, Javascript, C#, C++, C (обычный Си), Python, Tcl, Lua и Erlang.

Можно устанавливать в Windows и Mac OS. Требует поддержки Tcl (доведётся обратиться к проекту ActiveTcl). В GNU/Linux тоже работает, но необходимы компоненты tcl8.5, tk8.5, libsqlite3-tcl, tcllib и libtk-img.

В Windows запускается двойным кликом на файле drakon_editor.tcl, а в Mac OS и GNU/Linux — командой в терминале: tclsh8.5 drakon_editor.tcl (после неё через пробел можно указать имя файла, который нужно открыть в редакторе).

Есть и альтернативное решение: «Интегрированная Среда ДРАКОН», именуемая также «ДРАКОН-редактор». Создатель: Тышов Геннадий Николаевич.

Данный редактор, после расстановки блоков, умеет преобразовывать результат в коды на языках программирования Delphi, Си, Oberon и даже ASM. Правда, запустить его можно только в операционной системе Windows. Да и брать дозволено лишь на девять месяцев, а потом нужно получать какую-то лицензию.

Другие среды разработки или не доведены до ума, или работают в древней ОС MS DOS, или предназначены для внутреннего использования в разных конторах. Например, московский «Научно-производственный центр автоматики и приборостроения» создал продукт под названием «ГРАФИТ-ФЛОКС-система», заточенный под их производственные нужды и не очень-то интересный широким слоям программирующих граждан.

Кому это нужно

Алгоритмический язык ДРАКОН нужен международному проекту «Морской старт», конструкторам космических аппаратов «Фрегат» и ракет-носителей «Протон-М». По непроверенным данным, кто-то также пытался создавать софт для охранных систем, электронных замков, всяких сигнализаций и прочих мелочей.

Широкому распространению и повсеместному внедрению вроде бы ничего не препятствует, однако почему-то никто особо не рвётся популяризировать сей столь удобный и практичный инструмент.

Вот если бы можно было делать приложения для ОС Android (как, например, AppInventor), то популярность пришла бы. А так... Впрочем, Google не дремлет.

Google Blockly

Ценная концепция не должна пропадать, решили в Google, и 13 июля 2012-го года группа энтузиастов анонсировала визуальный язык программирования Blocky.

Человек перетаскивает модули, похожие на элементы цветной головоломки, и таким образом выстраивает алгоритмы в программу. Потом это можно скомпилировать, например, в Python.

Мало того, что код проекта распространяется под лицензией Apache, так ещё и прямо в браузере работает, поскольку написан на JavaScript. Хотя, зачем лишние слова, каждый может зайти на страницу проекта code.google.com/p/blockly/ и выстроить из команд-модулей демонстрационную программу для преодоления лабиринта. Получается даже у детей.

Правда, ничего серьёзного на Blocky пока не сотворить, большие приложения ему не по силам. Проект ведь совсем юный. Это же не ДРАКОН, родившийся в 1986-м.

Заключение

Вот и получается, что если проект ДРАКОН не возьмётся за ум и не адаптируется к современным условиям, то так и останется востребованным лишь аэрокосмическими конторами да парой исследовательских институтов.

Никто не берётся за продвижение и популяризацию? Значит, не судьба. Таковы современные условия.

Даже если Blocky не разовьётся и не окрепнет под крылышком Google, появятся другие аналогичные проекты, ведь свято место, как известно, пусто не бывает в принципе, и хорошие идеи всегда найдут своих реализаторов.

Автор: vanilinkin, специально для xBB.uz, 13.10.2012


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 22 Ноябрь, 2012 15:31 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
Вторая статья Ванилинкина

http://xbb.uz/IT/Chto-takoe-algoritm
Цитата:
ЧТО ТАКОЕ АЛГОРИТМ?

Действительно, что такое алгоритм? Слово встречается часто, и многие вроде бы понимают его значение. Однако для нас туманное «вроде бы» неприемлемо, мы будем раскладывать всё по полочкам, подробно растолковывать и прояснять. Ну а начнём, как обычно, с краткой истории возникновения обсуждаемого понятия.

История

В 825-м году персидский математик аль-Хорезми написал трактат с названием «Книга о сложении и вычитании». В Европу данный труд попал в переводе на латинский язык и был озаглавлен «Algoritmi de numero Indorum», то бишь, «Алгоритмы о счёте индийском». Так фамилия аль-Хорезми превратилась в «алгоритм». А от названия персидского оригинала произошло слово «алгебра» (от «аль-джебр», сложение).

В общем, с тех пор книжки о счётном искусстве стали традиционно называть Алгоритмами, в разных вариантах этого слова. Например, «Algorismus vulgaris», написанная английским астрономом Иоанном Сакробоско в 1250-м.

Однако в более конкретном смысле понятие «алгоритм» употребил в одном из своих трудов немецкий учёный Готфрид Лейбниц. С 1684-го термин стал обозначать систематический способ исчисления.

В двадцатом веке, в 1936-м году, английский математик Алан Мэтисон Тьюринг вывел концепцию абстрактной вычислительной машины. Она так и называется: «Машина Тьюринга». Именно тогда пророк компьютерной эпохи чётко связал понятие «алгоритм» с вычислительной техникой и программированием.

Что это такое

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

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

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

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

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

Блок-схемы

Иногда программное обеспечение является настолько сложным, что в нём крайне трудно разобраться без наглядного представления алгоритмов. Поэтому составляют блок-схемы, показывающие структуру софта. Мол, глядите, вот это делает то-то, с тем оно связано так, а с этим — вот так.

В конце восьмидесятых годов прошлого века в рамках космической программы «Буран» был разработан алгоритмический язык «Дракон». Его концепция такова: человек работает не с текстом исходного кода, а с графическим представлением готовых модулей («икон»), указывая, какие алгоритмы что делают и с чем связаны.

К «Дракону» теоретически можно прикручивать «традиционные» языки программирования. Получится бы «Дракон-Си», «Дракон-Perl», «Дракон-JAVA» и так далее. Главное — сделать транслятор из блок-схем («дракон-схем») в нужный язык.

Правда, как и многие другие удобные вещи, данная разработка малость подзабыта.

Псевдокод

Псевдокод — это неформальное описание алгоритмов в виде, понятном для людей. Не в виде графических схем, не на каком-либо языке программирования, а простыми человеческими словами или их сокращениями. Примерно так:
алг Некая программа
нач
вывести ('Привет, мир!')
кон алг Некая программа
Теперь, когда суть алгоритма ясна, остаётся лишь заменить все эти «алг» («алгоритм»), «нач» («начало»), «вывести» и «кон» («конец») на стандартные средства выбранного языка программирования.

Заключение

Даже самое простое приложение, выводящее на экран «Привет, мир!», содержит в себе алгоритм. Причём, один и тот же, независимо от использованного языка.

Следовательно, алгоритм как таковой всегда первичен, а оформление его с помощью какого-либо языка программирования — это уже вторично. Тем более что средств такого оформления нынче много.

Автор: vanilinkin, специально для xBB.uz, 25.03.2012

Если кто знает, кто такой Ванилинкин, и как его имя-отчество, расскажите.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

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


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

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


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

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