Приложение было разработано для курса "Основы программирования" на 1-м курсе Университета ИТМО. Это попытка реализовать нечто похожее на Blueprints в UE4 (визуальное программирование). Приложение предоставляет "холст" на который можно добавлять и связывать между собой ноды. Каждая нода имеет входы, выходы, и некоторую логику (например нода может иметь 2 входа, 1 выход, и реализовывать функцию сложения, т.е. брать значение с 1-го входа, складывать со значением со 2-го и выдавать результат на выход). Сейчас в приложении доступны ноды реализующие основные операции на целыми числами (сложение, вычитание, целочисленное деление), операции над логическими типами (и, или, исключающее или, не). Реализована возможность добавления новых нод через отдельную библиотеку, без имзенения кода приложения.
Реализуем выражение ((4 + 5) - 2) div 3.
Желтые кружки показывают те ноды, которые нужно пересчитать.
После нажатия кнопки Рассчитать
В левой части приложения (в окне Предпросмотр) показаны значения всех выходов выделенной ноды (в нашем случае 2)
Добавим еще одну ноду в приложение. Как видно, пересчитывать значения выходов нужно только на тех нодах, на которых эти значения могли измениться. Так в этом примере, node1 не требует пересчитывания значения своего выхода.