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

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

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

тяжелые нарко и алко зависимости.

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

А он не смеется, а подсказывает. Так и должно быть.

Нет, не должно. Ленивым неисправимым баранам помогать никто не должен. Может быть только за большие деньги.

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

Прекарсно. Скоро 20 страница. Твой вариант пролетает. Кроме петросянства что-то от анонимусов будет?

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

он же написал в др. ЯП. из за простоты использования таких фич в JS макаки суют их куда ни попадя. да регулярки это ладно но у JS макак в моде на этом не останавливаться и подключать как можно больше фреймвёрков и либ которые помогут им съэкономить хоть пару букв. я тоже писал на JS UI посложнее чем в freelancer.com но он не тормозил так как freelancer.com потому что я подключал либ по минимуму. даже при том что был заюзан angular js работало без тормозов. но открываем source в браузере того же freelancer.com и видим тонны обфусцированного говнокода под тяжестью которого загибаются мощные процессоры.

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

это все типы данных которые имеет метапрог? может ли программист создавать новые типы данных, к примеру если нужно производить вычисления с матрицами типа данных Matrix? для создания нового типа данных обязательно нужно будет рисовать к нему пиктограмму?

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

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

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

В Лабвью есть только структура и массив и пиктограммы те плохо подходят для Метапрога.

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

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

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

Тезис «графическое программирование - говно» ты мне так и не доказал. Так что можешь смело идти в жопу.

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

Как на твоей фигне будет выглядеть вот такая конструкция, которая строит матрицу?

matrix = [[j for j in range(5)] for i in range(5)] 

На А4 влезет десятым кеглем?

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

Во-первых, я не англичанин.

А нас рать.

Во вторых - ты даже if от switch не отличаешь?

switch ненужен.

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

Я матрицы не строил, не знаю.

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

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

Лучше всё же иконки нарисовать. В виде тех мест, куда автор любит посылать помощников.

Я, видимо слишком тонко, намекаю что графика не нужна.

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

И на конкурсе пролетаешь.

Чорт, а я так надеялся выиграть.

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

Приз - принятие твоего варианта для Метапрога.

С таким портфолио только в макдак про свободную кассу кричать.

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

приз - всё что задоначено в указанный в первой теме биткойн за 3 месяца

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

Приз - принятие твоего варианта для Метапрога.

Страшный сон любого варианта иконок - оказаться в недоделанном кривом долгострое типа твоей поделки.

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

Как-то творчески переделай, чтоб только черно-белое (на диаграммах буду раскрашивать, но чтоб только 2 цвета).

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

Долгострой? Всего лишь 3 месяца и долгострой? Ты посмотри на Red, который так обожает rebforce: вышел в 2011 и до сих пор за восемь (!) лет не вышел из альфы.

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

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

Отлично. Не принято. Лимит на анонимное петросянство скоро закончится.

Я только ради тебя зарегестрируюсь.

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

а тем временем есть отличный рисовальщик, который отлично подойдет для рисования иконок. http://seoi.net/penint/ вот он. Просто рисуй, там AI сам догадается, что ты хотел и сконвертит.

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

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

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

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

Я думаю, не нужно быть поваром, чтобы понять, что ты родил какашку. За три месяца хотя бы книжку по Си на 200 страниц можно было прочитать, а не рожать несколько тысяч бессмысленных сообщений с околонулевым результатом, за который стыдно. Твои схемы непонятны ни одного человеку (продукт шизика), твои помощники тебя отвергли. Даже если твоя идея хороша и может взлететь, то ты в ней явно лишний.

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