Meine spezielle Situation, wenn ich in einer Hauptanwendung eine interpretierte Skriptsprache verwende:
Es gibt ein externes Gerät, das mehrere Funktionen ausführt. Messungen, Kontrolle, Anzeigen. Es ist selbst ziemlich "doof" und erfordert eine präzise Steuerung, die Schritt für Schritt viele Wartezustände und Ad-hoc-Entscheidungen auf der Seite des Steuerungsmechanismus umfasst.
Verschiedene Funktionen des Geräts werden an verschiedenen Stellen der Hauptanwendung zu unterschiedlichen Zeiten benötigt, oft nach Bedarf. Die Haupt-App erlaubt keine Wartezustände als solche, alles muss mit Zustandsautomaten erfolgen.
Wer nun eine Zustandsmaschine geschrieben hat, der weiß, dass das Implementieren eines Wartezustands effektiv mindestens zwei, oft drei oder vier interne Zustände der Maschine ist. Das Implementieren von 20 Wartezuständen für verschiedene Funktionen (und das Warten auf deren Antworten und das entsprechende Reagieren) des externen Geräts wäre eine sehr, sehr frustrierende Erfahrung.
Stattdessen gibt es also Zustände wie "Ausführen einer Nichtwarte-Funktion", "Ausführen einer Blockierfunktion", "Ausführen einer Verzweigungs- / Bedingungs- / Sprungfunktion" in der Zustandsmaschine, möglicherweise insgesamt sechs Zustände. Außerdem gibt es Steuerskripte, deren Ausführung vom Interpreter, der das externe Gerät steuert, geplant und deren Ergebnisse dort abgelegt werden, wo sie benötigt werden.
Zusammenfassend lässt sich sagen, dass die Verwendung einer intern interpretierten Skriptsprache in einem RTOS die Komplexität der Ausführung von Aufgaben, die in Wartezuständen häufig vorkommen (Blockierungsfunktionen), erheblich verringern kann.