LINUX.ORG.RU

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

 , , ,


3

6

Не нравится - проходите мимо. Нравится - помогайте проекту.

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

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

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

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

Чисто технические. По Си, библиотекам итп. А поучать не по делу - «не учите меня жить, лучше помогите материально».

Примеры

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

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

Собственная метапроговская функция

Метапрог не только умеет вызывать сишные функции, но на нем можно и свои делать. Функция для открытия слушателя (listener) на нужном адресе и порте и ее схема:

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

Зеленые линии - особенные. Они задают жесткую последовательность выполнения. Сначала bind и только потом уж listen. Сначала listen - и только потом уж сокет можно передать дальнейшим функциям (например, accept).

У функции есть своя пиктограмма.

Открытие окошка

Этот пример открывает окно. Там же есть асинхронный вызов (на завершение):

https://i.postimg.cc/zGhHKQNv/image.png

Инициализация (отдельная функция, инлайнится еще на уровне метапрога в главную диаграмму):

https://i.postimg.cc/JnpsRVN6/image.png

Асинхронная функция на завершение:

https://i.postimg.cc/WpfdKVbt/image.png

Все это генерирует такой код (опять же - не для эстетов, а для скармливания gcc):

https://pastebin.com/T3Bu5Qy6



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

Как тут модераторов кастануть? Автор - тролль, и котечка - его клон.

anonymous
()

Альтернативные площадки, вали туда.

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

No need to learn C or C++, you can stick to your favorite programming language

Мне как раз нужны сишные интерфейсы, так что лучше уж сишные библиотеки.

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

Внес ТС-а в игрнор за засорение трекера по тегу c. Модераторы, забаньте этого пиарщика уже.

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

Как психолух тебе пишу - тред уныл, не туда ты внимание направил. Лучше с детей начинай. Как им удобнее строить «будущее» в программировании. По реализации - ГОВНО.

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

Тут и прочитав полную версию не все понимают!

А вас с раздвоением личности попробуй пойми.

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

А также собираю команду разработчиков.

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

4.1, 4.2, 4.3, 5.4.

Ещё предлагаю почистить предыдущие темы на предмет 5.1, 5.2, 5.3, 5.4.

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

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

1С: Второе пришествие бухалтерии. Теперь без кода!

anonymous
()

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

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

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

А вы тут... блоки мышкой таскаете.

anonymous
()

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

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

Лябда исчесление выдумали только чтобы было на чем диссер защитить. Оно НЕ НУЖНО и нигде НЕ ИСПОЛЬЗУЕТЬСЯ. Поэтому ваш аргумент это пук в лужу. Впрочим как и всегда со стороны так называемых программистов. Вы просто боитесь за свое место

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

Да как вы смеете?! Мои любимые лябда вычисления используются в ядре, в браузерах, в движке лора!!! Во всем!!! Стоп, как не используется, не может этого быть, ведь они есть в хескеле!!! На хескеле же написанно много программ, квиксорт в строчку например!!!

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

Ради квиксорта в строчку уже можно было придумать лямбда-исчисление.

Алсо, в джаваскрипте ЛОРа есть лямбды :)

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

Очевидно, что не нужен. Вообще ничего не нужно кроме C и metaprog, причём когда metaprog будет написан сам на себе и компилироваться в себя, от C мы тоже избавимся!

P.S. в движке ЛОРа тоже есть лямбды. Я удивлён!

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

P.S. в движке ЛОРа тоже есть лямбды. Я удивлён!

Ну это скалисты притащили!

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

Ради квиксорта в строчку уже можно было придумать лямбда-исчисление.

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

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

Нет, с современным GHC это - настоящий логарифмический квиксорт! Оверхеда почти нет, по времени разница с квиксортом на C почти константная.

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

Ну молодцы, жаль только код на Haskell по читаемости хуже Perl %) Я думал с расширениями переписать на С, но не понял что там происходит.

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

Ради квиксорта в строчку уже можно было придумать лямбда-исчисление.

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

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

Проблема Project Euler (который мне кидали) в том, что мне необходимо сначала врубиться в сам алгоритм, а с заумными абстракциями, как уже говорилось выше, я дружу плохо)))

Но не думаю, что это помешает мне сделать Метапрог!

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

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

1. Если отсортировать пустой список, получится пустой список.
2. Сортировка списка (x:xs) с первым элементом x и оставшейся частью xs: сначала отсортируем все элементы xs, меньшие x, потом добавим x, прибавляем в отсортированном виде все элементы xs, большие x.
balsoft ★★
()
Ответ на: комментарий от metaprog

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

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

На форуме писаться хватает, на книгу Линуса хватило. Но на Гегеля или Достоевского уже вряд ли хватит)))

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

Алсо, жду Манакера на лабвью или метапроге. После этого с меня манакер на Хаскеле. Для сравнения, так сказать.

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

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

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

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

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

https://i.postimg.cc/wj9jcdgz/quicksort.png

Меряется размер массива, если он равен 1 или 0 - просто проходитна выход (проводок на другой поддиаграмме).

Если 2 и больше - размер нацело делится на 2 (чуток пришлось прочитать хелп, чтоб понять суть), удаляется элемент (фактически посередине) и потом цикл. Если что больше него - во второй массив, меньше - в первый. Дальше 2 массива подаются на рекурсию и после нее складываются.

Благодарю Лабвью и копирастов из NI, что я понял идею квиксорта:)

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

Что другое? Для того, чтобы язык или проект «использовал» лямбда-исчисление, достаточно трёх вещей:

  1. Наличие переменных и выражений, содержащих переменные) - есть в C++
  2. Наличие лямбда-функции (т.е. возможности из выражения с переменной получить функцию, при аргумент которой подставляется вместо переменной) - есть в C++
  3. Наличие аппликации - применения функции к переменной - есть в C++

Все три вещи используются в chromium, поэтому там используется лямбда-исчисление.

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

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

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

Что другое?

Да это я так слился. Ну я проблем не вижу в лябдачислениях и схемах все равно!

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

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

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

И это по-вашему куча? Видели б вы мои исходники!

https://postimg.cc/xqbqZWBN

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

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

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

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

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

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

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

Почитайте про interaction nets, это лямбда-исчисления на диаграммах. Не уверен, что станет понятнее, но если вы так хорошо понимаете картинки…

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