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

Ноп. Пожалуй, я останусь. Интересно, что вы тут еще выдумаете. Каждый раз все чудесатее и чудесатее.

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

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

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

Сегодня было окошко, оно же работающий цикл с хвостами.

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

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

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

И никаких проблем с алгоритмами

Ты пару тем назад не знал чем while{} от do{}while отличается (я и сейчас не уверен, что ты это понимаешь) о каких алгоритмах ты говоришь? О сортировке пузырьком?

Потому что в их существовании почему-то заинтересованы влиятельные и богатые

Нет, если упоротые и идейные. Я с парочкой таких учился. Ты их очень напоминаешь.

А вот в существовании Метапрога, кардинально меняющего правила игры в ИТ-индустрии

в метапроге нет никакой новой идеи, поэтому поменять он ничего не может.

Я считаю, что если уж пишешь в этой теме - то изволь помогать проекту.

Тебе невозможно помочь. Ибо ты выбираешь только те ответы, которые в твоё SJW сознание укладываются.

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

Я это уже писал в первых тредах!

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

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

Я использую функции из стандартной панели Лабвью. Почти все - элементарщина типа арифметики, массивов, строк, файлов, TCP/IP.

Ты пару тем назад не знал чем while{} от do{}while отличается (я и сейчас не уверен, что ты это понимаешь)

Ты меня недооцениваешь. Я знаю разницу между циклом с пред- и постусловием. Просто в Лабвью их нет, там только два вида циклов: for (фиксированное количество проходов или по элементам массива) и while (по сути do{}while, предусловие можно реализовать с Case Structure, аналогом if+else).

Нет, если упоротые и идейные. Я с парочкой таких учился. Ты их очень напоминаешь.

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

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

в метапроге нет никакой новой идеи, поэтому поменять он ничего не может.

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

Тебе невозможно помочь. Ибо ты выбираешь только те ответы, которые в твоё SJW сознание укладываются.

У Котечки получается.

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

элементарщина типа ... TCP/IP

Особенно TCP/IP

Ты меня недооцениваешь

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

а идейного Метапрога

Ты просто не нужен.

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

линуксовые драйвера

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

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

Ты меня недооцениваешь.

Конечно, конечно. Список от массива чем отличается ты когда узнал? И узнал ли?

По крайней мере, я смогу программировать в графике линуксовые драйвера

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

У Котечки получается.

Потому что он все делает за тебя (ищет инфу и проблемы, пишет примеры), а ты как этого не знал и не умел, так и не узнаешь.

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

Ты не способен натыкать в лабвью ни один базовый алгоритм

Здрасьте, а сколько лабвьюшных примеров я сделал и выложил?

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

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

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

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

Какое - такое? Графическую среду, или ту фигню, нарисованную на диаграмме?

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

Давай лучше определимся

Нет.

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

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

rebforcer уже несколько вечеров подряд делает, сколько же месяцев уйдет у тебя?

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

Давай лучше определимся

Нет.

Сразу видно гуманитария, все на чувствах, все на эмоциях!

Сделаю редактор за пару дней!
Юмор такой потому что сердце чувствует!
Да я самый лучший!!! Не могу оценить metaprog но это примитив!!!

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

Ололо!

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

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

На луркморг, часть 2.

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

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

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

Эффект Даннинга-Крюгера во все поля

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

Петухи, понты, деградант тюремный, общаться научись.

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

на питоне за день реализуешь

Соседние цифры обменять? За день? Ты издеваешься, что ли?

>>> a = 12345678
>>> s = str(a); int(''.join(b + a for a, b in zip(s[::2], s[1::2])))
'21436587'
>>> 

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

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

Оно просто скопипастило слово в слово мою фразу, обращённую к нему самому.

rebforce
()
Ответ на: Ололо! от rebforce

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

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

Полегче там! Мне сейчас нельзя громко смеяться!

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