LINUX.ORG.RU
решено ФорумTalks

Выпущен конвертер С в схемы метапрог

 , , , ,


0

1

После трёх лет разработки опубликован выпуск утилиты GNU cflow 1.7, предназначенной для построения наглядного графа вызовов функций в программах на языке Си, который может использоваться для упрощения изучения логики работы приложения. Граф строится только на основе анализа исходных текстов, без необходимости выполнения программы. Поддерживается генерация как прямых, так и обратных графов потоков выполнения, а также генерация списков перекрёстных ссылок для файлов с кодом.

https://www.opennet.ru/opennews/art.shtml?num=56444

★★★★★

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

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

bhfq ★★★★★
()

Чем это отличается от doxygen?

u-235
()

Выпуск примечателен реализацией поддержки формата вывода «dot» (‘–format=dot’) для формирования результата на языке DOT для последующей визуализации в пакете Graphviz.

Пример «схемы» не нашел.

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

А есть какие-нибудь красивые схемы? Как делают визуализацию развития git-репозиториев. Ну или хотя-бы прикрутить свои темы.

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

Много лет назад по сети гулял в качестве прикола jboss-овский stacktrace раз в 10-15 длиннее. Вряд ли с тех пор в JEE2 что-то изменилось.

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

открываешь какой-нибудь си файл линуксовой подсистемы типа udisks2, а там https://github.com/storaged-project/udisks/blob/master/src/udisksstate.c ref ref ref ref ref ref unref unref unref unref unref через каждые 5 строк полезной логики, как-будто паскаль какой-то. А потом еще лет 10 находят утечки и дыры в безопасности, нет бы вон например на rust переползать ей богу.

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

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

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

нет бы вон например на rust переползать ей богу.

Если бы только был язык, почти полностью совместимый с С, предоставляющий зерокост абстракции, в частности умные указатели со счетчиком ссылок, но не требующий переписывать все с нуля…

Siborgium ★★★★★
() автор топика

Скомпилировать - тот еще квест. Бинарники где-то есть?

metaprog
()

Вообще, конечно, ГНУтые утилиты какие-то очень странные в плане компиляции. Обычных библиотечных инклудов им мало, надо еще кучу конфиг-скриптов запускать, в coreutils целый config.h требует, зачем так сложно?

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

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

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

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

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

сделать вывод выходной сишный код читабельным

Это и не нужно если не заниматься дебаггингом кодогенератора.

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

На расте тоже не разрабатывается (предлагали переписать на расте).

metaprog
()
$ cflow ./image.c
main() <int main () at ./image.c:23>:
    nkc_init()
    nkc_load_image_file()
    nkc_set_main_loop()
    mainLoop() <void mainLoop (void *loopArg) at ./image.c:7>:
        nkc_get_ctx()
        nkc_poll_events()
        nkc_stop_main_loop()
        nk_begin()
        nk_rect()
        nk_layout_row_static()
        nk_button_image()
        nk_end()
        nkc_render()
        nk_rgb()
    nkc_shutdown()

А где графика?!

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

Это и не нужно если не заниматься дебаггингом кодогенератора.

И дебаггингом программы.

На расте тоже не разрабатывается (предлагали переписать на расте).

Очень временно. И https://www.opennet.ru/opennews/art.shtml?num=55521, https://www.opennet.ru/opennews/art.shtml?num=54792.

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

Да-да, шмурдяк. Успокаивай себя этим, глупый клоун.

Где там твой метапрог? Три года прошло, побежал оправдываться.

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

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

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

Продолжай. Какое третье слово в твоем словарном запасе?

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