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)
Ответ на: комментарий от hobbit

А сейчас применяет во всю ООП? Де? От GObject отказался ж, и не вернулся %)

А в первых темах он постоянно агрился то на текстовые языки

Вот прям?

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

Я хочу успеть задать один вопрос, до того, как вы с @metaprog’ом станете популярны, и у вас будут клянчить интервью сотни журналистов в день.

Итак, Варфоломей Батькович, располагайтесь поудобнее. И начнем мы, пожалуй, с вопроса, который будоражил умы всех наших телезрителей с того самого момента, как они окунулись в увлекательный мир графического программирования: «Как вы познакомились с Лабвьюненко Метапрогом Графанычем?»

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

Хотел научить своего кунца программировать, но существующие языки слишком нудные и сложные, а тогда на ЛОРе я увидел новую metaprog тему, подумал «то что нужно», ну и решил отписаться - Metaprog: универсальная графическая среда программирования [в разработке] (комментарий)

Хотя я об этом уже писал. А то что было дальше все могут прочесть.

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

Не вижу чего то неадекватного.

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

наиболее вероятным претендентом можно считать товарный паровоз серии Г

Что в контексте всей темы как бы намекает.

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

Во, это поинтереснее, спасибо за наводку. Стал бы я читать целую Каренину чтобы выделить такие подробности? А тут все и сразу. Хотя в изложении Никонова я Каренину таки прочитал («Анна Каренина. Самка»).

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

Кстати, сейчас ТС посылать в жопу практически перестал, и с ним стало можно почти нормально общаться

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

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

Нейросети учатся быстрее тебя.

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

А анонимусы

Анонимус придерживается своих тезисов

  • ничего нового ты не изобрел, ты просто рисуешь существующий уже язык/типы/структуры и даже вызовы
  • твои диаграммы понятны только тебе. Стало быть, чтоб в них въехать нужен курс обучения. а тратить время на фуфло мало кто будет.
  • свой прототип ты собрал из достаточно высокоуровневых блоков, о которых понятия не имеешь, как они устроены внутри и сколько человеко-часов ушло на их создание
  • как следствие предыдущего: ты так и ниосилил сделать ни одного нормального примера на своем «прототипе». Собственно потому что ты банально не умеешь и не понимаешь ничего в работе с данными.
  • Даже если ты каким-то чудом, с чьей-то помощью (сам ты неосилишь это к гадалке не ходи) сделаешь нечто, что будет собираться, запускаться и даже не сегфолтить каждый 5 минут, то таким виз.программированием, один хрен, пользоваться никто не будет ибо «2+2» написать быстрее, чем нарисовать.
  • единственная твоя надежда на мамкиных скриптс-киддесов, которым ты вкрутишь в уши, что твоя метанпрога сделает из них программистов. Чем ты собссно и занимаешься.
  • еще одна слабая надежда - индусы. Как показала практика среди них всегда найдется тот, кто готов жрать что угодно чисто по фану.
anonymous
()
Ответ на: комментарий от metaprog

приутихли. Хоть еще потявкивают и позорятся этим, но теперь уже не могут говорить, что «прототипа нет»

Когда после продолжительного танца дождя начинается дождь, некоторые считают, что дождь был вызван танцем шамана.

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

Лучше почитай обсуждение нужности-ненужности читаемости сгенерированного кода, которое было последние полторы страницы.

Или вот про бинарный формат:

Так в прототипе можно сохранить, разрабатываемую программу в вашем бинарном формате?

Можно. И он даже будет версионированным, но это пока костыль на уровне лабвью.

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

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

Лапушка, как так приутих? Я же тебя регулярно тыкаю носом в твои фейлы и задаю неудобные вопросы, на которые ты отвечаешь клоунадой.

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

Если бы metaprog не «будоражил» всех всякими перлами, то уже бы и забыли об этом проекте.
Глупость на форуме - «живительная вода для флуда».
В первых 10 тредах metaprog эту методу использовал великолепно.

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

Берегитесь Зевс и Меркурий, Метапрог уже приближается к Луне.

anonymous
()

а ты бро молодец.

дело твоё правое, хотя и не совсем(в плане ui).

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

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

не обращай внимания и пили какашку

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

Зачем мы на эти треды столько времени угробили?

Затем же, зачем люди гробят время на ММО.

Да, это было ММО/ПШЛвЖПУ «Метапрог Онлайн: Ярость LabVIEW».

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

И ещё говорят, что под Линукс игорей масштабных нет. Нагло врут.

Кстати, где мои ачивки?

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

Метапрог-схемы вроде не сильно от них отличаются, разве что цвета.

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

Меня особенно позабавил комментарий

ЛОР — тот еще обезьянник. Там обливают говном даже успешно работающий много лет софт (например, systemd, реально ускоряющий загрузку системы). Что уж говорить о прототипе новой визуальной среды программирования?

Хотя пару тредов назад метапрог сам кричал, что

апачу и прочей полной уязвимостей ерунде не доверяю

возможно проблема вообще в gtk, а не моем коде

А также обсирал Java, Python, C++, да и вообще все текстовые языки

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

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

Вряд ли. Скорее всего, при переходе на настоящий Метапрог с прототипа будет специальная трансляция данных.

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

В основном мне заминусовали карму за критику десятой винды в комментариях.

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

Меня особенно позабавил комментарий

ЛОР — тот еще обезьянник

Хотя пару тредов назад метапрог сам кричал

апачу и прочей полной уязвимостей ерунде не доверяю

возможно проблема вообще в gtk, а не моем коде

Так ведь всё сходится.

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

Хотя, да, ведь единственные обезьяны - это метапрог и котечка

anonymous
()

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

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

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

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

Почти так, тебя что то удивляет? Если бы появилась новость о том что systemd переписывают на java, все бы писали «какой ужас, теперь оно будет есть 10тб озушки и весь проц!!!»

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

Вот кстати, если бы метапрог сделал редактор синтаксических диаграмм с выводом в dot и конвертацией в бнф и обратно - вот это был бы действительно годный стартап полезный проект.

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

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

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

https://creately.com/ Over 2.5 Million people, thousands of teams already use Creately

Пусть даже на два миллиона приврали ...

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