LINUX.ORG.RU

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

 , , ,


1

3

FAQ

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

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

10. Примеры выдают варнинги при компиляции (у кое-кого еще и сегфолтятся)

Решено вводом неанонимных структур, если идет обращение к данным из сишных инклюдов.

12. Зачем ты пытаешься сделать «графический C» (используя подходы к разработке, структуры данных и прочее из C, но в виде блоксхем)?

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

13. Есть же first order logic, лямбда исчисление и т.д. Ты бы изучил для начала альтернативы, может для данного вида представления имеются лучшие подходы?

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

Примеры

Предыдущие см. в прошлых темах

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

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

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

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

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

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

Неанонимные структуры

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

Главная функция:

https://i.postimg.cc/8kJdT96h/image.png

Открытие нового окна:

https://postimg.cc/kBX6rB0P

Та же диаграмма в видео:

https://streamable.com/jqng1

Видно всплывающие подсказки, в конце удаляется и снова проводится один из проводков.

Начало рисования SDL, то что должно делаться каждый цикл в нуклеаре:

https://postimg.cc/tYS199bZ

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

Кстати, что мешает мне сейчас сделать главный нуклеаровский цикл, ведь циклы ж уже готовы? Смотрите на этот скрин:

https://i.postimg.cc/65N2KMQz/image.png

Почти такой же пример, только есть цикл и нету sleep (чтобы можно было полюболваться на окошко 10 секунд). Что тут не так? Схема правильная, но надо еще научить транслятор ставить «тупиковые» ветки, берущие начало в цикле, в пределах цикла по-умолчанию. Сейчас код nk_end и малювання SDL оказываются за пределами тела цикла, буду это исправлять. Где-то там же находится ключ к полному налаживанию ветвления через if и switch.

Сам код:

https://pastebin.com/f5PDfi77

Использовать сишные имена типов и структур удалось благодаря многоязычным строкам, которые внедрялись для русских, англичан и прочей не понимающей украинский публики. Если в названии типа есть строка на языке «С», вместо примитивного типа (или тела структуры из примитивных типов) ставится сишный идентификатор типа из инклюда.



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

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

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

https://www.wireguard.com/quickstart/

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

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

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

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

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

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

Знаю не по-наслышке

А можешь рассказать тогда, какими тайпдефами http, который ты, конечно же, реализовывал, описан?

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

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

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

Это по-твоему корректно?

Не надо ему давать объяснения, пусть сам все ищет.

Да это хуже мата!

Не, я еще долго буду тебе лить свинец в глотку

БДСМа насмотрелся?

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

Протоколы свои делал на Лабвью для личных нужд. Выкладывать их не буду

У нас есть такие приборы!
Но мы вам про них не расскажем!

anonymous
()
Ответ на: Обновлённый список факторов риска, v3 от hobbit

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

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

Не забыл что это означает?

А ты сам то понимаешь, что это значит? Или у тебя «языковая строка» это язык «С» и язык «UTF8»?

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

Выкладывать их не буду

Конечно не будешь. Ты же неуч, хвастун и пустобрех, и никаких протоколов не делал.

увидишь протокол

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

многоязычные строки

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

Да это хуже мата!

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

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

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

по мнению автора метапрога все эти вопросы решит автоматически.

«метапрог» все эти вопросы решит автоматически. Мне почему-то нравится называть этот «проект» «метапрога».

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

и никаких протоколов не делал.

Вот, вчера был на собрании ТСЖ и сделали протокол собрания, а потом его подписали. Кто скажет, что я не делал протокол, пусть первый бросит в меня камень. Metaprog: универсальная графическая среда программирования [в разработке] часть 7 (комментарий) Какие протоколы он делал?

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

Какие протоколы он делал?

Такой протокол! горит от ста двадцати тайпдефов, потому что структура у него похожа на кирпич и 27 Ильёв Муромцев.

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

Вообще-то протокол логичнее всего делать на тайпдефах.

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

Каким нах боком одно к другому вообще? Тайпдеф - это подстановка типов. Подстановка, понимаешь? Как оно тебе поможет реализовать протокол?

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

Каким нах боком одно к другому вообще?

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

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

кодогенерации

Состоящей на 5% из говнокодогенерации и на 95% из бредогенерации, что данный тред и демонстрирует наряду со всеми предыдущими.

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

цуконах, я уже не могу ржать.

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

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

Состоящей на 5% из говнокодогенерации

Ну не всем же писать компиляторы.

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

95% из бредогенерации, что данный тред и демонстрирует

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

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

Родился в треде на лоре. В гастрономе № 22. Известный железнодорожник. По призванию своему программист. На лоре — колхозник. На гитхабе — мессия. В программировании, так сказать, необходим. Это, так сказать, система… эээ… в составе 120 тайпдефов. Фотографируйте Киевский университет — и получаете te-le-fun-ken. И графика работает по другой линии. По линии «Метапрог». Потому что не Си будет, а академик будет! Ну вот можно сфотографировать диаграммы. Можно стать Линусом Торвальдсом. Можно стать Деннисом Ритчи. И будешь уверен, что эту тебя примут по учебнику. Значит, на пользу айти пойдет одна метапрога. Величина — оторванная в область разработки — дает свои колебания на всю разработку. А анонимус дает колебания только на семью на свою. Спичка на башорге работает. В лоркводезы ходит и зажигает в цитатах большой лист. В лорквотезах маленький чат разжигает.

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

Ну одного аффтара альтернативной разработки тоже внезапно в командировку отправили. Вот через неделю-джве можно к этому вопросу вернуться.

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

Код… эээ… будет вырабатываться гораздо легче, чем учебник крепкий. А крепкий учебник будет весомее, чем ява на улице Герцена. А на ЛОРе будет расщепленный лисп. Тогда учебник будет проходить через ЛОР, через гастроном № 22, и замещаться там по формуле визуального единства. Вот в магазине 22 она может расщепиться, МЕТАПРОГА! На метапрогеров, на диспетчеров, на говнокодеров, на культуру мультиязычных строк... Так что, в эту сторону двинется вся разработка. Библиотека двинется в сторону 120 строк, которые будут… эээ… схему укладывать на схему. 120 единиц — предмет физика. метапроговая линия горит от 120 цветов, потому что структура, так сказать, похожа у неё на кирпич. Линус Торвальдс работает на стадионе «Динамо». Линус Торвальдс работает у себя дома. Вот конкретная разработка! «Открытая система» — то же самое. Ну, берем вебсервер, вставляем в лабвью схемы, накручиваем там… эээ… все время чёрная линия… Так что же, будет протокол, что ли, вырастать? Денис Ричи, что ли, будет вырастать из этого?

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

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

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

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

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

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

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

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

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

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

http плох тем, что тайпдефами не опишешь

ДА ЧТО ТЫ ГОВОРИШЬ! И как же, по-твоему, работают все сервера на Си?

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

Это новое слово в цирковых шоу. В сишке и плюсах typedef - это синтаксический сахар для создания удобных синонимов для типов. typedef struct ... это объявление структуры и сразу же синонима для неё. Сразу struct my_type_t и синонима my_type_t. Без тайпдефа всё также будет работать, просто пришлось бы лишние разы писать struct.

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

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

Фух, устаю объяснять такие вещи. Мне кажется, или даже котечке надоело подсказывать по элементарщине? Если посоветовать сам нуклеар - это не сложно и норм, то базу вроде оператора -> и память в стеке и куче рассказывали я с Илюхой. Без гугления не получится реализовать всё, что хочешь.

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

Мля! У него реально шизофазия. Он дажеине понимает какую хрень несёт ¯\_༼ᴼل͜ᴼ༽_/¯

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

Бай-бай. Возвращайся

Спасибо. Но я больше читатель.

Но хочу обратиться к автору:

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

Я совсем не против визуального программирования, но в АСУ ТП оно за все годы использования совсем не выстрелило: как есть возможность все переходят на ST или Си на контроллерах + кодогенерация, ну а уровнем выше, где визуализация, рулят конструкторы пользовательских интерфейсов (которых у тебя даже в проекте нет пока) для быстрого построения интерфейса пользователя, ну а дальше свои сложности, которые вряд ли будут интересны читателям.

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

тренарный оператор

Это из секс-шопа?

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

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

Я зочу повысить эффективность программирования через графику.

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

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

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

Могли бы вообще gif'кой сделать, я и такое видел %)

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

ты с ошибкой написал, не тренарный а тернарный. не удивлюсь что его автор так же не осилил или скажет что ненужно. у нас кстати препод его нелюбил почему то всегда говорил «ну вот зачем написал бы if else».

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

Это нинужно %) Сахарок для if, для кодогенерации нинужно уж точно, только если пишешь на С.

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