LINUX.ORG.RU

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

 , , ,


0

3

Скачать:

https://mega.nz/file/ONxVwDJb#zFun6oB2BOxRglVeqNGusssQqT4teCdvtt4dEd0kfV0

В 19 версии серьезно переработан транслятор, что ускорило трансляцию схем с множеством ветвлений.

В 18 версии прототипа добавлен вывод значения переключателя из свича по СУВТ. В остальном она не отличается от 17 версии.

Это позволяет реализовывать весьма интересные вещи, например API для работы с чатом Метапрог онлайн на Метапроге:

https://i.postimg.cc/52xTMR4V/image.png

К блоку операции над структурой надо (не считая константы СУВТ) подключить ТОЛЬКО один из входов определенного типа. Это может быть переключатель (перемикач), задающий значение селектора СУВТ или любой из типов СУВТ. При подключении типов соответствующее значение переключателя СУВТ будет задано автоматически.

Кстати, украинский в Метапроге знать не совсем обязательно. Вот совершенно та же схема без изменений, только язык в настройках поменял на русский:

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

Только кейсы енума, управляющего СУВТ, было лень перевести:)

В версии 17 исправлен серьезный баг с кодогенерацией. В 16 версии при трансляции схем, в которых в ветку с условием «входят» данные извне, код, отвечающий за обработку этих данных (до их входа в условие) мог сгенерироваться после тела условия. Это серьезно тормозило развитие проекта, но теперь в стандартной библиотеке есть демки, успешно соединяющиеся с сервером Метапрог онлайн через Tor (SOCKS5) и работающие с некоторыми методами (проверить версию клиента и логин/регистрация).

Скорее всего, простой чат-клиент Метапрог онлайн с использованием СУВТ можно будет реализовать уже в этой версии прототипа. Если это не удастся - будут багфиксы, но если таки удастся - можно будет приступить к макросам времени компиляции, таким как «многотиповой» тип и цикл по структуре. После чего уже можно будет серьезно переделывать Метапрог «на самом себе».

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

Метапрог-прототип 16 + СУВТ по енумам

Может я чего-то не понимаю, но зачем нужны СУВТ, если «тип» известен на этапе трасляции в Си?

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

Аттеншнвхора ищет аттеншн.

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

Самокритично:)

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

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

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

Метапрог не паразитирует на Си, а дополняет его - примерно как С++, на первых порах тоже прямо транслировавшийся в Си. И дает сишной семантике графическую оболочку нового поколения.

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

Будете плохо себя вести - и легион ваш мигом вышвырнут за борт.

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

liksys ★★ ()

@liksys ну что поздравляю с новым рангом на Лоре. Польза тем метапрога становится очевидна :)

@metaprog Выкати уже что-нибудь наглядное. Типа лоральмолога. А то обсуждать уже нечего. Опять вся тема про царя будет. И не обижай анонимуса.

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

Спасибо))) Пожалуй, это единственная польза от метапрога (и от поделки, и от юзера).

liksys ★★ ()

Торадиционно на первой странице нужна ссылка на какое-нибудь видео, пусть будет это https://www.youtube.com/watch?v=-IUbW60RkbE

Если это не удастся … но если таки удастся

Вот оно такое – программирование по наитию. Может удастся, а может и нет.

к макросам времени компиляции

Опять своя терминология пошла. А макросы времени выполнения будут?

серьезно переделывать Метапрог «на самом себе».

Уже год назад все ждали.

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

Выкати уже что-нибудь наглядное

Есть целый прототип Метапрога. Скачать по ссылке в заглавном посте без регистрации и СМС.

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

Но у тебя чувство меры и самокритика вообще отсутствуют

Если этими словами ты подразумеваешь, что я не любитель лизать пятые точки ЧСВшным «синьйорам» - то этим я могу только гордиться.

опенсорсного лабвью

Зачем, когда на торрентах и так есть?

бездарную скриптуху в виде метапрога

Обосновывай потуги.

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

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

Как мы выяснили

Тоже говоришь о себе во множественном числе?

эта поделка не привносит никаких новых идей и концепций

В манямирок питониста, окуклившегося в виме, трудно привнести что-то новое.

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

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

Далее, никакой графической оболочки нового поколения не существует: это по-прежнему тормозящий «си в прямоугольничках».

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

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

Доносчики из 1937 подъехали.

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

Не забывай, кстати

Ну конкретному анону про легион он ответил ровно то, что анон своим комментарием заслужил.

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

Самое прикольное, что вышвырну-то их не я. Интересно сколько аноны продержатся на этот раз. Как думаешь, дотянут до 20 страницы?))

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

нужно было именно на текстовом, черт побери, Си. Мы трахались с текстовым кодом часиков так пять, посматривая в лабвьюшные схемы - без них была бы жопа. Где какая переменная, как их назвать на инглише, точку с запятой не забыть, скобки правильно расставить и проча текстовая бредятина, от которой Метапрог (даже в виде недоделанного прототипа) освобождает.

Ахаха. Отсутствующие точки с запятой вылавливаются компилятором за два-три запуска и правятся за полминуты.

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

Переменные называть — по смыслу. Можно называть транслитом. А некоторые сишные компиляторы вообще позволяют кириллицу и прочий юникод использовать. Если тебе не нравится, что их вообще надо обзывать, предлагаю провести эксперимент: открыть через полгодика сначала вашу лабвьюшную диаграмму, а потом ваш же сишный текст, и посмотреть, что понятнее. Я почему-то думаю, что на диаграмме вы вообще ничего не поймёте, если квадратики не подписывали. А если подписывали, то чем это проще объявления переменных?

Где вы там работы на ПЯТЬ ЧАСОВ нашли?

опенсорсного лабвью

Зачем, когда на торрентах и так есть?

Опенсорсного — нет.

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

Есть целый прототип Метапрога. Скачать по ссылке в заглавном посте без регистрации и СМС.

Кстати, тут ты в прошлой теме обещал и тетрис запилить. И новую оптимизированную прогу вычисляющую числа Армстронга, при условии, что появится оптимизированная другая. У меня был пост, где была представлена прога на тикле (на самом тормозном ЯП), бьющая по скорости все остальные варианты, в том числе и метапроговский.

Конечно, ты всегда говоришь: «если будет время».

Время будет?

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

Ахаха. Отсутствующие точки с запятой вылавливаются компилятором за два-три запуска и правятся за полминуты.

Ужасно раздражает. Плеваться хочется.

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

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

Пара скобок — вполне себе графическая конструкция в тексте, показывающая последовательность выполнения

Поди их да выищи глазами в стене текста. А, отступы, черт бы их побрал, и ИДЕ - но это всего лишь полумеры, облегчающие пользование технологиями программирования образца прошлого века.

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

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

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

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

Лабвьюшные схемы свои (и чужие тоже) я понимаю и через более чем год после того как не прикасался к ним. Если мне надо сделать изменения в схемах годичной давности - разобраться не проблема, в прототипе Метапрога уже кучу раз так делал. Блоки и их терминалы (входы/выходы) называть по-любому приходится, но самое главное что мне помогает - это система типов. У меня там в основном кластера, и ситуации когда можно перепутать два кластера одного типа очень редки. Да, можно перепутать числовые типы и строки, но там уже есть названия и то откуда каждый конкретный проводок идет можно проследить глазами или на худой конец (если все запутано) выделить его.

А если подписывали, то чем это проще объявления переменных?

Названия есть, опять же, только у функций и их терминалов. остальные названия необязательны, без них можно обойтись. И то Лабвью дает дефолтные названия терминалов (String, cluster, Array, Numeric) - если они устраивают, можно с названием не заморачиваться. Ни промежуточных переменных тебе, ни точек с запятой, ни запятых, ни скобок - просто чудо!

Где вы там работы на ПЯТЬ ЧАСОВ нашли?

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

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

Время будет?

Боюсь что вряд ли. Даже сам Метапрог пилить еле время нахожу. А надо последнюю 17 версию фиксить - там надо б вывод значения переключателя, делающий свичи по СУВТ намного удобнее.

Кстати, тут ты в прошлой теме обещал и тетрис запилить

Не обещал. И прямо сказал что некогда.

И новую оптимизированную прогу вычисляющую числа Армстронга, при условии, что появится оптимизированная другая. У меня был пост, где была представлена прога на тикле (на самом тормозном ЯП), бьющая по скорости все остальные варианты, в том числе и метапроговский.

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

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

Опенсорсного — нет.

Буквальный «аналог Лабвью», не претендующий на универсальность, должен быть гвоздями прибит к NIшному железу и иметь ограниченный бекенд? Да ну его, мне столько не платят.

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

Не обещал. И прямо сказал что некогда.

Да, согласен.

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

Это не матан, это алгоритмы. Придумывайте свои. Уже писал https://www.linux.org.ru/forum/development/15749404?cid=15758522 об этом. Да я инвалид, но и то какую-то оптимизированную версию выкатил. Почему должен тебе разжёвывать очевидные оптимизации? Ты же обещал сам, если кто-то сделает оптимизированную версию (ну как обычно, с оговоркой «если время будет»).

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

Буквальный «аналог Лабвью», не претендующий на универсальность, должен быть гвоздями прибит к NIшному железу и иметь ограниченный бекенд?

Нет, совершенно необязательно. Универсальный даже лучше будет.

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

Если это будет реальный царь - пускай обосновывает потуги или будет послан

Этот реальный царь обычно не обосновывает потуги, а других заставляет. :)

hobbit ★★★★★ ()

Я за этим не слежу, но кто-нибудь уже вспоминал ДРАКОН? Он как раз визуальный и на нём даже вроде как что-то серьёзное для космоса программировали.

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

Я за этим не слежу, но кто-нибудь уже вспоминал ДРАКОН?

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

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

Есть целый прототип Метапрога. Скачать по ссылке в заглавном посте без регистрации и СМС.

Нам пожалуйста метапрог на самом себе под GPL и в формате опен-сорца. С возможностью установки сверху модов, типа котиков вместо блоков управления.

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

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

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

– Все джунгли восхищаются нами.

anonymous ()

проваливай на гитхаб или куда то в у сторону

задолбало это Г постоянно видеть на моем лорчике

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

лорчик не твой, а мой. Иди себе свой лорчик ищи, ишь чего захотел!

anonymous ()

Я так до конца не могу понять в метапроге есть квадратит для работы с указателями или нет? Что по поводу адресной арифметики? Или в метапроге есть только массив который является единственным способом динамически выделить память? Как мне выделять и освобождать память на куче произвольных размеров? Картинку покажи с собранной схемой )

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

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

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

лорчик не твой, а мой. Иди себе свой лорчик ищи, ишь чего захотел!

Метапрог залогинься. Срёшь из под анонима, а потом на Легион гонишь.

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

Я так до конца не могу понять в метапроге есть квадратит для работы с указателями или нет? Что по поводу адресной арифметики? Или в метапроге есть только массив который является единственным способом динамически выделить память? Как мне выделять и освобождать память на куче произвольных размеров? Картинку покажи с собранной схемой )

Создать кучу в метапроге очень просто. Это и так куча.

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

Сначала ты!

Метапрог, пиши свою поделку, а не на форму тут срачуй. То что ты создал тему, и даже подкукорек одного из вахтёров – всё это – вовсе не даёт тебе никаких привилегий. Запомни – ты здесь никто. Обычный. Самый обычный. НИ рангов ни имён ни фамилий тут нет. Оттого ты и трусишь анона.

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

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

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

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

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

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

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

anonymous ()

Тутуду-тууууууууууууууууууу мне лень делать видево Ту туду ту-тууууууууууууууууууу ту-туду-тууууууууууууу ту-ту ту-ду-ту ту туту ду тууууууу дыга дыга дыг туду тутуууууууу дыга дыга дыг.

Ай ладно вставлю старое https://www.youtube.com/watch?v=1Qw0qSIBKN0

LINUX-ORG-RU ★★ ()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

Есть, и указательный матан присутствует.

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

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

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

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

Ну вот смотри.

#include <stdlib.h>
#include <stdio.h>

int
main () {
    puts ("Hello, World!");
    return EXIT_SUCCESS;
}

Возни меньше, пользы столько же. Расчёт эффективности бесполезных действий для самых маленьких.

Есть ещё пример.

#include <stdlib.h>
#include <stdio.h>

int
main () {
     do {
         puts ("metaprog still in development");
     } while (1)
}

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

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

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

Если более конкретно — у Дракона обычный императивный подход (он на блок-схемы похож), а в Лабвью и Метапроге движение потоков данных. ТСу это и нравится, что потоки данных видны вместо переменных.

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

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

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

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

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

Есть такое. Он уповает, что Когда Метапрог Будет Готов, там всё будет на интерактивных обучалках, на самом же Метапроге написанных. Вместо документации.

Т.е. поделку для макак ты от макак отсекаешь всеми силами.

Ну как-то так, да.

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

Ага, наверное жить начал как нормальный человек, а не как мы тут :D

LINUX-ORG-RU ★★ ()
Ответ на: комментарий от hobbit

на интерактивных обучалках

А можно все-таки ман написать, а не вот это все?

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

Нахожу весьма забавным факт того, что метапрог все (ввиду наивности или нежелания заняться самообразованием) изобретает с нуля. Нетрудно заметить, например, что сейчас он работает по доморощенному аналогу аджайл. Не менее иллюстративным является написание программы по поиску корней квадратного уравнения. Он не знал, как это сделать нормально, и поэтому начал изобретать. Изобрел численные методы и подобие аппроксимации. Возможно, через много лет ЛОР увидит Книгу Драконов v2: Метапрог эдишн.

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

Оттого ты и трусишь анона

Настолько трушу, что допускаю анонов в тему со старта?

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

А можно все-таки ман написать, а не вот это все?

Мне делать это некогда. Хотя стоп, маны есть. Встроенная в Метапрог справка. Хотя проще спросить у меня. Денег за консультации по Метапрогу не беру.

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

Новый аккаунт не завел? На ЛОР люди вроде обычно возвращаются. Хотя я сомневаюсь что вернулся бы на ЛОР, если б меня вдруг забанили.

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

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

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

Да я инвалид, но и то какую-то оптимизированную версию выкатил. Почему должен тебе разжёвывать очевидные оптимизации?

Может попытаюсь как-нить по свободе оптимизировать свою реализацию. Но щас надо б еще хотфикс с важной фичей сделать.

metaprog ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)