LINUX.ORG.RU

Метапрог-прототип, версия 6 + будильник на Метапроге

 , ,


1

3

Наконец-то настало время для первой прикладной программы на Метапроге - будильника. Чтобы правильно его собрать, нужна последняя версия прототипа Метапрога. Архив включает в себя исходные диагарммы на LabVIEW и скомпилированные exe, которые можно запустить под Wine на линуксе, читайте инструкции из архива с названием вашего языка. Скачать:

https://www24.zippyshare.com/v/xEn1RKAG/file.html

Основная причина выпуска 6 версии - исправление бага с жесткими последовательностями, ведущими к началу цикла. Это исправление вряд ли окончательное, но для трансляции диагарммы будильника сойдет. Если после транслятора из 5 версии прототипа Метапрога сообщение о времени будильника выводилось в цикле каждый раз, то тут - только один раз, в самом начале:

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

Также проект может похвастаться тем, что функцию проигрывания звукового файла в своей основе сделал insw, успешно разобравшись с функционалом прототипа Метапрога. Я лишь добавил дебаги с условными разветвлениями (аналог if...else) и жесткими последовательностями. В получаемом из транслятора сишном коде это выглядит как множество вложенных друг в друга if...else. Проигрывание звука:

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

Сишная трансляция диаграммы будильника (не забудьте sound.wav!):

https://pastebin.com/YAd4J1SN

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

Переворот массива

Наконец-то удалось первернуть массив из байтов. Для этого пришлось повозиться с диаграммами транслятора-кодогенератора. В 6 версии прототипа Метапрога эта диагармма уже корректно не оттранслируется, планирую выпуск 7 версии, но надо еще поработать над массивами.

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

https://postimg.cc/RJMKXyTB

Если все же что-то неясно - не стесняйтесь спрашивать. Полученный код:

https://pastebin.com/UsY0TZvc

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

Метапрог-прототип, версия 5



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

Пока что этим занимаются антиметапрогеры.

Это антиметапрогеры не асилили решать на метапроге квадратное уравнение, насовали СУВТ во все дыры и эпично слили все предложенные примеры?

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

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

=== СУВТ ===

  • И так, ты говоришь что СУВТ будет тормозить программу, и есть способы эффективнее, ты говоришь что из за условий просаживается производительность, но это то ли ложь, то ли скилл ушел в отрицательное значение.
    • Полиморфизм для аналога std::variant не особо полезен, СУВТ нужен сам по себе, даже если бы он как то просаживал производительность.
    • Частый вариант использования, это когда тип может быть получен в compile-time, и тогда компилятор ничего не оставляет от СУВТ, оверхеда ноль.
    • Если же СУВТ используется для определения типа элемента в массиве допустим, что бы корректно вызвать кастомную функцию отрисовки, то происходит переход по jmp table, что не требует операции сравнения, и что по сути не сильно отличается от вызова виртуальной функции.

=== Редактор AST ===

  • Наверное лучше всего уровень антиметапрогеров можно оценить по этому ошибочному мнению что Метапрог это редактор AST, я понимаю если бы они не знали что это такое, но ведь они просто никогда не запускали Метапрог, никогда не разбирались в идеях, которые безусловно мега-удачно смешались в проекте... Так вот, ничего не зная о Метапроге, они придумывают свой собственный Метапрог который и обсуждают, на самом деле диаграммы Метапрога нельзя представить в виде дерева, причем это совсем не сложно понять, достаточно было бы почитать недавнее сообщение ОПа про трудности с условными разветвлениями, или можно было бы просто запустить Метапрог.

=== «Да ты сначала уравнение реши!» ===

  • Создатель Ruby не особо давно признавался что не может и сортировку пузырьком без гугла написать, но почему то ему никто не пишет что он неуч, что невозможно написать хоть что либо не прочитав 10кг макулатуры, наоборот, его язык был относительно популярен, на Ruby написан Homebrew, Metasplot, GitHub, разве ему это как то помешало? Почему антиметапрогеры со своими ценными знаниями так и не смогли реализовать антиметапрог? Почему ОП со своими познаниями в текстовых языках программирования смог реализовать прототип?

=== Заключение ===

  • Как можно заметить, почти все что рассказывали антиметапрогеры в последнее время полнейшая дичь. Как так получается что антиметапрогеры почти всегда имеют нулевой, или даже отрицательный скилл? Это не проблема, но они зачем то дают бесполезные, или вредные советы, строят из себя специалистов... Загадка.
AgafiaPravednica
()
Последнее исправление: AgafiaPravednica (всего исправлений: 1)
Ответ на: комментарий от AgafiaPravednica

Мдя, Вы со своими буйными фантазиями очень подходите ТС-у… Грибоэлектричество Вам в помощь.

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

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

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

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

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

Царь хоть и поехавший и не признающий ничего кроме своего мировосприятия где С лучший язык для любой задачи

Ложь. Я заметил антиметапрогеры еще и антимонархисты.

а этот просто пустобрех безнадежный, вон с опенната уже принес какую-то очередную каку чтобы создать срач

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

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

+100500

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

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

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

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

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

Я уже делаю игровой конструктор на базе Сварога, но я ленивый, так что наверное покажу что нибудь ближе к лету. А пока что всеми любимый факториал - https://yadi.sk/i/_LedKB6s7Zc5ow. Компилятор свой, никаких сторонних не требуется. Правда пока что Win Only. Детали в списке быстрого доступа показаны не все конечно же.

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

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

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

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

Да, у Мольера был такой герой

Бгг, я тоже по прочтении того комментария Журдена вспомнил.

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

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

Нате, убейте себя об угол:

$ date
Ср янв 29 16:20:50 MSK 2020
$ cat > fact.py
#!/usr/bin/python
import sys
print reduce(long.__mul__, range(1, int(sys.argv[1])+1), 1L)
$ chmod a+x fact.py 
$ ./fact.py 1
1
$ ./fact.py 2
2
$ ./fact.py 3
6
$ ./fact.py 4
24
$ date
Ср янв 29 16:21:54 MSK 2020
AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от DELIRIUM

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

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

А пока что всеми любимый факториал

Две с половиной минуты. Впечатляет.

Вот так раз, и доказал превосходство над текстовым программированием (https://streamable.com/5f8lj, 12 секунд) в 12 раз! Настоящий мужик!

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

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

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

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

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

Токма эта константа, с учетом СУВТ, лабвьюшного рантайма и кривых рученок будет на два порядка больше чем на питоне, а для создания диаграммы понадобится месяц времени и стена из 4х4 4К мониторов.

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

Это превосходство клавиатуры над мышью в определенной задаче.

Эта задача называется «программирование».

Клавиатурное управление в метапрог я добавлю.

никакие хоткеи не спасут это мертворожденное дитя.

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

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

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

За Вас то? таки да…

Комментариев насчет сложности диаграмма по сравнению с текстом конечно не будет - грибоэлектричество древних русов не дает.

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

За Вас то? таки да…

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

Комментариев насчет сложности диаграмма по сравнению с текстом конечно не будет - грибоэлектричество древних русов не дает.

Я не ответил на какой то комментарий? Дай ссылку.

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

а я физик

Оно и видно что не программист, иначе бы не нёс такую ересь про СУВТ как тут Метапрог-прототип, версия 6 + будильник на Метапроге (комментарий)

Если интересно как делают программисты, то поизучай код enum из Rust или код discriminated unions из F# или код std::variant из С++

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

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

union хотя бы может работать без heap и rtti…

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

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

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

Но тем не менее именно это Вы тут и делаете.

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

Я не ответил на какой то комментарий? Дай ссылку.

это говорилось 100500 раз разными людьми, но никто из адептов метапрога это ни разу содержательно не прокомментировал

Метапрог-прототип, версия 6 + будильник на Метапроге (комментарий)

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

Начнем с того что СУВТ ТС-у банально не нужен. Этим можно было бы и закончить. И боюсь не Вам оценивать мои навыки программирования.

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

Нет никакой ненависти к метапрогу - есть недоумение по поводу совершенно необучаемых адептов метапрога.

union хотя бы может работать без heap и rtti…

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

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

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

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

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

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

Это уже неоднократно делалось другими (куда более компетентными) людьми - со всеми блоками и пр фигней. Текстовое программирование так и не догнали.

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

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

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

Rational Rose - то с чем в свое время пытался работать я.

Его более продвинутый аналог (названия не помню) - то с чем пытались всерьез работать в американской ИТ-индустрии лет 15 назад.

Все упирается именно в низкую скорость ввода и громоздкость детальных (пригодных для кодогенерации) диаграмм по сравнению с текстом.

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

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

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

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

Я не знаю никого из близкого окружения кто юзал бы такие штуки.

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

Хотя надо будет попробовать lyx, лет пять назад он не зашел

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

Ну реже, чем ты. Но презентации все в нем делаю, диплом в нем писал. Но основные инструменты у меня - vim и cgdb)

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от AntonI

Его более продвинутый аналог (названия не помню) - то с чем пытались всерьез работать в американской ИТ-индустрии лет 15 назад.

Вангую, что речь про IBM Phapsody, сделанный путём развития того самого (сюююююрприз!) Rational Rose. IBM купил Rational и развивал его наработки, но что-то давно там тишина…

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

У меня емакс и консоль.

Я бы вот дал денег за систему которая бы делала за меня математические преобразования, иногда туча времени на это уходит:-(

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

Rational Rose

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

Все упирается именно в низкую скорость ввода и громоздкость детальных (пригодных для кодогенерации) диаграмм по сравнению с текстом.

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

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

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

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

От того что вы спрячете переменные в ребра графа они никуда с диаграммы не денутся.

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

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

Ну есть платная вольфрам математика (но я правда не тестил).

К матлабу был вроде плагин для символьных операций.

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

Знакомые теоретики тоже на ней сидят. Но хотелось бы какой то интеграции и экспорта в с++ что ли…

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