LINUX.ORG.RU

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

 , , ,

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

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

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

А биткоин кошелек на метапроге есть уже? Я с ним никогда не имел дело, думаю, что не осилю обычный. Другое дело — на метапроге

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

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

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

Но какого черта общаться в тексте с машиной, которая понимает только фиксированные команды?

Но какого черта общаться графикой с машиной, которая понимает только фиксированные команды?

fixed

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

А какие где типы данных в interaction nets?

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

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

И каким, интересно, цветом будут нарисованы данные вот такого типа (a -> f b) -> t a -> f (t b)?

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

Нет, укажет на ошибку. А если где-то палочку дорисовать забыл — скомпилируется и будет работать неправильно?

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

И каким, интересно, цветом будут нарисованы данные вот такого типа (a -> f b) -> t a -> f (t b)?

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

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

Меня вообще удивляет и ужасает отсутствие в 2019 году универсальных графических (полностью исключающих текстовый код) сред программирования

На твоих скриншотах, кстати, текста предостаточно.

Laz ★★★★ ()

14 варнингов по типу

test.c:33:6: warning: incompatible pointer types initializing 'struct (anonymous struct at test.c:20:1) *' with an expression of type 'GtkWidget *' (aka 'struct _GtkWidget *') [-Wincompatible-pointer-types]
} *  metaprog_instance_1408056545511792641_junction_3644609089020270593 = gtk_window_new(metaprog_instance_1408056545511792641__variable_5923075890728034305);
     ^                                                                    

Э не, брат. Думаю, миллион не дам. Только 100 тыщ

deadplace ()

Метапрог трахается с компом. Варфоломей трахается с метапрогом.

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

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

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

Нет, не скомпилиться и покажет где не подсоединено что. Лабвью тоже так работает.

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

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

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

Значит — никакой разницы с забытой скобочкой. Там тоже компилятор покажет, где она забыта (предположительно).

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

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

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

Только в графике (Лабвью и Метапроге) скобки вообще ставить не надо в принципе.

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

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

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

Жизнь без скобок — полное говно. ( о )

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

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

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

Laz ★★★★ ()

Вопрос ТСу

Сколько времени ты потратил на ЛОР, вместо того, чтобы пилить метапрог?

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

Ты прикидываешься валенком что ли? Ты скриншот скинул, полный палочек и квадратиков

deadplace ()
Ответ на: Вопрос ТСу от deadplace

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

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

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

Революция в том, что все делаешь мышкой. Что типы разных цветов. Отрыв от английского! И много чего еще.

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

То есть разводить флуд — это разработка метапрога? Ну ок.

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

Флуд тут разводишь ты. По-хорошему тебя надо бы послать, но ты забавный.

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

Флудерастия — неотъемлемая часть мета программирования. При этом плучаются мета программы.

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

При этом ещё учти, что:

1) автор настолько не любит текст, что даже внутреннее представление графических диаграмм хочет сделать двоичным. Готов ради этого даже разработать собственную VCS;

2) автор не хочет делать сколько-нибудь внятное текстовое описание своего языка и внутреннего устройства диаграмм. Заверяет, что всё это заменят интерактивные обучалки;

3) автор не видит ничего страшного в том, что его нагенерированный сишный код имеет обфусцированный вид и при сборке выдаёт кучу предупреждений. Правда, по последнему пункту смягчился и допускает, что «когда-нибудь» сделает структуры неаонимными, что, по его словам, должно предупреждения убрать.

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

Я тебе тоже подскажу. Вот когда ты в «традиционных ЯП» пишешь a = foo(b,c), то вызываешь функцию foo, результат присваиваешь a, так?

А ты сделай такой синтаксис: a <- {0.5 => foo(b,c); 0.1 => bar(c,d)}; (ну или графически)

Это значит: с вероятностью 0.5 a будет равно foo(b,c), а с вероятностью 0.1 bar(c,d).

Прикинь, сколько возможностей (принципиально новых!) появится для описания недетерминированных процессов. Ведь в природе почти все процессы недетерминированные, остальное — тлен.

Благодари

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

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

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

Ооо, большое ЧСВ. А с маленьким ЧСВ можно программировать на metaprog?

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

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

Допустим, я под функцией \x -> x + 1 поставлю подпись decrement. Правильно я понимаю, что пользователя моей библиотеки эта подпись не введёт в заблуждение, и он с одного взгляда на картинку поймёт, что делает моя функция?

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

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

Комиксы напишет) Хотя там тоже текст

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

из-за идиотского ограничения на одну звезду

Кстати, странно, что звезды до сих пор нет.

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

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

Тс-ссс...

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

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

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

Вопрос ТСу

Ты скажи, как тебе моя идея с недетерминированным подходом. Ответь! Я так хочу быть тебя достойным! И миллион зашлю. Потом

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

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

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

Уже говорилось про то, чтобы взять goto, но поняли, что сломаются оптимизации. Так что пока беру do...while

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

т.е. за столько времени ты циклы так и не осилил. лол

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

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

ossa ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)