LINUX.ORG.RU

Metaprog: выпуск прототипа (универсальная графическая среда программирования)

 , ,


2

3

Сегодня, как и было обещано, день выпуска LabVIEW-прототипа универсальной графической среды программирования Metaprog.

LabVIEW-прототип не является конечной целью. В дальнейшем с помощью прототипа Metaprog будет собран «сам на себе» и не будет зависеть от LabVIEW.

Приглашаю всех желающих стоять у истоков универсальной графической среды программирования присоединиться к работе над прототипом!

Видео-обзор ( VarfolomeyKote4ka)

https://youtu.be/EcQMgUAm0DE

Скачать: https://www86.zippyshare.com/v/pWggQ91b/file.html

Аннотация

Открывать и запускать !метапрог.vi и !метапрог онлайн.vi

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

В Метапрог и Метапрог онлайн встроена справочная система и интерактивные инструкции.

Требования:

1. Для запуска, просмотра и редактирования диаграмм - LabVIEW начиная с 2013.

2. Если не удалось достать линуксовую версию LabVIEW - виртуальная машина с Windows начиная с ХР с кириллической локализацией (иначе будут проблемы с кодировкой символов).

3. Tor Browser или Tor для подключения к серверу:

https://www.torproject.org/

или:

sudo apt-get install tor

4. Для компиляции сгенерированного кода:

sudo apt-get install clang libevent-dev libsdl2-dev

Адрес для добровольных пожертвований:

Bitcoin: 1AYoK2TScSpD5bhf67mv9AxHDJ2RidRvjD

Этот адрес действителен как ключ для электронной подписи от имени разработчика.

Код лицензирован под GNU GPL v3, подробности - по кнопке «Про программу» и в файле LICENSE.txt (на английском). Отдельные файлы могут быть лицензированы под MPL и другими лицензиями.

Описание конструктора диаграмм (часть справочной системы, лучше читать смотря на Метапрог)

В случае вопросов или проблем консультации можно получить в чате программы «Метапрог онлайн».

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

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

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

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

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

Очередность выполнения также задается жесткими последовательностями. Это - особые линии, которые проводятся по кнопке блоки - последовательность. Первый клик на блоке - начало последовательности, следующие клики - изломы провода (на пустых местах) либо конец последовательности (на блоке). Места начала и конца провода имеют значение при работе с циклами, условными разветвлениями, переключателями.

Чтобы удалить блок на диаграмме, нажми на него правой мыши. Чтобы удалить провод или жесткую последовательность, нажми правой мыши на квадратик на нем.

Чтобы скопировать элемент на диаграмме, нажми на него колесом мыши. Чтобы вставить - жми колесом мыши на пустом месте.

При наведении мышью на элемент диаграммы отображается подробная информация о нем. Элементы подсказок кликабельные. Для дальнейшней справки кликай на "?" в подсказках к элементам.

Описание контейнера с данными и системы типов (часть справочной системы, лучше читать смотря на Метапрог)

В Метапроге есть три вида контейнеров с данными: константа, вход и выход. Константа имеет жестко заданное значение. Вход и выход связывают эту диаграмму с внешними диаграммами.

При клике правой мыши на пиктограмме перемещения константа будет преобразована во вход такого же типа.

Типы в Метапроге имеют надтип. Может наследоваться интерфейс работы с данными, способ трансляции в Си и цвет (если тип не имеет своего цвета). При работе с диаграммой и ее трансляциями в Си данные разных типов обрабатываются зависимо от корневого типа. Метапрог имеет следующие корневые типы:

Данные - включает в себя числа (знаковые, беззнаковые и бробные разных разрядностей) и логический тип (зеленый). Логический тип совместим со всеми числовыми типами, так как в Си они могут выступать в качестве условия (если ноль - «нет», все другие значения - «да»). Есть типы число (все числа, коричневый), знаковое (голубой), беззнаковое (темно-синий), целое (объединяет знаковое и беззнаковое),дробь (оранжевый).

Неопределенное - аналог типа void в Си. Совместим со всеми типами.

Указатель - содержит адрес данных. Прямо транслируется в указатель на Си. Получается из данных блоком «указатель» (из меню блоков), вытягиваются данные из указателя блоком «вытягивание указателя».

Структура (последовательность и выбор) прямо транслируется в struct или union на Си. Формируется из контейнеров с данными другого типа путем из вытягивания на структуру. Достум к элементам структуры осуществляется через блок «операция над структурой».

Массив - тип, не имеющий прямого аналога в Си. Содержит указатель на первый элемент и длину массива. Доступ к этим переменным осуществляется через блок «операция над структурой». Чтобы задать тип массива, вытащи на него контейнер нужного типа. Массив можно подключить к типованному циклу (блоки - типованный цикл), в котором можно осуществить обработку каждого его элемента.

Структура условного выбора типа не имеет проямого аналога в Си. Состоит из числа-переключателя и структуры выбору (в Си - union) из данных разных типов. Тип данных зависит от значения переключателя. Задается и читается через операцию над структурой. Можно подключить к переключателю (блоки - переключатель), в котором обрабатывать данные зависимо от типа. Для добавления типа вытащи контейнер нужного типа на СУВТ.

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

Функция Си - на уровне Си является указателем на функцию. Над такой константой есть пикторгамма соответствия копии на диске в виде дискетки, как над подфункцией. Ее цвет зависит от соответствия. Кликом по этой пиктограмме можно управлять соответствями. Подобная пиктограмма есть у сложных типов (структур и структур условного выбора типа). В подсказках к константам, содержащим подфункцию, есть 4 цветные цифры. Это суммарное число комментариев определенных видов в поддиаграммах (замечание, известные ошибки, пожелания и «дело сделано»).

------------------------------------------

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

При клике на название объект диаграммы можно переименовать. Название объекта никак не влияет на логику и предназначено для чтения людьми.

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

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

Metaprog: универсальная графическая среда программирования [LabVIEW-прототип] часть 9

Там же ссылки на более ранние темы.



Последнее исправление: metaprog (всего исправлений: 1)
Ответ на: комментарий от annulen

Этот пункт вообще не релевантен, сам метапрог бинарный, причём тут несовместимые с GPL библиотеки?

Ну не можешь ты лицензировать под GPL то, у чего нет исходников. Не выдумывай.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Ну не можешь ты лицензировать под GPL то, у чего нет исходников.

Не правда, у него есть исходники. В GPL нет никаких указаний на то, что исходники должными быть plain text'ом. Да и вообще под GPL можно выложить все что угодно, хоть картинку, хоть кусок ассембера, сгенерированного компилятором

annulen ★★★★★
()
Ответ на: комментарий от BIALYSTOK

Бинарь? Могу выложить со следующей версией прототипа, но лабвью-рантайм на вайн, кажется, не ставится, все равно придется виртуалку держать. Попробуй осилить запуск чатика из 9 темы, там есть бинарь:

Metaprog: универсальная графическая среда программирования [LabVIEW-прототип] часть 9

Получилось?

metaprog
() автор топика
Ответ на: комментарий от anonymous

Лицензия или ее отсутствие у кого-длибо - это вообще не мое дело. За торренты, если что, на кол не сажают, но даже если б сажали - есть 7-дневная бесплатная триалка.

metaprog
() автор топика
Ответ на: комментарий от Deleted

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

metaprog
() автор топика
Ответ на: комментарий от liksys

Почему ты продолжаешь упорно мне писать? Мне неинтересен твой бред, пусть с ним психиатры разбираются. Спорить с тобой тоже не интересно, потому что ты либо врешь (все твои возражения - вранье), пытаясь оппонировать, либо выдаешь некомпетентные суждения. Весьти с тобой диалог - все равно что пятикласснику объяснять про законы Кирхгофа. Хотя пятиклассник может еще что-то понять, пожалуй.

metaprog
() автор топика
Ответ на: комментарий от annulen

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

liksys ★★★★
()
Ответ на: комментарий от WitcherGeralt

В Лабвью есть генератор Си, но не поддерживает рекурсию, гуй и прочие плюшки. Проще оказалось сделать прототип Метарпога, чем портировать лабвью-диаграммы (с виндовской версии) на линукс.

metaprog
() автор топика
Ответ на: комментарий от metaprog

Тебя человек, в прошлой теме просил выхлоп этого генератора и его способности. К сожалению, ты оставил его просьбу без ответа

snake266 ★★
()
Ответ на: комментарий от metaprog

В Лабвью есть генератор Си, но не поддерживает рекурсию

Ты врешь. Поддерживает.

гуй

Для ЛВ можно напейсать переходник фактически для любой длл => можно прицепить абсолютно любой гуй.

прочие плюшки

Какие? давай отмочи еще.

anonymous
()

www86.zippyshare.com

Ты совсем поехавший?

anonymous
()
Ответ на: комментарий от snake266

Тебя человек, в прошлой теме просил выхлоп этого генератора и его способности. К сожалению, ты оставил его просьбу без ответа

Я уже скидывал его выхлоп:

Metaprog: универсальная графическая среда программирования [в разработке] (комментарий)

metaprog
() автор топика
Ответ на: комментарий от anonymous

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

metaprog
() автор топика
Ответ на: комментарий от snake266

ты сначала спроси у него знает ли он что такое рекурсия...

anonymous
()
Ответ на: комментарий от anonymous

Во вот это нормальный разговор С ТС. А то как критика от анонима так сразу фи, а помощь просит. Хотя это не только к анониму у ТСа плохое отношение

snake266 ★★
()
Ответ на: комментарий от metaprog

Ок, а что по выше перечисленному? Ну и опять же таки рекурсия не так часто встречается, можно и без неё обойтись

snake266 ★★
()
Ответ на: комментарий от annulen

В GPL нет никаких указаний на то, что исходники должными быть plain text'ом

Тогда это уязвимость в GPL. В свете новых веяний, полагаю, должно быть указание, что исходником может считаться только то, формат чего известен и описан. В противном случае я могу выложить чёрти что в чёрти каком формате, гордо назвать это исходником, и... смысл?

hobbit ★★★★★
()
Ответ на: комментарий от anonymous

Ну и да. Это не про то варнинг.

anonymous
()
Ответ на: комментарий от anonymous

Учитывая то, что в исхдниках Метапрог-прототипа 381 файл схем, мне твои расценки не подходят.

metaprog
() автор топика
Ответ на: комментарий от hobbit

Надо же, то есть я не должен иметь право выложить код прототипа под свободной лицензией? И диаграммы в бинарном формате на Метапроге тоже? К счастью, GPL не привязана намертво к тексту.

metaprog
() автор топика
Ответ на: комментарий от metaprog

На документацию, где указано:«не используйте рекурсия, это все сломает!!!!»

snake266 ★★
()
Ответ на: комментарий от metaprog

То что у тебя много рекурсии не значит, что она незаменима. И вы не ответили по выше перечисленному.

snake266 ★★
()
Ответ на: комментарий от metaprog

Тебе уже сказано: должна быть свобода изучения. Ты ее не обеспечил, значит не имеешь права лицензироваться под GPL.

liksys ★★★★
()
Ответ на: комментарий от metaprog

Учись читать, мой комментарий был не столько про тебя, сколько про прецедент.

Надо же, то есть я не должен иметь право выложить код прототипа под свободной лицензией

Имеешь, конечно! Точно так же я имею право продавать слонов. Заковыка в том, что слонов у меня нет.

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

К счастью, GPL не привязана намертво к тексту.

Да я даже не настаиваю на привязке к тексту. Достаточно, чтобы было исчерпывающее описание формата. В противном случае открывается возможность написания «исходников», которые открываются только специальной программой, и кроме собственно исходного текста содержат патч Бармина, модуль для «телеметрии» (в современном извращённом понимании этого слова) и данные этой самой «телеметрии». И всё это можно распространять под GPL (для особо тонкого троллинга тех, кто эту GPL создавал). Красота! Так что вопрос: к счастью для кого?

Ещё раз: я не имел в виду лично тебя. Просто твой пример открывает «ящик Пандоры».

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от metaprog

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

Запомните этот твит, щас он это тоже повторит.

liksys ★★★★
()
Ответ на: комментарий от liksys

Тут вопрос, нарушает ли необходимость покупки LabVIEW свободу изучения. Свобода и бесплатность - это ведь, как известно, не синонимы. У любого есть возможность купить LabVIEW и изучать.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Даже наличие бесплатной триалки не делает изучение свободным.

liksys ★★★★
()

ну что, кто-нить уже поставил? познал всю глубину глубин? меня чот ломает все это г-но искать и разворачивать.

anonymous
()
Ответ на: комментарий от liksys

Дурачка выключай. Автор вполне может распространять свои диаграммы под любой удобной ему лицензией. Библиотеки LabVIEW - нет. Но ничто не мешает использовать 2 лицензии: одна для диаграмм, вторая для либ LabVIEW. А позже уйти от этой модели, оставив только диаграммы и GPL.

anonymous
()
Ответ на: комментарий от anonymous

Нет.

Божественная аргументация.

Дурачка выключай.

Вот и выключай. В себе.

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

Бред. Если он не выполняет условия лицензии, то не имеет права ее использовать.

liksys ★★★★
()
Ответ на: комментарий от liksys

GPL подразумеывает свободное изучение.

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

annulen ★★★★★
()
Ответ на: комментарий от hobbit

В противном случае я могу выложить чёрти что в чёрти каком формате, гордо назвать это исходником, и... смысл?

Это уже дело автора. Лицензия, ограничивающая права автора, не будет пользоваться популярностью, это даже фанатики из FSF понимают.

annulen ★★★★★
()
Ответ на: комментарий от annulen

Скачиваем демо лабвью. Начинаем пользоваться продуктом. Демо истекает, но мы продуктом пользовались, и после окончания демо-периода теряем возможность изучения. Вуаля - нарушения GPL.

Все легко и просто выводится простыми рассуждениями.

liksys ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.