LINUX.ORG.RU

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

 , , ,


0

3

Интерактивная обучалка

https://streamable.com/dnhoy

Интерактивная инструкция по сборке факториала

https://streamable.com/h8dto

Меню из функций

Наконец допилил меню из функций. Программирование на Метапроге будет выглядеть примерно так:

https://streamable.com/xlprt

Кроме меню, давние читатели заметят сделанное по многочисленным просьбам увеличение размера шрифта на элементах блок-диагарммы и подсказках с 10 до 12.

Сама функция, считающая факториал, выглядит так:

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

Полученный код корректно считает факториал 11 (10+1, как на схеме):

https://pastebin.com/pdbhKcey

Переключатель (он же switch)

https://streamable.com/vgn3w

https://pastebin.com/tuB9X00u

Чат-клиент

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

Версия 1.

http://e2tilsgo5s44hqmlwb4epwrjnh7ynvsckj2tl5duwdqbxg67chqpelad.onion/file/de...

Требования

1. Windows начиная с ХР с кириллической локализацией (иначе будут проблемы с кодировкой символов).

2. Для запуска скомпилированного ехе-файла бесплатный рантайм (32-битный):

https://download.ni.com/support/softlib/labview/labview_runtime/2013 SP1/Wind...

3. Для просмотра и редактирования диаграмм с кодом чат-клиента - LabVIEW начиная с 2013. Как кто его достанет - личное дело каждого, если жалко денег - на торрентах оно есть.

4. Tor Browser или Tor для подключения к серверу:

https://www.torproject.org/

Сам чат-клиент лицензирован под GNU GPL v3, подробности - по кнопке «Про программу».

FAQ

0. Где отсутствующие примеры и пункты FAQ? Как вообще читать эти темы?

Чего нет в этой части - есть в прошлых. Для того, чтобы понять идею Метарпога, не обязательно читать тысячи комментариев из всех тем. Необходимый минимум собран в заголовках тем. Читайте заголовки и ссылки в них. Кстати, обновляется только заголовок последней темы, если эта тема уже не последняя - она не обновляется. В более новых темах пункты FAQ могут обновляться и в случае расхождения действительна более новая версия.

11. Как выглядит факториал в графическом представлении?

https://i.postimg.cc/ZRzpHhnv/image.png (уже на Метапроге, а не Лабвью).

Прошлые темы:

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

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

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

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

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

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

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

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



Последнее исправление: metaprog (всего исправлений: 8)

Ты считать не умеешь? Это десятая часть, а не девятая.

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

графическое программирование
нинужно

Да ладно. Есть области где оно вполне. Обучение детей одна их таких. ЛабВью тоже делался для определенных целей. Это потом макаки на ней начали писать ВСЁ, потому что больше не осилили. Ровно как и с пхп. На ПХП даже десктопные аппликухи пишут и проповедуют, что это круто и вообще все так должны делать.

Вон i-rinat Что замутил.

https://streamable.com/f9ylx Вполне себе может стать отличнвм инструментом где-то в обучении. Так шта ждем репозиторий.

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

Я, кстати, в дислексию не верю.

Пришлось как-то общаться с таким человеком по переписке. Слова почти целиком состоящие из ошибок и полное отсутствие пунктуации. Но главная черта — медлительность. Он даже два слова «не знаю» мог печатать больше минуты, пытаясь вспомнить, где какая буква на клавиатуре.

В общем, настоящий дислексик без посторонней помощи в принципе неспособен набрать длинный текст.

И с ТС, подозреваю, то же самое. Ну вот убедил он себя в сложности текстовых ЯП и всё. А нужно всего-то навсего приложить некоторое количество усилий, чтобы осмыслить и осилить непривычные для себя концепции и приёмы работы. Чертить рисуночки весело и прикольно, вот он из скорлупы и не вылезает. Даже для того, чтобы доказать окружающим, что эти рисуночки действительно чего-то стоят. Держался бы за графическое программирование серьёзно — давно бы уже изучил «язык врага».

Он либо тролль, вероятность чего составляет 98%, либо научился «программировать» на дошкольных роботах типа Lego Mindstorms, а затем не смог осилить Python или Java и произошла дикая фрустрация.

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

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

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

Лень, лень правит миром.

скорее страхи

Одно другому не мешает, а великолепно дополняет (во времена моего детства была аудиосказка «Незваные гости» с минимумом текста и песнями «Лень», «Страх» и «Дураки»).

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

Он либо тролль, вероятность чего составляет 98%, либо научился «программировать» на дошкольных роботах типа Lego Mindstorms, а затем не смог осилить Python или Java и произошла дикая фрустрация.

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

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

Да ладно. Есть области где оно вполне. Обучение детей одна их таких. ЛабВью тоже делался для определенных целей.

так то вменяемые* инструменты/концепции

я писал про

графическое программирование

в «концепции» ТС

  • для искоренить «текствое» программирование
  • отрицание и закапывание всего предыдущего опыта в разработке ПО (от имен переменных до ООП и других «ненужных абстакций»)
  • без документации — «все же видно» и поэтому, должно быть и понятно
  • «переписывание» всего и вся на диаграммы — с одной стороны кто(?) и когда(?!) будет этим заниматься. а главное смысла в этом нет. вот если выбора не будет, тогда да
  • и т.д.

Кстати, единственное полезное применение metaprog-подобной среды как мне кажется «хранение» алгоритмов в «графическом виде». Если прикрутить (ТМ) к этому трансляторы в различные ЯП, то даже польза может получиться...

Скажем завтра* придумают SUperPUperTextPro, а алгоритм хеширования видеовизуального ряда по спецификации iSO* с нуля требует пару месяцев дней часов для реализации в виде библиотеки даже на SUperPUperTextPro. А тут такой metaprog ... клац-клац ... и готово (делов-то транслятор в SUperPUperTextPro прикрутить :)

Если серьёзно, то я не вижу зачем этот метапрог нужен кому-либо, кроме ТС.

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

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

Хотя за последний месяц пожирание памяти сократилось раз в 5 - я нашел функцию «Request deallocation» и рекурсивные функции стали освобождать память после себя. Это, кстати, одна из причин почему я таки решил открыть код лабвьюшного прототипа.

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

<irony>

так тебе 2-х гигов для победы дела мировой революции metaprog-а жалко... контра небось в тексте кодишь...

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

Ожирение произошло из-за отсутствия в лабвью функций для графического ускорения и, следовательно, необходимости держать в ОЗУ

АААААА, какое же ты дно! Ты даже тут рассуждаешь исходя из своего манямирка, который никакого отношения к реальности не имеет.

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

Обучение детей?! Лабвью применяется в ЦЕРНе:

В ЦЕРНе операторы, которые управляют девайсами ускорителя при помощи LabVIEW, даже не подозревают что в начале сессии клиент шлет прошитой железяке запрос «PREVED» и ожидает ответа. Сервак обучен отвечать «MEDVED». Только после этого открывается сессия. Совсем забыл пофиксить эту фичу пока работал, а теперь уволился, видимо так и будет до тех пор пока коллайдер не закроется.

https://lurkmore.to/_/1565#mws_1iK8VMm

И Институте Крионики:

Летом 2005 Институт Крионики получил несколько изготовленных на заказ, управляемых компьютером камер охлаждения с программным обеспечением от LabVIEW, которые позволили контролировать охлаждение до температуры ниже, чем −192 °C (-313 °F). Это оборудование было необходимо для эффективного применения витрификации, потому что охлаждение должно происходить с такой скоростью, с какой это необходимо для равномерного отвердевания смеси витрификации (температура отвердевания −125 °C), но после преодоления этой температуры охлаждение должно быть очень медленным, чтобы уменьшить криоповреждения вследствие теплового напряжения.

https://ru.wikipedia.org/wiki/Институт_Крионики

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

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

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

Обучение детей?! Лабвью применяется в ЦЕРНе

и шо? вот на сишечке ядро линукса пишется, так что теперь helloword нельзя на сишечке напейсать?!

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

Ага, а ещё есть миллион примеров, где лабвью НЕ применяется и всем норм (кроме неосилянтов, которые и так ненужны). Твои цитатки показывают, что области применения КРАЙНЕ специфичны, да и наверняка этот код ваяли не программисты, а сотрудники НИИ, для которых это было скорее дополнительной, но необходимой деятельностью.

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

Лабвью применяется в ЦЕРНе

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

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

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

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

Программам, написанным в тексте, доверяют не менее чем управление самолётами и ракетами! Я угораю с метапрога, рассказывающего мне тут, что программирование в тексте - для макак.

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

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

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

Ты свою цитатку хоть читал? Labview клиент для сервера. Где там «сервер на labview сделан»?

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

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

И они, не будучи профессионалньыми программистами, могут благодаря графическому программированию делать софт по управлению адронным коллайдером. Не читая талмудов Страуструппа, не читая даже K&R!

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

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

Ровно то же самое можно сказать почти о всех программистах кроме сишников и асмщиков. Уж сколько бекенда лежит под джавой, джаваскриптом и даже плюсами...

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

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

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

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

anonymous
()

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

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

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

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

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

ктоб про код п..дел, только не ты макака

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

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

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

тебе никто ничего показывать не должен

Хочешь от меня чего-то - показывай как делать или иди в жопу.

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

или иди в жопу.

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

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

Не читая талмудов Страуструппа, не читая даже K&R!

Откуда ты знаешь, кто что там прочитал? Какого чёрта решаешь за других? Подозреваю, что люди, работающие с БАК, прочитали хренову тучу узкоспециализированной литературы из предметной области и имеют достаточно хорошее высшее техническое образование со знанием матана и прочих сложных греческих словец. Если бы, упаси сатана, ты там пытался что-то накалякать, планета бы уже взорвалась. Человек разумный может освоить любой инструмент, и выбирает подходящий ему для конкретной задачи, временных рамок, предметной области и прочих требований. И если надо, готовы осиливать документацию и шевелить мозгом. А безмозглые макаки типа тебя так и будут орать что все вокруг тупые и ничего нинужно кроме говна и палок, которые они осилили.

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

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

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

В том-то и проблема, что ТС не собирается программировать или делать свой Метапрог, он собирается «менять мир». А мир таких рано или поздно ставит на место. Это всего лишь вопрос времени и потраченных усилий. Потраченных напрасно, разумеется.

А при метапроге всё будет зашибись
Он наступит скоро — надо только подождать
Там всё будет в блоках, там всё будет в кайф
Там наверное вощще не надо будет компилять

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

И они, не будучи профессионалньыми программистами, могут благодаря графическому программированию делать софт по управлению адронным коллайдером. Не читая талмудов Страуструппа, не читая даже K&R!

Программирование и «интерактивный осциллограф» – это нечто разное.

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

Там наверное вощще не надо будет компилять

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

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

На Лабвью делают не только интерфейсы (условный «осциллограф»), но и непосредственно контроль техпроцессов.

Летом 2005 Институт Крионики получил несколько изготовленных на заказ, управляемых компьютером камер охлаждения с программным обеспечением от LabVIEW, которые позволили контролировать охлаждение до температуры ниже, чем −192 °C (-313 °F). Это оборудование было необходимо для эффективного применения витрификации, потому что охлаждение должно происходить с такой скоростью, с какой это необходимо для равномерного отвердевания смеси витрификации (температура отвердевания −125 °C), но после преодоления этой температуры охлаждение должно быть очень медленным, чтобы уменьшить криоповреждения вследствие теплового напряжения.

https://ru.wikipedia.org/wiki/Институт_Крионики

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

Ну то есть грубо говоря, что то такое:


//Псевдокод
switch (c) { /*c - какой-то чанк памяти, допустим, что свич умеет работать с этим типом данных*/
case FOR_LOOP: 
    translate_to_for_loop();
    break;
.....
}

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

Обращайся в Институт Крионики или к тем, у кого они заказали камеры охлаждения.

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

Около того, только в диагараммах. Часто более сложных, чем тупо вызов подфункции.

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

Кстати, в Лабвью енумы беззнаковые, но могут быть разной разрядности.

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

ЧИТД. Заказли узкоспециализированные девайсы с которыми шли узкоспециализированные либы для лабвью. Им дали кубики, они собрали то, что им нужно. Только вот они знают дофига из этой области. А ты дно. Причем дно везде, как в лабвью, так и в Си.

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