I don’t understand. To me, Control Flow
seems to be related to if
statements, etc. in programming languages, see, e.g., Control flow - Wikipedia .
Package ControlSystems.jl has nothing to do with this! Instead, ControlSystems.jl deals with (Mathematical) Systems Theory. Norbert Wiener, professor of mathematics at MIT, proposed the scientific field of Cybernetics in his 1948 book “Cybernetics, or control and communication in the animal and the machine”, http://www.allen-riley.com/utopia/cybernetics.pdf . Initially, the word “cybernetics” related mainly to feedback control systems, but is also found in words such as cyborg, cyberspace, cyber-physical systems, etc. Important contributions used in the field stems from people like Nyquist (stability theory), Lyapunov (stability theory), Bellman and Pontryagin (optimal control theory), Rudolf Kalman (state estimators, linear control, etc., etc.), game theory, and since the 1970s many mathematicians in fields such as Differential Algebra and Differential Geometry, etc.
So the theoretical content of the field is mathematics, but it is a field with engineering applications in most fields. (The ideas are even used in family therapy…).
Anyway, “Control Flow” sounds wrong. Essentially, the field deals with “Dynamic Systems” where the systems have external inputs that can be manipulated to change the behavior of the systems to what is desired.
Package “ControlSystems.jl” in its current version deals with analysis of linear dynamic systems with inputs and outputs (e.g., stability, concepts such as controllability and observability) and synthesis (how to design stabilizing feedback controllers, etc.).
To successfully work with “ControlSystems”, one needs tools such as:
- Tools for modeling dynamic systems (including neural networks),
- Differential equation solvers,
- Optimization code,
- Symbolic computing,
- Automatic differentiation (a la Forward/Reverse Differentiation, Zygote, etc., etc.)
- Plotting
- etc.
Perhaps a subgroup named “Dynamic Systems” could be ok…