LINUX.ORG.RU

Метапрог-прототип 14 + условные схождения

 , ,


1

2

Следующая версия:

Метапрог-прототип 15 + модернизация СУВТ

Скачать:

https://www66.zippyshare.com/v/xI27OTji/file.html

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

Предыдущая версия:

Метапрог-прототип 13 + LOR Browser



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

это социальная сеть

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

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

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

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

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

то есть это довольно надуманное название для некоторого всем давно известного положения дел. И смело можно заменить «социальная сеть» на «круг знакомых». Кажется так и поступили разработчики славянского ПО под названием «Мой круг». Возвращаясь к гитхабу, это круг знакомых и не очень знакомых программистов и не очень программистов, общающихся как по средствам обычного общения на различных языках, так и по средствам языков программирования? Как кстати метапрог отнесся к тому факту, что Java теперь лучший язык во вселенной, а котечка отныне кофеечка? Будет ли теперь метапрог генерировать байткод для jvm?

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

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

Будет ли теперь метапрог генерировать байткод для jvm?

Нет, но в нем будут стабильные библиотеки.

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

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

А метапрог уже определился как именно он собирается «рисовать» метапрог на метапроге в виду отсутствия присутствия какого-либо кода отрисовки графических примитивов на самом метапроге. Я вот так понимаю например вы с libsdl больше иметь дел не хотите, или хотите?

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

А метапрог уже определился как именно он собирается «рисовать» метапрог на метапроге в виду отсутствия присутствия какого-либо когда отрисовки графических примитивов на самом метапроге. Я вот так понимаю например вы с libsdl больше иметь дел не хотите, или хотите?

А Nuklear куда делся? Ну и от SDL2 отказываться полностью не нужно думаю, а вот их Renderer использовать не будем. Но если SDL2 начнет ломаться в самых базовых местах, всегда можно заменить его на GLFW.

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

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

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

никуда не делся, просто он без своих рендеров же бесполезен

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

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

социальная сеть. Как GitHub

GitHub родом из конца 00-х — времён, когда баззворд «социальная сеть» был модным и его лепили ко всему подряд. Что там GitHub, Нам даже форум встречался, который себя соцсетью обзывает!

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

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

не знаю

Понятно. У @andreymal и @commagray — и то аргументации больше, хоть педивикией пытались пруфать ;-)

Есть понятие «социальная сеть» из социологии: граф, в узлах которого люди, а рёбра — связи между ними. Штука настолько абстрактная, что натянуть её можно в принципе на что угодно, что позволяет пересечься двум и более людям, в том числе без их участия (программы для ведения генеалогии или БД сотрудников, например).

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

Впрочем, несколько более-менее чётких критериев таки можем выделить, это: 1) замахивание на полную замену интернетов путём предоставления разнообразной функциональности; 2) фокусировка на профилях пользователей или высираемом определёнными пользователями контенте, вместо обезличенной тематики; 3) стимулирование выпячивать напоказ личную жизнь и в особенности оффлайновые связи; 4) фокусировка на примитивных способах коммуникации. Остальное настолько плавает, что ну его нахрен.

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

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

Как-то так, по лабвью на лабах тоже подобные вещи делают. Но аналог Лабвью на Лабвью уже тянет как минимум на дипломную:)

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

Но аналог Лабвью на Лабвью уже тянет как минимум на дипломную:)

Ты же еще не написал метапрогу на метапроге, а уже хвастаешься.

И не, не тянет, в качестве курсовой пишут полноценный компилятор, а не просто транслятор в Си. И тратят на это куда меньше времени, чем ты.

cluge
()
Последнее исправление: cluge (всего исправлений: 2)
Ответ на: комментарий от stasolog

Однако так никто простейший антиметапрог и не написал.

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

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

Ни один из них и близко не первометапрог.

Угу, метапрог в метапроге целый год делал банальный «if … else …», а Ринат за неделю это запилил.

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

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

Ну тут проблема в логике, потому что антиметапрог это как раз обычный транслятор в С, при этом как раз таки без графического ввода, только тогда он может быть «анти». Уместнее было бы называть то, что вы называете «антиметапрог» - альтернативной реализацией метапрога, или если быть более честным, просто альтернативной реализацией транслятора с графическим методом ввода, потому что сама концепция которую пытается реализовать ТС по большей части является концепцией лабвью, что он придумал сам не пытаясь мимикрировать под лабвью? Я просто ни с тем ни с тем не знаком особо, было бы интересно узнать что уже сейчас есть в метапроге такого чего нет в лабвью? Или пока не стоит такой задачи как делать «лучший лабвью» и нужно сделать хотя бы кальку с него?

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

Однако так никто простейший антиметапрог и не написал.

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

К примеру, совершенно необязательно стремиться сразу построить «метапрог на метапроге» или «метапрог на другой визуальной среде». Первые версии можно сделать на чём-то традиционном. Добиться, чтобы облик языка устаканился, форматы файлов ушатались.

Потом сделать ход конём — написать транслятор из текста в диаграммы. Причём постараться его сделать не таким, как сейчас транслятор из прототипа метапрога в Си, а чтобы наоборот, результирующие диаграммы были читаемы.

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

И по-видимому, ближе всех к «альтерметапрогу» сейчас стоит пресловутый MyOpenLab. Бери и допиливай. Но почему-то никому не интересно.

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

И по-видимому, ближе всех к «альтерметапрогу» сейчас стоит пресловутый MyOpenLab. Бери и допиливай. Но почему-то никому не интересно.

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

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

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

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

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

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

Ну тут проблема в логике

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

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

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

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

Я бы предпочёл говорить не про «антиметапрог»

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

И по-видимому, ближе всех к «альтерметапрогу» сейчас стоит пресловутый MyOpenLab. Бери и допиливай. Но почему-то никому не интересно.

Ближе всех к альтерметапрогу сейчас сварог наверное все же.

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

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

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

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

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

Ты как бы просишь доселе не виданного по необучаемости дворника и жирного троля вести настолько тонкую игру?

Мне кажется план капкан закончится на решении квадратного уравнения или ещё раньше.

В третьих, всегда можно взять и форкнуть.

Для этого нужно выучить 3 команды в git, такие титанические усилия, метапрог пока не решился на них.

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

Да не то, чтобы прошу — предлагаю. Как один из вариантов побыстрее выбраться из капкана проприетарной LabVIEW.

Для этого нужно выучить 3 команды в git

ЕМНИП, там sourceforge и svn. Но результат форка, да, никто не запрещает положить хоть в git, хоть в hg.

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

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

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

Да не то, чтобы прошу — предлагаю. Как один из вариантов побыстрее выбраться из капкана проприетарной LabVIEW.

Она ему нравится и полностью его устраивает.

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

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

Каких таких форумах?

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

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

Но мой дорогой амахацкер, ты копай поглубже, пока как то не вяжется.

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

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

Нет, и нет. Хотя это была лучшая среда визуального программирования для создания метапрога. Но о недостатках LabView ОП много раз писал.

Все твои грибо-фантазии были бы уместны

Нет у меня никаких фантазий, чистая правда.

ты копай поглубже

Думаешь ты настолько интересен? Я пару месяцев назад боту скормил твой ник, на этом все копания закончились.

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

Но так вы же тоже не работаете с лабвью, откуда вы знаете? Вроде жгутиковая концепция что тут что там, вариант, но я не знаю как это реализовано в лабвью, никто не знает кроме NI. Последовательности? Это про массив? Но он же так же работает или по крайней мере очень похоже и в лабвью я даже вроде скидывал сюда выдержку из книги по лабвью в которой немного пояснялось о том чем массив лабвью отличается от обычного массива С и это по поведению тоже самое, только там скорее всего используется какая-то структура данных для внутреннего представления что-то похожее на лист исходя из текста описывающего его поведение. Меню, о каком именно меню идет речь? Если о том, про которое постоянно говорит ТС что мол «Легко найти нужный компонент в меню», то это же просто вариация на тему контролов, это мог бы быть и древовидный список с драгндропом или панелька компонентов, меню как контрол само по себе не ноу-хау если речь конечно идет о таком виде меню, проясните это. Их сложно не сравнивать т.к. онтопик является попыткой сделать бесплатный лабвью о чем ТС неоднократно говорил.

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

Нет, и нет. Хотя это была лучшая среда визуального программирования для создания метапрога. Но о недостатках LabView ОП много раз писал.

Всем уже не интересно что писал ОП.Он писал много чего, на каждый его комментарий можно найти противоположный от него же самого.

Вопрос в том, что он сделал ? Отказался, нет. Лучшая среда ГП или единственная им осиленная, вопрос закрытый.

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

Дальше будет песенка, про то что всё говно, пришлось выбирать из него? Собственно это ничего не меняет.

Нет у меня никаких фантазий, чистая правда.

Конечно! Сейчас только запущу твой святой AppImage, ой а его нет?

Думаешь ты настолько интересен? Я пару месяцев назад боту скормил твой ник, на этом все копания закончились.

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

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

Но так вы же тоже не работаете с лабвью, откуда вы знаете?

Немного тягал проводки в нем, основные вещи знаю и понимаю.

Вроде жгутиковая концепция что тут что там

В LabView она не чисто жгутиковая как по мне...

Последовательности?

Это спец-провода для указания в какой последовательности должна исполнятся программа. Используется так же в условиях, циклах.В свароге я сделал последовательность вообще отдельным типом, в метапроге тоже появится. Чем то похоже на goto, но не goto.

Меню, о каком именно меню идет речь?

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

Еще в метапроге есть цикл по структуре, СУВТ, СУВТ v2, нормальное использование С-библиотек, шаблоны как в C++.

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

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

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

То есть «последовательности» вы решаете вопрос ветвления? Это и есть те самые «условные схождения» или же нет? На сколько я помню в лабвью есть отдельные блоки разветвления по условию, «последовательность» это именно «жгутик» но с условием/адресатом назначения внутри себя?

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

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

То есть «последовательности» вы решаете вопрос ветвления?

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

«последовательность» это именно «жгутик» но с условием/адресатом назначения внутри себя

Примерно так, но совсем не так, они сильно умнее.

Анонс про циклы по структурам я помню

Так это же круто, можно взять одну функцию, и использовать ее для перевода любой структуры в json. Через цикл по структуре проходимся по полями, в том числе и рекурсивно, и выдаем текст.

А цикл по массиву как работате, на «последовательностях»?

Последовательности там задают тело цикла.

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

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

Примерно так, но совсем не так, они сильно умнее.

Конечно это мало описывает применение.

Так это же круто, можно взять одну функцию, и использовать ее для перевода любой структуры в json. Через цикл по структуре проходимся по полями, в том числе и рекурсивно, и выдаем текст.

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

Последовательности там задают тело цикла.

т.е. для структур это какой-то свой вид организации цикла, а для массивов это «последовательности»? Ну ок, а что является «меткой» в таком goto, как организуется цикл, как «последовательность» «понимает» отсель и досель есть тело цикла?

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

Массив вообще можно циклом обходить?

Можно.

почему это не тот же цикл что и для массива?

Цикл тот же. И тот же цикл умеет цикл по range(), просто подаешь на вход число и все.

т.е. для структур это какой-то свой вид организации цикла

Лучше считай что последовательность это лямбда... Короче это тупо зеленый проводок, проводишь от А до Б. И сначала исполнится А потом Б. Проводишь от IF к А. Тогда при IF(true) исполнится A.

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

хм тогда зачем было анонсировать «цикл по структурам» если это тот же цикл? И вообще почему создается впечатление что изначально цикл не мог обходить структуры или он не мог?

что может выступать А и Б?

Короче это тупо зеленый проводок, проводишь от А до Б. И сначала исполнится А потом Б.

это не очень похоже на лямбду, но такое можно реализовать через нее. Ну ок, это чем-то и на goto похоже, точнее через него тоже можно организовать подобный переход от А к Б.

Проводишь от IF к А. Тогда при IF(true) исполнится A.

IF представляет из себя какой-то блок, как и в лабвью? Правильно ли я понимаю что эта «последовательность» необходима для работы с этим IF, или он может и без нее дальше пустить поток выполнения программы к следующему блоку?

Тогда при IF(true) исполнится A.

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

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

хм тогда зачем было анонсировать «цикл по структурам» если это тот же цикл?

У цикла появилось дополнительное поведение.

что может выступать А и Б?

Два вызова функции.

IF представляет из себя какой-то блок, как и в лабвью?

Да.

Правильно ли я понимаю что эта «последовательность» необходима для работы с этим IF

Да, иначе никак не укажешь куда проследовать по IF.

А если false?

У IF есть «два выхода» зеленый и красный, последовательность от красного к функции это будет указание else. От зеленого думаю и так понятно что будет.

Возможно ли передать на вход такому IF «выражение» вычисляющее такое true или false

Ну IF принимает boolean тип.

и каково поведение такого IF если в результата этого вычисления получено не будет (произойдет ошибка вычисления)?

Ошибка компиляции?

Что из себя вообще представляет true и false

Константы наверное.

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

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

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

У цикла появилось дополнительное поведение.

То есть реализация этого цикла будет меняться каждый раз когда будут добавляться другие «контейнеры»?

Два вызова функции.

в метапроге есть функции? Или о чем речь?

Да, иначе никак не укажешь куда проследовать по IF. У IF есть «два выхода» зеленый и красный, последовательность от красного к функции это будет указание else. От зеленого думаю и так понятно что будет.

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

Ну IF принимает boolean тип.

Не совсем понятно по функциям, но если они все же есть, можно ли функцию возвращающую этот булеан туда запихнуть в условие?

Ошибка компиляции?

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

Константы наверное.

Надеюсь Метапрог даст более точное пояснение.

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

То есть реализация этого цикла будет меняться каждый раз когда будут добавляться другие «контейнеры»?

Ну в С коде да.

в метапроге есть функции? Или о чем речь?

Ну поддиаграммы == функции.

А лабвью разве работает не аналогично?

Нет.

Там вроде тоже на выходы проводки цеплялись в зависимости от результата условия, кстати тоже зеленые, так в чем разница?

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

Не совсем понятно по функциям, но если они все же есть, можно ли функцию возвращающую этот булеан туда запихнуть в условие?

Ну да, IF принимает тип boolean, просто подводишь от выхода блока «=» проводок к IF.

Трансляции или же все же выполнения

Трансляции.

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

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

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

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

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

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

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

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

интересно как бы хаскель выглядел в графике

Возможно хоть тогда бы он стал для меня понятен...

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

Так надо же не шутку, а полноценную альтернативу, хотя бы уровня MyOpenLab! А их нет! Поигрались с хэлловорлдами и забросили. Кстати, кроме Нас, @refborce и @i-rinat кто-то ещё пытались делать?

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

Меню это прорыв!!! В LabView менее удобно на мой взгляд, а как вообще можно удобнее сделать чем текущее меню то?

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

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

В МЕРТВОПРОГе, между прочим, тоже!

Как это Мы умудрились переизобрести Метапрог, не тыкав толком Метапрог?

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

у мертвопрога что-то похожее я так понял вырисовывалось, как граф со связями

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

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

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

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

Ну связь будет, будет! Но где ему еще висеть? В отдельном окне? Тогда нужно будет половину экрана отдавать на меню, либо постоянно альт-табаться.

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

где ему еще висеть

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

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

У тебя возникло множество вопросов. Многие из них отпали б, если б ты запустил и потыкал прототип Метапрога (уже есть официально бесплатная Лабвью - налетай LabVIEW раздают (Community Edition)). Но все же не поленюсь ответить (если что случайно проскипаю - не постесняйся повторить вопросы).

То есть «последовательности» вы решаете вопрос ветвления?

И ветвление по ифу, и последовательность исполнения.

На сколько я помню в лабвью есть отдельные блоки разветвления по условию

Для ветвления в Лабвью Case Structure этажерка из диаграмм-кейсов. Когда назрела необходимость делать условия (ветвления) на Метапроге, мне было лень делать подсхемы на метапрог-схемах и я решил делать ветвление через жесткие последовательности от зеленого и красного квадратиков. Вот сравнение:

https://i.postimg.cc/cLsq8SXh/image.png

Анонс про циклы по структурам я помню, но до сих пор не понимаю смысла в изготовлении отдельного вида цикла под определенную «языковую» сущность

Цикл по числу транслируется в цикл for по числу. Цикл по массиву - тот же цикл по числу, но еще и со взятием элемента массива по текущему индексу, по сути упрощение схемы чтоб не брать длину массива и не трахаться с арифметикой указателя на массив.

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

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

Массив вообще можно циклом обходить?

Да.

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

Блоки для типованного цикла одинаковые, но они по-разному реагируют на подключенные к ним данные:

https://i.postimg.cc/d35XyZfR/image.png

Последовательность в цикле от блока выхода к блоку входа (да-да, от ВЫХОДА к ВХОДУ), что образует цикл в Метапроге. В Лабвью цикл - это вообще поддиаграмма. Мне было лень делать поддиагарммы в Метапроге, да и те прямоугольники в Лабвью порой отжирают кучу пустого пространства. Сравнение (лабвьюшные циклы справа):

https://i.postimg.cc/QCXT9FLq/image.png

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

По условиям уже вроде ответил (2-3 сообщения выше).

Что из себя вообще представляет true и false как они определены, это какие-то константы определенного типа, это какое-то перечисление из возможных двух вариантов?

«Да» и «нет» представлены в виде типа «логический». Пока что он транслируются в байт (8-битное число). Если константа «нет» задается 0, есди «да» - 1 (если не ошибаюсь, уже забыл). К логическому типу можно подключать и числовые, тогда 0 будет «нет», остальное - «да», как в Си.

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

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

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

То есть реализация этого цикла будет меняться каждый раз когда будут добавляться другие «контейнеры»?

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

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

У тебя возникло множество вопросов. Многие из них отпали б, если б ты запустил и потыкал прототип Метапрога (уже есть официально бесплатная Лабвью - налетай LabVIEW раздают (Community Edition)). Но все же не поленюсь ответить (если что случайно проскипаю - не постесняйся повторить вопросы).

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

Уже протестировали это community edition, оно под wine запускается нормально или есть какие-то подводные камни, какие зависимости ему нужны кроме очевидного рантайма VC?

А и да, что там принципиально прибивает метапрог к старой версии LV? Это точно нельзя фиксануть чтобы оно собралось этой СE версией?

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

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

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

Уже протестировали это community edition, оно под wine запускается нормально или есть какие-то подводные камни, какие зависимости ему нужны кроме очевидного рантайма VC?

Я его не тестировал. Виндовское Лабвью под вайном вообще плохо идет (хотя если кому не лень - можно протестить). Рекомендую ставить под виндой.

А и да, что там принципиально прибивает метапрог к старой версии LV? Это точно нельзя фиксануть чтобы оно собралось этой СE версией?

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

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