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)

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

«Мама он голый, он совсем голый».

О том что не сделано, а планируется сделать нужно говорить «планируется», а не «имеется».

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

Народ смеется ... «Что это означает? Народ наш темен и глуп ваше величество».

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

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

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

Этих НЕ НУЖНО вагон:
- manuals для разработки программ - НЕ НУЖЕН; - manuals, содержащий формат сохранения программ - НЕ НУЖЕН; - ...

«Чуден Днепр при тихой погоде».

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

«Молния бьет, но после грозового дождя так чудно цветет вишня»

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

anonymous
()
Ответ на: комментарий от anonymous
Сидит в кинотеатре бухой.
Толкает локтем соседа слева                  - «У тебя есть manuals о Metaprog?».
Затем толкает локтем соседа справа           - «У тебя есть manuals о Metaprog?».
Затем толкает локтем лысого в следующем ряду - «У тебя есть manuals о Metaprog?».
И так раз пять.
Зал не выдерживает и все хором кричат - «Лысый, ну разработай manuals о Metaprog».
anonymous
()
Ответ на: комментарий от metaprog

«Не всяка птаха долэтыть до середыны Днипра. А если долэтыть, то гэпнэтся».

anonymous
()
Ответ на: комментарий от anonymous
Выходит Макаров.
Макаров: Лабвью… (Макарова рвет. Он убегает.)
Выходит Серпухов.
Серпухов: Идея метапрога… (Его рвет, он убегает).
Выходит Курова.
Курова: Прототип… (Ее рвет, она убегает).
Выходит маленькая девочка.
Mаленькая девочка: — Папа просил передать вам всем, что театр обсуждение метапрога заканчивается. Нас всех тошнит.
anonymous
()
Ответ на: комментарий от metaprog

Ну вы же взрослый человек ...
Разницу то понимаете между «справка в программе» и manuals?

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

А папа маленькой девочки не модератор случаем?

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

Попревык к вам ЛОР ...

Опустеет без тебя ЛОР
Как нам несколько часов без тебя прожить
Так же падает в садах листва
И куда-то всё спешат такси

Только пусто на земле одной без тебя
А ты, ты летишь и тебе
Дарят звёзды свою нежность

Так же пусто было на земле
И когда летал Экзюпери
Так же падала листва в садах
И придумать не могла земля

Как прожить ей без него пока он летал, летал
И все звёзды ему
Отдавали свою нежность

Опустеет без тебя ЛОР
Если можешь, прилетай скорей
anonymous
()
Ответ на: комментарий от metaprog

Не думаю. Кого ни спроси — большинство скажет, что Identi-C удобнее и понятнее. К тому же он уже написан сам на себе и легко сам себя транслирует. Совместимость с Си-библиотеками, опять-таки, просто фантастическая.

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

Интересный пример. Позволяет избавиться зазнавшихся синьоров программистов и привлечь к работе простых операционистов.

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

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

А что может этот ПРОТОТИП? Факториал? Всё?

Дай мне полный список того что может С++, и я дам тебе такой же для ПРОТОТИПА.

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

кто-нибудь напишет куда более эффективную альтернативную реализацию

Обязательно на Rebol, а лучше на ClojureScript!!!

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

Дай мне полный список того что может С++, и я дам тебе такой же для ПРОТОТИПА.

Давай начнём с Chromium.

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

Жирный и мерзкий троллинг при полном попустительстве модераторов. Лучше бы Царь зажигал.

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

Вообще-то в Метапроге есть встроенная справка.

Формата .chm.

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

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

Круто. Метапрог состоит из двух частей: гуишной, которая рисует блоки и соединия, и транслятора, который эти блоки конвертирует в сишный код.

Гуишная часть полностью завязана на лабвью и должна быть полностью переписана на других технологиях.

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

По хорошему, все нужно выбросить и начать заново.

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

По хорошему, все нужно выбросить и начать заново.

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

Расслабься и наблюдай за шоу.

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

Во! Четвёртый пункт, главный для автора — Котечке тоже нужна читаемость.

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

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

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

С scratch metaprog нет смысла разрабатывать GUI.
Скорее всего он возьмет одно из имеющихся и попытается дополнить его controls а-ля LabView.
Вот не могу придумать задачу в которой эти contols были бы «уместны».

anonymous
()

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

Последнее подобное проишествие на хабрике:
JustCode — скоростной браузер для бюджетных компьютеров и планшетов на Windows
Что имеем там? У автора — рабочий софт, у «экспертов» — претензии и обидки. Особенно позабавила шизофрения
— (хомячье) Выложите исходный код!
— (автор) Нет
— (хомячье) А сообществе так принято! Ваш код ничего не стоит, ваш код дерьмо, вы ничего не понимаете в программировании... Скорее выложите!
— (автор) Нет. Такие контрибьюторы мне не нужны.
— (хомячье) Ах так, ну и не будем пользоваться, беееее (громко минусует)

Удачи твоему проекту. Пусть усе у тебя работает!

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

Ёкарный паровоз (не тот, под который Каренина бросилась), там и микроб в обсуждении засветился. Воистину, пути поехавших неисповедимы.

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

+1, ведь все знают что если у человека есть лаба на GitHub, то все остальные должны приседать перед ним 2 раза, и один раз говорить «Вот это советы, буду делать все как ты сказал!».

Если у сверхчеловека 8 лаб, на гитхабе, или 1 нормальный проект, а так же одна звезда, то перед ним обязаны приседать 2 раза те у кого есть 2 лабы, и 4 раза те у кого их нет, так же нужно постоянно нахваливать его советы и подсказки. Модераторы не могут их бить банить просто так.

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

Однократное посылание в жопу простить можно и наверное, нужно. Но поскольку у ТСа это на протяжении нескольких тем было стандартной практикой — таких ТСов можно и нужно одёргивать.

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

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

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

Не открывать код — полное право автора. Правда, когда автор с рассказом про этот не открытый код приходит на хабр, он выглядит как почтальон Печкин, «я принёс посылку для вашего мальчика, только я её вам не отдам». Ну хочет он выглядеть Печкиным, пусть выглядит.

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

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

Так что усилия «бабуси», выходит, были не напрасными, хе-хе-хе.

Ликсуся, отдай аккаунт человеку.

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

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

прям как ситуация с метанпрогом.

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

Просто не нужно меня провоцировать!21 Зачем же так пренебрегать логикой то... Я заметил только горы мусора от ликсуси, она что то полезное хоть сказала? Или может как то повлияла? Ну нет же, как можно это было где то увидеть, ну не понимаю, совсем.

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

Сейчас, кстати, уже почти нету, ТС явно поумнел. А в первых темах он постоянно агрился то на текстовые языки, то на ООП, то ещё на что-то.

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