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

И конечно ядро переписанное на Metaprog Нивчем не уступит поделке Линукса.

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

Там же в начале приведённой страницы всё расписано, ничего, в общем-то, экзотического.

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

В случае с самим факториалом (если мы о факториале, а не гамма-функции) всё вообще очевидно. Математическое определение:

x! = x * (x-1)! для целых x > 0, x! = 1 для x = 0.

Вышеуказанный пример на коммонлиспе третий случай не обрабатывает, так что ему как нефиг делать можно скормить отрицательный или дробный x и увалить в бесконечный цикл с переполнением стека. Так что вот этот вариант был бы более правильным:

(defun factorial (n)
    (if (or (< n 0) (not (integerp n)))
      nil
    (if (= n 0)
        1
        (* n (factorial (- n 1))) ) ) )

Снова ничего экзотического, связать с математической записью можно, но всё равно не так очевидно. Такую портянку можно на любом мейнстримном ЯП запедалить без особых изменений, и будет всё так же коряво. А теперь смотрим тот же факториал на, допустим, Haskell (да, там есть встроенный product и прочие foldl, но это не особо наглядно), в котором уже заложены все вышеуказанные условия:

factorial :: Integer -> Integer
factorial 0 = 1
factorial n | n > 0 = n * factorial(n-1)

А теперь сравниваем это с математической записью и наскальной живописью топикстартера. И делаем выводы.

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

А теперь смотрим тот же факториал на, допустим, Haskell

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

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

сложна! нипанятна! давай в графики для дибилоф!

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

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

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

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

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

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

Я уже писал про gui, алана кея итд. Кратко: Люди графику понимают намного лучше, им она ближе чем какие то закорючки. Детям еще с графикой обучаться намного интереснее становится кстати, звук и графика она же близка человеку! Доказательств хватает, тот же gui и его успех, всякие интерактивные обучалки, про которые ОП и говорил... В программировании применялся успешно https://ru.wikipedia.org/wiki/ДРАКОН

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

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

Да и с графикой можно дать возможность программировать не только тем кто каждый день начинает свой день с K&R а в принципе всем у кого есть ПК и некоторое желание.

Deleted
()

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

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

На всякий случай поясняю. @VarfolomeyKote4ka принципиально не пытается вникать в суть обсуждаемого. Его цель состоит в том, чтобы поймать волну. Он так развлекается. Ответы поверхностные, просто чтобы был ответ.

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

я просто дал отсылку к царю

Ну я тоже могу дать отсылку к проф. Луговскому, и это уже будет не 5.2, а полновесное 5.1. Так что не аргумент.

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

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

Ну найс, мне этот чудак shell-script -7 выписал, хорошо хоть аккаунт не вынес весь, а ведь может, уже выносил, за ерунду какую то, даже не оскорбление было.

Я вообще в его адекватности сомневаюсь, он мне постоянно по -7 выписывает, а вот когда я давал жалобы на фошыста, одного, он (фошыст) писал вот прямо «русские убогие», «русские могут только пить и воровать» он тер с -1, и все еще тот пользователь не в бане, таких комментариев у фошыста было штук 20 наверное, ну вот не шучу, но нет, я опасен конечно больше.

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

вещей которые расширяют С? Зависимые типы

Занавес. Конечно, ТС, который вчера узнал, что такое список и не осилил ни одной абстракции, реализует завтипы для С.

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

Ещё раз, для «детей природы»: есть математическое определение функции. Какой способ запрограммировать эту функцию может быть легче, чем просто перенести это самое определение в компьютер?

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

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

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

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

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

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

Уже скоро будет линуксовая версия пилитбся.

Только автор говорит что занимается сейчас прототипом мемапрога на лабвью. Кто из вас опять врёт?

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

Кхм, ссылки на что именно? Вот тут есть комментарии русофоба, Nill, правда тут Dimez его банил, и выдавал -7 все правильно, но лучше сразу бан, не знаю как теперь найти где shell-root участвовал. Выпуск Kali Linux 2019.2

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

Допилится labview версия немного, и будет пилится метапрог версия линуксовая.

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

А, ну хотя я shell-root наверн и оскорблял, но я это делал в письме на почту %) Можно ли за такое бан выдавать кста?

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

Ещё раз, шут гороховый, в каком месте вот это проще и понятнее, чем вот это?

factorial :: Integer -> Integer
factorial 0 = 1
factorial n | n > 0 = n * factorial(n-1)

И да, где в тех каракулях проверка на дробность и отрицательность? Окей, на дробность, возможно, проверяет один из цветов входящих аргументов (пипец как «удобно»), не давая передать флоаты. А на отрицательность? Где признак unsigned?

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

можно дать возможность программировать не только тем кто каждый день начинает свой день с K&R а в принципе всем у кого есть ПК и некоторое желание.

Сюрприз, я не начинаю свой день с K&R. А что мешает «всем у кого есть ПК и некоторое желание» просто выбрать язык попроще? Тот же паскаль или даже питон (я бесскобочную змеюку не люблю, но она объективно проще сишечки, это факт).

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

в каком месте вот это проще и понятнее, чем вот это?

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

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

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

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

«Гусары, молчать!» — завопил догадливый поручик...

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

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

Народ матана не знает, ему нужно объяснить все просто и без абстракций.
Человек хотел сказать - «Как поссать».

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

это матан

При чём здесь матан вообще? Ты хоть знаешь, что это такое? Хотя да, откуда бы ты это знал…

для простого человека это чет сложное

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

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

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

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

Тот же паскаль

Дык а что на нем написать можно сейчас? Библиотек мало.

питон

Вот это уже хороший вариант, но там слишком много неожиданностей, и это текст, это сложность все равно. Я несколько людей обучал программированию, хорошо себя показал racket, просто потому что там все по лисповому просто - (action data data (action data)) Простая логика того как поведет себя компилятор, как будет исполнятся, итд... Но на racket ничего не напишешь, а тут идея с metaprog'ом, графику будет понять намного проще чем lisp, да и написать что то нормальное можно будет, круто же.

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

При чём здесь матан вообще? Ты хоть знаешь, что это такое? Хотя да, откуда бы ты это знал…

Котечка ведь уже все объяснил - «Как поссать».

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

переписывание его определения один в один на хацкель не является чем-то сложным

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

Нафига вводить лишние сущности

Лишняя сущность это функции на самом деле то, есть задача, вот ее и решаешь, ненужно учится и знать функции, нужно делать софт! Знания того что по трубам течет чет у каждого есть, вот с этим можно и работать уже.

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

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

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

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

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

но ты пойми, есть же и простые люди...

Им на ваш Metaprog на котором генерируется си код - нассать.

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

Но труба проще для понимания

Ну для сантехника да. Но сантехникам программирование вообще не уперлось.

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

Каждый представляет что ему проще. Людям программирование ненужно просто потому что сначала нужно научиться программировать...

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

Ну для сантехника да. Но сантехникам программирование вообще не уперлось.

Для них будет разработан визуальный язык программирования - ТрубаПрог.

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

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

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

Учтите если сантехнику ТрубаПрог не понравится, то они люди матана не знающие могут и ...

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

И да, где в тех каракулях проверка на дробность и отрицательность? Окей, на дробность, возможно, проверяет один из цветов входящих аргументов (пипец как «удобно»), не давая передать флоаты. А на отрицательность? Где признак unsigned?

Дроби оранжевые. Знаковые - светло-синие. Беззнаковые - темно-синие. У функции, считающей факториал, темно-синий вход. Вот и вся проверка.

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

И на стуле от смеха трудно сидеть.

anonymous
()

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

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

Нужно письменность и старую математику запретить и сжечь все книги, объявив их еретическими.

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

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

Никто же ее не понимает от рождения

С рождения все понимают только сиську и как срать. Нужен сиськопрог! потому что жопапрог уже метанпрогом делается.

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

Дроби оранжевые

Перед размещением дробного блока нужно разместить два ку-блока, иначе, у пацака метапроговская программа не заработает.

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