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

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

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

Обратить цвета в битмапе подойдёт? wink-wink

*Другой аноним.

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

Легко! Пусть нарисует круг с заданной координатой центра и диаметром используя только точку и не используя всякие api для рисования кругов.

пусть для рисования точки есть некий draw_dot(x, y).

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

мозгов нужно попросить у волшебника изумрудного города. Он на столько же реален, как и метапрога

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

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

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

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

Надо именно в консоль? Тоже мне, бином Ньютона.

(ns org.metaprog.noob (:require ["clojure.string" :as string]))
(def rl
  (.createInterface
    (js/require "readline")
    #js{:input js/process.stdin, :output js/process.stdout}))
(.question rl "? "
  (fn [r] (prn (string/join (reverse r))) (.close rl)))
rebforce
()
Ответ на: комментарий от rebforce

reverse r

Сие чит. Суть в том, чтоб такое не пользовать. Но даже и с таким читом метамартышка ниасилит.

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

бабы Ликсуси

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

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

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

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

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

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

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

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

какой то извращённый лиспосинтаксис. и это ты называешь «меньше кода как говорил грязный билл». на C и то короче а главное понятнее. с текстовыми ЯП щас извращаются и пытаются выпендриться хотя всё уже давно изобретено что реально удобно в использовании (ситуация аналогичная извращениям в сфере десктопа win xp -> win 10 и gnome 2 -> говноgnome 3).

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

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

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

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

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

Ты спрашивал, подтверждения каким твоим заявлениям нужны. Вот, пожалуйста:

Возможности развития текстовых языков уже давно исчерпаны

Аргументируй, долдон. Почему исчерпаны?

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

Point taken. ;)

Кстати, на реализацию формулы http://mathworld.wolfram.com/Apple.html на метапроге глянул бы. Просто чтоб знать куда пойти. Ещё желательно чтоб сама диаграмма была в таком виде.

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

а есть такая чтоб взять безмозглового метапрога и получить с мозгом? добавь в свою метапрогу, свотри я даже реализовал ее!!!111 за какие-то 600$ я тебе продам исходники на лабвью.

вот пруфскрин. https://i.imgur.com/6Yxm2d3.png

anonymous
()

Сколабься с автором https://flprog.ru/ Правда боюсь он также пошлет тебя книжки читать.

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

А к моим текущим задачам именно из лиспов близки именно ClojureScript и PicoLisp. Но по интеропу с JS-рантаймом пиколисп, увы и ах, находится в том месте, куда ТС всех адекватных посылает. А вот эта штука поперспективнее будет.

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

Сегодня мысль такая пришла. По поводу «делает чисто ради доната».

Если бы тема появилась в начале 2010-х и он, опять же, выложил бы адрес биткоин кошелька для донатов. И если бы не тратил их, а дождался бы начала 2018 - был бы эпичный цирк. Подачка «на тебе пара виртуальных монет-биточоков, которые ничего не стоят» превратилась бы в те самые $10 000, а то и больше.

Как бы у него выросло ЧСВ и ФГМ! Вместо посылания в жопу были бы «раз такой умный, почему такой бедный?», от мысли «я заработал тысячи долларов на метапроге» он бы совсем двинулся! Юный богач, который фигачит протоколы на тайпдефах, задолбался бы пилить метапрог и заявил бы «даю N тысяч долларов за разработку метапрога».

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

Были бы вопли «мир не справедлив!», «такой тупой, а стал долларовым миллионером», «уже поздно покупать биток, он упал меньше 6 тысяч» (хотя уже вырос). ТСу бы завидовали «нихуя не знает, а такой богатый!». Хотя мог бы всё потерять на первой же клофелинщице.

И да, многие (и я в том числе) уверены, что биток в будущем перескачет $100 000, было бы у меня хоть немного лишних денег, по приколу закинул бы $10-100 при публичной клятве не тратить их около 5 лет (можно же проверять: скинул куда-то деньги или нет). Но я сейчас сам остро в них нуждаюсь, так что не сейчас. Так что есть ненулевая вероятность увидеть этот «цирк несправедливости».

Можете скринить пост.

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

да только ты заюзал готовую ф-ю вместо того что бы продемонстрировать её реализацию. с самим лиспом не знаком но немного тыкал haskell. к примеру на нём это реализуется как то так:

reverse' [] = []
reverse' s = (last s) : (reverse' (init s))
iluha16
()
Ответ на: комментарий от metaprog

это лиспосинтаксис. вместо function(arguments) пишется (function arguments). изврат конечно.

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

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

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

превратилась бы в те самые $10 000

я заработал тысячи долларов на метапроге

такой тупой, а стал долларовым миллионером

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

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

заюзал готовую ф-ю вместо того что бы продемонстрировать её реализацию

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

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

но если марштрут составляет 10 км ты же не полетишь на самолёте

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

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

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

iluha16
()

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

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

сел куда? для самолёта эта дистанция настолько ничтожно мала что он даже не успеет набрать высоту. к тому же ему нужен аэродром для взлёта и посадки а их на каждом углу не построишь так что придётся на/с аэродром(а) ехать на чём то другом скорее всего больше чем 10 км.

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

СНГ не СНГ (за полтора месяца я такого в Далласе с пригородами тоже не наблюдал), но проблема в том, что на 10 км это просто экономически нецелесообразно. Плюс хоть какой-то аэродром в точке назначения должен тоже быть. Плюс ещё 100500 нюансов.

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

В Україні вже ніч. Нужно спать и набираться сил. Вот так вот, малята.

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

Цесна не успеет набрать высоту?

Аэродромы и их количество от развития авиации зависят. Шереметьево для одномоторного не нужно: в Австралии на кушери перед фермой садятся.

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

на 10 км это просто экономически нецелесообразно

10 км высокоскоростного шоссе, горных хребтов, непроходимых джунглей, разбитых дорог?

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