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)

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

Как же я на Лабвью программировал, не зная что такое функциональное программирование?

Судя по всему никак.

ФП - парадигма программирования, в котором выполнение алгоритма сводится к вычислению функций в математическом понимании.

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

Так бы сразу и сказал.

Чем такой подход от Си отличается?

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

да не, тс не тролль на самом то деле (а анонимусы пусть и толстят, но все равно пока радуют)

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

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

Кстати да, он пока не отметился в этих тредах.

@tailgunner , ты ли это? Если нет, то прекрати страдания всех в этом треде.

тс не тролль на самом то деле

Сомневаюсь

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

tailgunner в отпуске, он бы наверно прибил это веселье давно. И правильно бы сделал.

К тому же у него личная неприязнь к любителям cat-v.org :D

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

enum из разных типов, с ума сойти! Но лучше все же мои структуры условного выбора типа.

Чем лучше-то?

~~@~~

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

Читать алгебраические типы, зависимые типы.

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

ты бы попробовал тому же токарю вместо инструкции к новому станку подсунуть свои весёлые картинки

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

Задача программиста - объяснить машине, что нужно делать. Оптимальный способ для этого - текст. Прогаммист может написать текст, машина может распарсить текст. Да, человеку иногда удобнее представлять информацию в картинках. Поэтому тот, кто хочет объяснить программисту, что должна делать программа, дополняет текстовое описание картинками, диаграммами в UML и прочими блок-схемами. Если токарю дать чертёж, то он выточит деталь на станке. А если _программисту_ ЧПУ дать чертёж, то он составит программу G-code для станка ЧПУ, и станок выточит деталь.

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

я страдаю. У меня голова от фейспалмов болит и глаза от вида этих схем и ШГ вытекают.

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

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

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

https://postimg.cc/8JXwp6GC

Которой можно оперировать сразу, без парсера.

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

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

Машина понимает только машинный код

Машина понимает и оперирует только электрическим полем. Давай диаграммы сразу в электроны переводить!

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

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

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

Практически в каждом из приведенный вами продуктов в том или ином смысле используется функциональное программирование. В Офисе есть функции - открыть документ, сохранить документ и множество других. Это семейство функций определенных над абстракцией документа. Эти функции можно выполнять в любом порядке - это свойство называется композицией. Таким образом, весь опен оффис суть создан с помощью функционального программирования. Вот тут хорошо описана суть визуального программирования, к которому вы так стремитесь. http://thatsmathematics.com/mathgen/paper.php?nameType[1]=custom&customNa...

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

www.linux.org.ru/search.jsp?q=harmful.cat-v.org&range=ALL&interval=AL...

www.linux.org.ru/search.jsp?q=cat-v.org&range=ALL&interval=ALL&us...

cat-v - секта. У них есть здравые мысли и кое-какой софт, но в целом тот, кто активно на это ссылается, как правило безграмотный непризнанный гений.

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

Что я должен был понять из этих «ну вы поняли»?

что это код, написанный непонятными людьми непонятно когда, 90% которого - бетаверсии

вот если бы вы пример коммерческих продуктов приличных фирм привели, тогда бы да

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

третьи и пятые кеды в релизе не сегфолтились, а 4-ка - сегфолтилась. вывод: С++ защищает от сегфолтов, но не идеально, кому надо - защитится. ЧТД.

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

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

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

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

неа, 100500 постов пивас-студии тому пруф

и потом тестятся кучей людей

это функциональное тестирование, у него другие задачи

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

У него задачи выявить ошибки разного рода, в том числе и сегфолты.

А что, пивас-студия уже начала тестить закрытое и проприетарное коммерческое ПО?

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

Защита самих плюсов от сегфолтов - разве что удобство использования RAII, который тем не менее не обязательно использовать и он тоже не 100% гарантирует их отсутствие.

100% ни один язык не гарантирует: подключил либу, а там нет нужного символа/он не такой, какой надо - вот тебе и сегфолт

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

А что, пивас-студия уже начала тестить закрытое и проприетарное коммерческое ПО?

Ага. Насчёт закрытого не помню, а вот насчёт проприетарного - тот же Unreal Engine они тестировали.

У него задачи выявить ошибки разного рода, в том числе и сегфолты.

да. и им мало кто пользуется.

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

Ну если накладывать такие условия, то да. В остальных случаях для проприетарного ПО (и большей части свободного) динамическая линковка - это зло.

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

а апдейты как делать? поменял одну строку - обновляй все 100 метров целиком у каждого пользователя? весь бинарник должен грузиться в память полностью, даже если некоторые его части пользователь никогда не потребует?

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

Если софт на сто метров - да, нужно разбивать. Когда 5кб бинарь + 3мб библиотек линкуют динамически - у меня из глазок кровушка капает.

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

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

Кстати да, он пока не отметился в этих тредах.

tailgunner , ты ли это?

Нет.

Если нет, то прекрати страдания всех в этом треде.

ТС клоун и тролль, но формально правил не нарушает, а кормите его вы добровольно.

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

Нет

Спасибо. У меня чуть больше веры в адекватность ЛОРа.

Ну формально сообщения с картинками нарушают 4.8, ещё 4.2 очень часто, а 4.3 тут вообще во всех тредах, 5.4 скорее всего (Я не модератор, и не мне судить; просто предположения)

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

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

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

Раст вообще никак не спасает от утечек

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

Больше не слушай этих людей - они тебе врали.

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

4.8 - цитирование исходников не на русском допускается.

5.4? Когда уже 2500 сообщений и темы растут как на дрожжах?))

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

Картинка - не исходник, а сгенерированный из исходной диаграммы файл.

Ну и ещё

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

5.8 - да, когда три участника и два анонима.

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

Да что уж там, метапрог-архив! Архив на диаграммах, сжатие за счёт записи сишной метапроговой структуры в файл.

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

Можно в числе пи хранить данные вообще!

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

Конечно радио не изобретают. Эта мартышка слишком тупа для радио.

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

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

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

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

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