  Noncommutative rational functions appeared in many contexts in system theory
and control, from the theory of finite automata and formal languages to robust
control and LMIs. We survey the construction of noncommutative rational
functions, their realization theory and some of their applications. We also
develop a difference-differential calculus as a tool for further analysis.
