LINUX.ORG.RU
Ответ на: комментарий от ossa

Вам религия запрещает изучить исходники прототипа Метапрога?

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

Слакварщики таким не занимаются!!!

% slackpkg info qt5 | grep REQUIRED
REQUIRED:  libinput,libxkbcommon

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

Алгоритм вычисления чисел Фибоначчи на Метапроге:

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

Для сравнения - тот же алгоритм на LabVIEW:

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

Без убогих get var и set var. Промежуточные переменные объявляются уже в сишной трансляции и если они лишние - компилятор оптимизирует.

Сишная трансляция:

https://pastebin.com/Z8rzvZpQ

Метапрог-схема находится в меню обучение - примеры - Фибоначчи.

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

Мне больше всего нравится обычный код на питоне, диаграмма на Ryven от него ушла недалеко и это скорее всего потому, что я эту диаграмму делал как «код на питоне».

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

Но, глядя на примеры диаграмм с сайта Ryven я понимаю, что они описывают.

Глядя на две твои схемы и код на Си - я не понимаю ничего.

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

Глядя на две твои схемы и код на Си - я не понимаю ничего.

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

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

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

А чтоб разобраться в схемах - надо смотреть их на Метапроге

В том числе и поэтому у Метапрога очень туманные перспективы.

vvn_black ★★★★★
()
Ответ на: комментарий от metaprog
  • Метапрог непонятен
  • А на Ryven ты уже перешел?

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

Вот, давайте, демагогию оставим в темах про Метапрог?

А у Ryven есть ненулевая вероятность превратиться в инструментарий, на основе которого появится «Node-RED на питоне».

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

Что ужасного? Элементов меньше чем у тебя, очень выразительно и понятно (видно что куда идет по проводкам). Для человека не знакомого с программированием должно быть в сотни раз проще, а для меня знакомого и с графикой и текстом, метапрог-вариант видится лучшим примерно во всем.

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

очень выразительно и понятно (видно что куда идет по проводкам)

Не согласен.

Для человека не знакомого с программированием должно быть в сотни раз проще

Вот бы спросить человека незнакомого с программированием?

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

Начать понимать можно за пару минут, метапрог проще Go. Самому по началу казалось что как то сложно для «простой визуальной среды».

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

И ты тоже аватврки включи, @paramon действительно выглядит как наброс, читать его коммент для заключения этого было вовсе не обязательно.

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

Что не так с аватаркой? Ее если что нарисовал Moderators для проекта.

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

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

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

Ну да, видел я этих экспертов, которые все депы вpipчывают и прям такие все в белом... А через месяцок уже все рассыпается.

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

Неужели ужаснее чем то что получилось у тебя на Ryven?

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

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

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

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

Левая часть цикла это начало, правая это конец, от конца к началу идет последовательность (переход). Данные которые поступили на блок «конец цикла» потом выйдут из блока «Начало цикла».

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

Ещё раз: что не так с аватаркой? Вы любитель ставить диагнозы по аватаркам, или что?

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

Что рассыпается? Админы обновили минорную версию питона и надо все зависимости переустанавливать? ой беда-то какая ;)

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

машинный код не предназначался для людей никогда

4.2, крякальщикам и прочим обратным разработчикам приходится разбираться и в нём.

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

Данные которые поступили на блок «конец цикла» потом выйдут из блока «Начало цикла».

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

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

И где связь между ними?

Я же написал, последовательность идет от конца цикла к началу, так они и связываются.

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

Если навести на блок все входы и выходы подпишутся, а по картинке трудно понимать метапрог, да. (если не знаешь что за что отвечает)

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

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

На заре компьютеров как раз-таки на машинных кодах и программировали. Это раз. Два - скажи, когда сишные трансляции прототипа Метапрога предназначались для чтения человеком, а не компилятором?

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

На заре компьютеров как раз-таки на машинных кодах и программировали

Сейчас 2020 год, если ты не в курсе. Это раз. Два - машинные коды всегда были ориентированы на машину, даже на заре, потому что ничего другого не было. Человек может подстроиться, а вот машина - нет. Когда машина смогла, машкоды остались для машины.

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

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

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

Ну в этом вся суть Метапрога: попрятали сложность диаграмм за динамическим интерфейсом, а по факту она не меньше, просто спрятана ;)

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

Там нет сложности, и она не растет, все элементы изначально доступны, разве что можно увеличить количество констант и регистров в цикле.

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

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

Вообще ни хрена не понятно ;)

  • Почему аж два порта называются б128 без толковой подписи? что они делают?
  • Что должно выходить из порта «повторение цикла»?
  • Пройдено без остановки — это как? Почему цикл должен останавливаться?

Альзо, «типованный» — это украинизм; на российском русском — «типизированный».

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

Речь о том, что важная для отображения информация попрятана и требует действий для просмотра ;) А у сабжа всё на виду. Не то чтобы метапроговский подход хуже, но бравировать «вон у нас диаграмма меньше» — это всё равно что китайский язык, где по трудноразличимому иероглифу-два на слово, сравнивать с неспеешнõм фиинскиим.

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

Почему аж два порта называются б128 без толковой подписи? что они делают?

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

Что должно выходить из порта «повторение цикла»?

Номер повторения: 0, 1, 2, 3... разве не понятно?

Пройдено без остановки — это как? Почему цикл должен останавливаться?

Если подать на блок остановки цикла логический тип, то его можно останавливать.

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

важная для отображения информация попрятана и требует действий для просмотра

Какая?

А у сабжа всё на виду

Секс с переменными, имена которым надо придумывать, запоминать и вспоминать - как же мне этого в Метапроге и Лабвью не хватает:)

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

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

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

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

А зачем?

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

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

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

Два регистра

Зачем они? Почему именно два? Почему нельзя мимо цикла передавать данные?

Номер повторения

Так и подпишите ;)

Если подать на блок остановки цикла логический тип, то его можно останавливать

И почему нельзя проверять это по тому же проводку, который идёт на порт продолжения? Зачем резервировать для этого ещё один порт на выходе?

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

Какая?

Та, которую Вы заскринили выше ;)

имена которым надо придумывать

Не надо, temp1 тоже сгодится ;) Всяко лучше, чем тот к_8209384079237_0_3829407238_шмар, который у Вас в выхлопе транслятора.

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

переменными, имена которым надо придумывать, запоминать и вспоминать - как же мне этого в Метапроге и Лабвью не хватает:)

Ну во-первых, да, не хватает. Больше полутора лет прототип делаешь, и всё никак не доделаешь. А во-вторых, если приходится имена приходится запоминать и вспоминать, ты просто не удосужился придумать адекватные имена.

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

А зачем?

Тебе уже десять раз объясняли, но ты не понимаешь.

Если ты считаешь

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

идиоты из NI посчитали

Из вас двоих, тебя и NI, идиоты не NI.

благодаря этому мне удалось

Троллейбус из буханки жпг

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

Зачем они? Почему именно два? Почему нельзя мимо цикла передавать данные?

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

Так и подпишите ;)

Сделано. В следующей версии будет.

И почему нельзя проверять это по тому же проводку, который идёт на порт продолжения?

Это просто для удобства, чтоб не создавать «константу выхода».

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

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

Та, которую Вы заскринили выше ;)

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

Не надо, temp1 тоже сгодится ;) Всяко лучше, чем тот к_8209384079237_0_3829407238_шмар, который у Вас в выхлопе транслятора.

Вот это вот:

metaprog_instance_0_6216595667301949441_8193391242450176001_4451831297947727873_2431819522335678465__variable_4923900066230190081

не бессмысленная абракадабра, а однозначный идентификатор, по которому однозначно идентифицируется место среди подфункций. Подфункция 0 (с которй началась трансляция), дальше блок подфункции с идентификатором 6216595667301949441 (уникальный на данной схеме), в ней блок 8193391242450176001 и так далее, а на блоке 4923900066230190081 уже объявление переменной. С этой строкой в буфере обмена можно щелкнуть колесом мыши на «холсте» функции, где начиналась трансляция - и будет показан путь до нужного блока.

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

Больше полутора лет прототип делаешь, и всё никак не доделаешь

Потому что делаю в свободное время далеко не тривиальный проект.

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

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

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