<div dir="ltr"><br><div class="gmail_extra"><div dir="ltr"><div class="gmail_quote">---------- Пересылаемое сообщение 2 ----------<br>От кого: <b class="gmail_sendername">Evgeny Sinelnikov</b> <span dir="ltr"><<a href="mailto:sin@altlinux.ru" target="_blank">sin@altlinux.ru</a>></span><br>Дата: 14 января 2015 г., 5:11<br>Тема: Поддержка физических исполнителей в Кумире<div dir="ltr"><div class="gmail_extra"><br>...<br><p>Основные
подробности поддержки реальных исполнителей изложены в публикации в
докладах В.В.Яковлева, Д. В. Хачко, А.Г.Кушниренко, М.А.Ройтберго на
"VIII конференции Свободное ПО в высшей школе" в январе 2013 года:<br></p><ul><li><a href="http://www.altlinux.ru/media/pereslavl-winter-2013.pdf" target="_blank">http://www.altlinux.ru/media/pereslavl-winter-2013.pdf</a></li><li><a href="http://talks.rosalab.com/%D0%9A%D1%83%D0%BC%D0%B8%D1%80_2.0._%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80_%D0%B8_%D1%81%D1%80%D0%B5%D0%B4%D0%B0_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%28" target="_blank">http://talks.rosalab.com/Кумир_2.0._Компилятор_и_среда_выполнения_%28</a>Виктор_Яковлев,_OSEDUCONF-2013%29<br></li></ul><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><h3> <span> Возможность выполнения программ на широком спектре оборудования </span></h3>
<p>Интерпретатор выполнимого байт кода системы Кумир реализован в виде
одного выполняемого бинарного файла, который для своей работы требует
только стандартную библиотеку языка C++.
Размер релиз-сборки интерпретатора не превышает 400 Кб (для процессора
ARM, система Raspbian Linux), при этом базовые возможности
интерпретатора включают в себя полную поддержку всех возможностей
языка Кумир, работу со стандартными функциями, с текстовыми файлами,
поддержку кириллических символов Юникода и функции работы со строками.
Сгенерированный компилятором байт код
одинаково выполняется на процессорах различных архитектур.
</p><p>Изначально предполагалась реализация минимально возможного
интерпретатора для выполнения на устройстве Lego NXT 2.0, однако, для
поддержки всех возможностей языка Кумир, в рамках эталонного
учебника<sup><a href="http://talks.rosalab.com/%D0%9A%D1%83%D0%BC%D0%B8%D1%80_2.0._%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80_%D0%B8_%D1%81%D1%80%D0%B5%D0%B4%D0%B0_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%28%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80_%D0%AF%D0%BA%D0%BE%D0%B2%D0%BB%D0%B5%D0%B2,_OSEDUCONF-2013%29#cite_note-4" target="_blank">[4]</a></sup>, это оказалось невозможным по двум причинам:
</p><ul><li> 1. Отсутствие блока операций с плавающей точкой в используемом NXT процессоре<sup><a href="http://talks.rosalab.com/%D0%9A%D1%83%D0%BC%D0%B8%D1%80_2.0._%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80_%D0%B8_%D1%81%D1%80%D0%B5%D0%B4%D0%B0_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%28%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80_%D0%AF%D0%BA%D0%BE%D0%B2%D0%BB%D0%B5%D0%B2,_OSEDUCONF-2013%29#cite_note-5" target="_blank">[5]</a></sup>, в то время как язык Кумир декларирует поддержку операций над вещественными числами в соответствии с IEEE 754.
</li><li> 2. Небольшой объем (64 Кб) оперативной памяти, что делает практически невозможным работу с таблицами языка Кумир.
</li></ul>
<p>Существующая на данный момент реализация системы Кумир 1.9 для
работы с конструктором Lego NXT [7] предполагает использование
управляющего хост-компьютера, который использует радиоканал
Bluetooth для передачи телеметрических данных. Такой подход имеет два
существенных недостатка: во-первых, требуется качественный
Bluetooth-адаптер, во-вторых, это решение имеет большие временные
задержки, оказывающие серьёзное влияние при реализации типовых
алгоритмов управлением роботом. Данная проблема может быть решена только
переносом выполняющей части на компьютер робота, и использованием
хост-компьютера только для редактирования, загрузки и запуска программ.
</p><p>Недавно компания Lego анонсировала<sup><a href="http://talks.rosalab.com/%D0%9A%D1%83%D0%BC%D0%B8%D1%80_2.0._%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80_%D0%B8_%D1%81%D1%80%D0%B5%D0%B4%D0%B0_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%28%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80_%D0%AF%D0%BA%D0%BE%D0%B2%D0%BB%D0%B5%D0%B2,_OSEDUCONF-2013%29#cite_note-6" target="_blank">[6]</a></sup>
выход нового поколения компьютера серии Mindstorms, на который может
быть портирован выполнитель системы Кумир без существенной адаптации.
</p><p>Поскольку данное устройство пока отсутствует в продаже, процесс
портирования и отладки системы Кумир для процессора архитектуры ARM
осуществляется с помощью устройства [ <a rel="nofollow" href="http://www.raspberrypi.org/" target="_blank">http://www.raspberrypi.org/</a> Raspberry Pi].
</p><p>Отказ от использования сторонних библиотек (в частности, Qt) при
реализации выполнителя, с одной стороны, усложнил процесс
разработки, а с другой, – позволил снизить аппаратные требования
для выполнения Кумир программ и обеспечить возможность портирования на
те платформы, которые не поддерживаются разработчиками Qt. В частности,
возможна реализация выполнителя для FreeDOS
(после некоторой доработки стандартной библиотеки компилятора
OpenWatcom) и на платформу Android (используя NDK). Существенным здесь
является использование единых исходных текстов как для
«десктопной» версии Кумира, так и для версий, специализированных под
конкретные устройства.
</p></blockquote><p>Наиболее подробно методические возможности программирования Лего
робота в Кумире я смог найти в статье Анатолия Георгиевича Кушниренко и
Александра Георгиевича Леонова "Методика преподавания основ
алгоритмизации на базе системы "КуМир". Лекция 8" в газете "Информатика"
N24 (601), 16-31.12.2009:<br></p><ul><li><a href="http://inf.1september.ru/article.php?ID=200902401" target="_blank">http://inf.1september.ru/article.php?ID=200902401</a></li></ul>С
момента этой публикации прошло уже пять лет, с момента последних
коммитов в Кумир прошло два с лишним года. Что-то переосмыслено, что-то
пока что просто не реализовано. Хотелось бы вот этот вот момент и
уточнить. Многое понятно по недавним публикациям, но текущий актуальный
вектор развития ясен не до конца. <br><br>_____________________<br><br>...<br></div><span><font color="#888888"><div class="gmail_extra"><br>-- <br><div><div dir="ltr">Sin (Sinelnikov Evgeny)<br></div></div>
</div></font></span></div>
</div></div>
</div></div>