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)

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

Метапрог-диаграмма уже является схемой.

Хорошая тема ...

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

PS: Как только в Метапрог добавите хоть какую-то новацию, ЛОР вам памятник воздвигнет.
Понимаете Си в диаграммах LabView «не взлетит».
Здесь нужен хорошо продуманный графический концепт.

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

И еще много чего ...

Лобачевский

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

Понимаете Си в диаграммах LabView «не взлетит».
Здесь нужен хорошо продуманный графический концепт.

Here we go again. «На висит колу мочало, начинаем все с начала»

«Теперь послушаем начальника транспортного цеха». Пусть теперь он объяснит пациенту, почему не стоит пытаться распилить рельсу при помощи фломастера.

Про «не взлетит» и «нужен продуманный концепт» — прямо явственно так первыми тредами повеяло.

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

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

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

Несколько лет отвисел на проекте написанном на шарпе (ASP.Net) и там бизнес логика была реализована в виде Workflow. То самое «графическое программирование». Так вот (это я пишу не метапрогу, ему похеру что ему пишут, чисто народ в каментах повеселить). Я не знаю какими соображениями руководствовались при создании того проекта когда добавили эти Workflow, но разумным кажется объяснение что это должно было позволить поручить разработку логики бизнес-процессов тому стаффу который отвечает, непосредственно, за логику бизнесс-процессов. То есть менеджеры соответствующих подразделений. Так вот. Нихера подобного. Те кто не понимает в программировании все равно в тех диаграммах, стрелочках и блоках нихера не понимал, тем более что в свойствах блоков все равно приходилось писать известное количество кода на ЯП (причем некоторые Workflow писались на VB.Net,а некоторые на Шарпе и соовтетственно у них разный синтаксис), так к тому же там постоянно производились обращения к методам из шарповского кода - обращения к БД, репозитории, много чего всякого.

В итоге для «широкого круга» это решение оказалось совершенно бесполезным, кто не шарит в программировании в целом, ничего не понимает и из «визуального программирования» в виде Workflow. В итоге все задачи по изменению бизнес логики ложились на нас, программистов - менеджеры только согласовывали и формулировали техзадание. А для нас, программистов, редактирование Workflow было сущей каторгой (вспомню - аж передергивает).

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

РРРРЯЯ! ниченепонимаешь! воркфлоу это просто рисование текста а «метапрог это не как все» (с) Вот сам скачай и убедись! любой может! драйвера! ядро! коллайдер! сложнейштепроекты! на хабре! сотни поклонников!

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

P.S. Забыл добавить. Тормозило исполнение кода на этих Workflow'ах что трындец. Конечно, оно мало кого волновало потому как это был чисто корпоративный интранет, но при разработке раздражало пипец как. Юнит-тесты выполнялись полтора часа. И это при том что визуальный код Workflow не интерпретировался, а компилировался непосредственно в сишарпный код.

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

Отвечу вам за metaprog.

В Метапрог все будет намного проще чем в «Workflow-ском трындеце».
Можете уже сейчас скачать прототип Метапрог и убедиться в том какой это ...

Гусарам, молчать!

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

Порутчик он оттого, что рутовый пароль взломал?

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

Ответ прост.
Базар без толпы, не базар.

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

Ну и «с нашим Метапрогом, не приходится тужить.»

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

PS: Как только в Метапрог добавите хоть какую-то новацию, ЛОР вам памятник воздвигнет. Понимаете Си в диаграммах LabView «не взлетит». Здесь нужен хорошо продуманный графический концепт.

Кое в чем я даже с анонимусом готов согласиться. Работа идет, но пока что над базовыми вещами. Для начала надо бы полностью оседлать Си и перевести Метапрог сам на себя. Нужны минимальные примеры сишного кода с рекурсивными типами.

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

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

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

Можешь накидать элементарных примеров на Си с рекурсивными и прочими заковыристыми типами? Я как раз окончательно устаканиваю систему типов.

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

Вообще то лучше вам продолжать развивать свой проект.
Позже поймете почему.
Если хотите иметь помощь от ЛОР-чан, а не одни лишь остроты, то «услышьте народ».

Вот ваш проект много форумчан хвалило?
Подумайте почему так ...

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

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

//fixed

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

Это уже прогресс.
С LabView ваша разработка похожа на - «Воздвигну большой забор, а потом буду искать способ как его перелезть.».

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

Если ещё не предлагал, то на десятом треде пора бы уже предложить название для сей мудрейшей концепции: шизуальное программирование.

Ибо воистину.

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

Кстати, для ардуин подобного добра полно. FLProg еще есть. Но оно какое-то неполное. Там можно работать с указателями?

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

Там можно работать с указателями?

Зачем тебе фича из языка (Си), который ты принципиально не собираешься учить?

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

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

anonymous
()
Ответ на: Так блэт, я не понял, от anonymous

ТС - школьник в мире маняфантазий или все же очень тонкий тролль?

Вы его десятую тему кормите. Троль тонкий, дрыщ можно сказать

anonymous
()

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

anonymous
()

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

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

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

Шутка /ЛОР-у посвящается/

У ЛОР-а дуб зелёный;
Златой модератор на дубе том:
И днём и ночью флуд учёный
Всё ходит по форуму кругом;
Идёт направо - флуд заводит,
Налево - перлы говорит.
Там чудеса: там диаграммы бродят,
Метапрог на ветвях сидит;
Там на кривых дорожках
Флуд невиданных user-ей;
LabView там на курьих ножках
Стоит без окон, без дверей;
Там диаграмыы видений полны;
Там о заре прихлынут волны
На брег песчаный и пустой,
И тридцать технологий прекрасных
Чредой из вод выходят ясных,
И с ними дядька их морской;
Там модератор мимоходом
Пленяет ЛОР-ского царя;
Там в облаках перед народом
Через посты, через моря
Флудеры несут богатыря;
В темнице там LabView тужит,
А бурый Метапрог ей верно служит;
Там ступа с флудом
Говорит сама собой,
Там царь над C++ чахнет;
Там флуда дух... там флудом пахнет!
И там я был, и там флудил;
У моря видел дуб зелёный;
Под ним сидел, и Метапрог учёный
Свои мне сказки говорил.
anonymous
()
Ответ на: комментарий от deadplace

уже дописываем свою микроядерную ось, которая станет продолжением линюкса. Все на диаграммах. АМД согласилось выпускать процессор с микрокодом на диаграммах. и видеокарту.

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

Последний всплеск активности анонимусов в теме перед 20-й страницей? :)

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

Во-первых, какой профит лично я с них получу и какой профит от этого получит (со)общество?

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

Ну и в-третьих, не перекладывай с больной головы на здоровую.

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

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

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

Лишняя табуляция (а то и несколько) в каждой строке — это файлы исходников будут большого размера =) Я не привык к табуляции, а исходники никому не отдаю, оттого проблем от неформатированных исходников у меня нет.

тс по ссылке вообще шедеврален

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

Симки по паспортам? Это плохо. Если ты из тех, кто борется с превращением Украины в Россию и даже Китай (в плане тотальной слежки), то нам не помешает найти общий язык.

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

А для десктопа?

Я кажется написал, «здорового человека»

Там можно работать с указателями?

Зачем? У штуки есть хорошо обозначенная целевая аудитория, под которую и пилится продукт. А именно люди, которые не хотят впутываться в c/c++ для того, чтобы соорудить какой-то проект на ардуино.

В отличии от метапрога, который позиционирует себя как «универсальная система», но чорт, кому нужна эта универсальность? Ты хоть понимаешь, кто твоя ЦА?

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

Если ты из тех, кто борется с превращением Украины в Россию и даже Китай (в плане тотальной слежки), то нам не помешает найти общий язык.

только обязательно графический!

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

Ты хоть понимаешь, кто твоя ЦА?

Целевая аудитория начинается с меня. Иначе зачем я бы делал Метапрог?

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

У штуки есть хорошо обозначенная целевая аудитория, под которую и пилится продукт. А именно люди, которые не хотят впутываться в c/c++ для того, чтобы соорудить какой-то проект на ардуино

У Метапрога есть хорошо обозначенная аудитория, под которую и пилится продукт. А именно люди, которые не хотят впутываться в c/c++ для того, чтобы соорудить какой-то проект на ардуино, десктопное приложение, мобильное приложение, серверное приложение, ядро ОС (в том числе под х86 и ARM), компонент ядра, драйвер, веб-приложение и так далее.

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