LINUX.ORG.RU

Метапрог-прототип 34 + СУВТ по логическому типу

 , , ,


0

3

Следующая тема:

Метапрог-прототип 42

Подпишусь в поддержку Столлмана Bitcoin-кошельком из первой темы про Метапрог:

Metaprog Project supports Richard Matthew Stallman. Shame to SJW, Big Tech and Big Media. We need to get rid of them or Big Money will enslave us. It is do or die! Stay straight, RMS!

Подпись:

H/3cqHl7HGdAQd9K/io474IbLYlIKi/8R6pw1Vbpz0oTN4kihI5YO4dIdZo2VRdJbSp8kWmtWgC5TRTs0MkBIAo=

Подробности:

Движение отмены Столлмана (комментарий)

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

www.linux.org.ru/forum/development/16219448

Скачать:

https://mega.nz/file/6VJCEboQ#N3pu86bqI31Jp15aHWt6l-FIkY_RUws0CZK9aMcvxZo

В версии 34 исправлен тот же баг что и в 33, но другим способом, так как багфикс из версии 33 вызывал другие баги.

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

К выпуску версии 32 неожиданно обнаружилось, что СУВТ может иметь переключатель логического типа. То есть, можно задавать типы на значения «да» и «нет». Никаких изменений для этого вносить с 31 версии не пришлось, надо лишь задавать в определении СУВТ типы по значению СУВТ 0 на «нет» и 1 на «да». Из изменений - некоторые исправления багов (например, с кодогенерацией структур и операций над структурами под указателями), а также экспериментальная фича отрисовки канваса через dll-вызов окошка на SDL, за подробностями обращаться к MOPKOBKA или kote4ka в Метапрог онлайн.

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

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

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

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

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

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

https://pastebin.com/Z8rzvZpQ

Сравнение с тем же алгоритмом на «аналоге» Метапрога с бекендом на python говорит само за себя:

Metaprog здорового человека (комментарий)

В версии 29 - крупные изменения системы типов. «Встроенных» типов, вытягиваемых через меню «структуры», больше нет, все они теперь представлены в стандартной библиотеке. В особенности изменения коснулись числовых типов: теперь такие типы как число, дробь, целое, знаковое и беззнаковое представлены как многотиповые из соответствующих типов. Например, беззнаковое - многотиповой из 8, 16, 32, 64 и 128-разрядных беззнаковых, целое - многотиповой из знакового и беззнакового, число - многотиповой из целого и дробного. Теперь такие типы можно обрабатывать как многотиповые, поступая с числами разных типов по-разному.

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

В версии 27 добавлена удобная возможность создать новую подфункцию, не останавливая весь прототип. Кнопка блоки - новая подфункция.

Также обнаружилась (но пока не исправлена) проблема с терминалом счетчика повторений цикла в цикле по условию - пока что не используйте его!

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

В версии 26 исправлена трансляция циклов при определенных условиях (не всегда корректно транслировались циклы с жесткими последовательностями, идущими к входному блоку).

В версии 25 исправлена трансляция сложных рекурсивных структур с СУВТ.

В версии 24 был исправлен баг транслятора, проявившийся в версии 23: на некоторых схемах (например, отправки данных по TCP) код, отвечающий за поток данных, «вливающийся» в ветки с условиями, мог сгенерироваться после кода самого условия.

В версии 23 исправлен еще один баг с упаковкой проектов, а также баг трансляции условных схождений.

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

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

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

Метапрог-прототип 19 + API на СУВТ + ускорение трансляции



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

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

Ого-го, чем дальше, тем, оказ-ца, в метапроге всего меньше.

С чего ты взял? Возможностей все больше, цели прежние.

paramon
()

Метапрог-прототип 21 + рекурсия!

В C++ рекурсивный вызов производит к сохранению в стеке текущих значений локальных переменных.
У вас как?

Владимир

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

Так же как и в С, полагаю, ведь это транслятор в С.

Пусть бы @metaprog в сгенерированном сишном тексте показал «что там и как там».
Кто его знает, может быть и реализовали рекурсию …

Владимир

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

Так же как и в С, полагаю, ведь это транслятор в С.

Скорее продвинутый а-ля «Дракон».
Если транслятор, то пусть используемую грамматику покажет …

Владимир

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

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

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

Грамматика «Вроде работает»

Согласен, но не та, которая принесет пользу разработке …

Владимир

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

Ринат хоть свои обещания выполняет (сказал, что нарисует окружность, и спустя какое-то время нарисовал), за это ему почет и уважуха, а клоун Котечка только кривляется и продолжает говорить, как в метапроге все БУДЕТ круто.

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

лиспах тоже не было!!!

Поражает твоя безапелляционность.

Хоть бы историю почитал.

ЗЫ: @metaprog, тебе реально приятно работать с таким клоуном?

ЗЫЫ: элементарная операция, которая элементарно реализуется на ассемблере для любого процессора. Но вот почему-то авторы ЯП решили исключить рекурсию. Конечно автор лиспа такого не делал, может авторы фортрана это сделали, но в этом не уверен, не знаю историю фортрана.

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

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

«Краткость - сестра таланта».
Достаточно того, что вы понимаете сказанное …

Владимир

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

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

ФУНКЦИЮ ЧТЕНИЯ КОМНАТ

WTF?

ЗЫ: ну сделал, что она дает?

cluge
()
Ответ на: комментарий от cluge
А по какому поводу тред?   
О новом графическом языке программирования, который лучше чем другие.  
Чем лучше?   
Чем другие.

Оригинал здесь
https://www.youtube.com/watch?v=Kjmyc_JnmUM Метапрог лучше чем другие

Владимир

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

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

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

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

элементарная операция, которая элементарно реализуется на ассемблере для любого процессора

Конечно, конечно, не зря же она в любом бейсике была.)0)0

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

может авторы фортрана это сделали

На фортран не гони. Компьютер без фортрана не компьютер.

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

Потому что она читает комнаты из сокета.

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

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

cluge
()

Шутка

Метапрог разрабатывается «для всех».
«Все» разные бывают …

https://www.youtube.com/watch?v=pSkqmm--8jg Неприличными словами не выражаться!

Владимир

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

Конечно, конечно, не зря же она в любом бейсике была.)0)0

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

Ну была рекурсия в древних языках на древних компах. Что ты хотел сказать то? Что в метапроге рекурсия – это очередное достижение? Покажите скриншот схемы с рекурсией. Выложите выхлоп метапрога. Ну хотя бы рекурсивное вычисление чисел Фибоначчи.

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

Первые фортраны и лиспы не претендовали на революционный ЯП начала 21 века =)

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

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

The PDP-11 (1970) is one of the first computers with a stack-pushing subroutine call instruction; this feature supports both arbitrarily deep subroutine nesting and also supports recursive subroutines.

paramon
()

Метапрог-прототип 21 + рекурсия!

В Метапрог возможность создания функции реализована?
Если да, то как это выглядит на диаграмме и сгенерированном сишном коде?

Владимир

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

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

Локальные значения переменных сохраняются в стеке /при рекурсивном вызове/.
И здесь не все так просто …

Владимир

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

Локальные значения переменных сохраняются в стеке /при рекурсивном вызове/.

Текущие значения локальных переменных функции сохраняются в стеке /при рекурсивном вызове/.

Так в Метапрог можно создавать функции?

Владимир

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

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

Все релизы доступны в Метапрог.Онлайн, но это PKUNZIP.ZIP, поэтому для неофитов приходится дублировать на файлопомойке ;)

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

от vcs он сам отказался

Ничего подобного, VCS используется.

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

ждем новые и старые исправленные демки

Опять Светило отвлекаете от первоочерёдной цели?

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

можно ли считать «открытыми» исходники в бинарном формате, даже если этот формат будет описан…

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

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

Но я так понимаю все опять упрется в «Поставь метапрог»

В этом суть Метапрога. Хотя какого-либо другого способа его познания — Вы хотите фигню и лишь бессмысленно праздно торчите в этих тредах. Равно как и прочие персонажи, которым религия не позволяет просто качать и ставить любые программы.

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

Вот есть множество людей, которые предпочтут почитать нормальную документацию

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

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

Кстати, на ЛОРе по очевидным причинам визуалы практически не обитают, поскольку это сугубо текстовый ресурс, здесь даже картиночки к постам прикреплять нельзя. Визуалы торчат в иных местах. Так что не удивительно, что ТС не удаётся здесь единомышленников найти, на что Мы Им неоднократно указывали, но воз и ныне там.

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

Ну так становится же потихоньку круто. Или Вы будете отрицать накопленный прогресс в разработке проекта? Собака лает — караван идёт…

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

В Метапроге нет переменных, очевидно, что и сохранять нечего. Дурацкие вопросы задаёте, право.

А что есть?

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

Ну так становится же потихоньку круто. Или Вы будете отрицать накопленный прогресс в разработке проекта?

Прогресс «во всей красе» …
«То ли еще будет».

anonymous
()

Великолепный проект.
Когда добавите поддержку GPU?

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