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

Есть примеры, так сказать туториалы, которые демонстрируют неоспоримое преимущество языка визуального программирования?

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

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

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

Про все, что в них есть - забудьте.
В этом и состоит «профит» metaprog.

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

Вообщем - «В голове моей бигуди, а на большее ты не рассчитывай».

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

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

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

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

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

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

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

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

Ты только что сам подтвердил, что первым скатился до посыланий и оскорблений. Что и требовалось доказать. Остальное ваше с котечкой враньё рассыпается точно так же.

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

Жаль прогнозов не подвезли, тудушечку, там, тасклист, ремэйн, всё такое.

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

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

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

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

Можешь показать пример создания и работы программы на метапроге?

Смотри видео и скрины:

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

Планирую выпустить новые видео и сделать пост на хабре.

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

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

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

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

Значит ты этого заслужил. Объяснить как или сам догадаешься?

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

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

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

Не парься. Ясно же, что ты будешь в очередной раз крутиться, чтобы хоть как-то изобразить свою правоту. Но это бесполезно. Факт в том, что ты обосрался. Раньше говорили, мол я первым начал оскорблять, а оказалось, что нет. Вот незадача-то какая! И я думаю, многие тут со мной согласятся, что призыв не помогать хамоватому наглому юзернейму, чтобы он начал учиться сам - не оскорбление, а очень даже действие, направленное ему на благо. Так сказать, воспитательный момент.

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

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

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

Начинай уже про сверхчеловеков как redforcer, а то скушно.

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

Планирую сделать пост на хабре.

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

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

Да, а «метапрог» по-украински будет «дупапрог»

anonymous
()

Парень, только продежись до апреля! Хотя бы на один день этот сайт переименуют в METAPROG.ORG.RU!

anonymous
()
Ответ на: комментарий от anonymous
Я встретил Вас, и всё былое            Я зустрiв Вас, ii все минуле
В отжившем сердце ожило.               У вiджиле серце ожило.      
Я вспомнил время золотое,              Я згадав час золоте,        
И сердцу стало так тепло.              I серцю стало так тепло.    
Я вспомнил время золотое,              Я згадав час золоте,        
И сердцу стало так тепло.              I серцю стало так тепло.    
anonymous
()
Ответ на: комментарий от metaprog

Ждём! Хотя вроде сезон обострений непризнанных гениев там уже прошёл.

anonymous
()
Ответ на: комментарий от anonymous
Летят утки,  летят утки ... и три гуся   Летять качки, летять качки ... i три гуски
anonymous
()

Навскидку несколько вопросов как использовать:
- библиотечные функции?
- работу с СУБД?
- xml, ...?
- ...

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

Да может быть метапрог уже лучше чем C/C++, ... ни кто не возражает.
Где документ который поможет ответить и на другие вопросы?
Или все на ощупь?

anonymous
()

Анонимус всё ещё за бан, в этот раз за нарушение лицензии (ну и за прошлые заслуги должно накопиться)

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

Где документ который поможет ответить и на другие вопросы?

Готовится.

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

Castxml

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

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

Вот идея для игроделов.

В 100 уровнях нужно понять, что за язык программирования и в сотом
уровне написать на нем программу вывода сообщения «Идите все в жопу».

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

А вот любопытно как будет выглядеть на метапрог программа, которая берет данные из СУБД и формирует отчет.
Нам ведь обещают, что все будет просто, ...
Или нас «разводят»?

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

Нашел что спросить. СУБД. Ты у автора спроси за политику обработки ошибок. СУБД придумал тоже.

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

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

anonymous
()

На всякий случай напомню, что нам обещали 4 месяца назад:

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

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

:)

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

Просьба модераторов не удалять предыдущие посты.
Ведь 99% постов - разборки, ...
Все равно ведь ТС ни кого не слушает и на мнение других ему ...
Ну так пусть хоть форумчане «повеселятся».

anonymous
()

Для тех, кто пришёл в эту тему и не читал 9 прелюдий: https://gitlab.com/balsoft/metaprog-quotes

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

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

Так это надо раньше регать. А то домен не успеет запропагейтиться.

rebforce
()

GNU GPL v3

В этом вся беда. Вот по этому не взлетело до сих пор. Срочно менять на более либеральную

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

Тышто! Проклятые копирасты украдут и будут пользовать в своих целях и грести бабло, а автору придется продаться в рабство за краюху хлеба.

anonymous
()

только отенять кнопкой Esc не надо - будет баг
корневого типа
знаковые, беззнаковые и бробные
путем из вытягивания на структуру
Достум
типованный цикл
могут принимать несколько типов
но тут еще возможны баги

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