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)
Ответ на: комментарий от anonymous

Добавочка.

Ну поразвлекались ...
Не пора бы аттракцион и закрыть? «Перебор» ведь уже давно.

Владимир

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

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

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

Не поверишь, но за эти 7 тем кто-то её уже вспоминал. (Возможно, даже ты.)

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

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

Рядом, справа от меня, сидит индус

Индиец же. Индус - последователь индуизма. Кстати да, они таки обижаются на это. У меня тож такие коллеги есть.

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

4.2. У меня аватарки отключены, и без них ЛОР выглядит гораздо чище.

Я забыл тег сарказм поставить.

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

Так он и одно, и другое. А непосредственное начальство — так вообще: веганизм, аюрведа, все дела…

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

dissociative identity disorder

Ну не стоит, право! Автор и котечка — два разных человека в разных телах.

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

Ну ok.
Жаль metaprog - достается ему «понекуда».
Откуда у него такая духовная сила?
Ведь семь тредов его «чихвостят» ...

Владимир

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

Это Ник Мэйсон из Pink Floyd, как уже правильно заметил анонимус. Я уже стал забывать о его наличии, поскольку аватарки отключены.

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

Мне его скриншоты напоминают игруху Factorio

Моя любимая.

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

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

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

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

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

Интересно для какого еще рода задач «лапшевидное» программирование будет уместно /скажем разрабатываем API для работы с сетями, 2D, 3D, .../?

Для любых задач любой сложности.

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

А еще есть те, от кого есть толк и кто подсказывает. В основном Котечка, некоторые еще и по мелочи могут подсказать. Так что я считаю, что время зря тут не трачу.

metaprog
() автор топика

А что пример в нарисованным кругом перевернутой строкой, считанной с консоли уже есть на посмотреть? Или лучше до темы этак 50й подождать?

anonymous
()
1. Пример с простым HTTP-сервером.

2. Пример с сортировкой Хоара (quicksort).

3. Простой в пользовании функционал работы со строками (больная тема для Си и С++).

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

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

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

в MFC такое было

Про MFC я в курсе, поэтому и удивился, неужели её кто-то в контексте метапрога решил снекромантить...

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

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

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

Вместо «CString» можно в качестве примера выбрать любой вопрос metaprog.

Владимир

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

Только почему-то на Error 404 выскакивает.

Я бы ещё убрал тег «нетекстовое программирование». Если «визуальное программирование» ещё как-то осмысленно и по нему находятся темы про тот же Дракон, то «нетекстовое» просто дублирует «визуальное» и отдаёт неконструктивом.

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

или наоборот, он осознает сложность разработки, ему это надоест, и он решит пересмотреть подходы...

есть «подвижки»
было

Примеры с кодом на Си генерируются автоматически. Они тут же скармливаются компилятору и не предназначены для чтения эстетами, не любящими «абракадабру».

стало (про тернарный оператор)

Жесть. С иф-елсами гораздо понятнее. Для кодогенерации точно не нужно.

// Как раз кодогенератору/компилятору без разницы

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

А чего ему живым не быть?
Обычный C++ класс.
Исходники его лежат например в WTL.

Владимир

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

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

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

Как раз кодогенератору/компилятору без разницы

Именно по этой причине тернарный оператор не нужен.

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

Сам ты дурак.

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

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

Твои примеры ценности не представляют. Ты даже банальной сортировки не натыкал, чтобы посмотреть, как она будет выглядеть. А будет она выглядеть как говно.

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

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

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

Темы 2 назад кто-то предложил ему накидать сей простой пример вычитать строку с консоли
перевернуть
вывести обратно в консоль

но метапрога жидко нешмогла и слился в демагогию

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

но метапрога жидко нешмогла

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

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

этот клован даже примеры на си пишет вручную

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

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

Похоже этот тред «Живее всех живых».

Владимир

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

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

ойвэй. а что для метапроги есть решаемые задачи?

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

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

вот! может поэтому твои диаграммы никто и не понимает.

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

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

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

Для любых задач любой сложности.

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

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

А схемы в паинте нарисованны %) Метапрогохейтеры смешны.

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