Moja szczególna sytuacja, gdy korzystam z interpretowanego języka skryptowego w dużej aplikacji:
Istnieje urządzenie zewnętrzne, które wykonuje kilka funkcji. Pomiary, kontrola, odczyty. Sam jest dość „głupi” i wymaga precyzyjnej kontroli krok po kroku, w tym wielu stanów oczekiwania i doraźnego podejmowania decyzji po stronie mechanizmu kontroli.
Różne funkcje urządzenia są wymagane w różnych punktach głównej aplikacji, w różnych momentach, często na żądanie. Główna aplikacja nie dopuszcza stanów oczekiwania jako takich, wszystko musi być zrobione za pomocą skończonych maszyn stanu.
Teraz, kto napisał maszynę skończonego stanu, wie, że realizacja stanu oczekiwania ma efektywnie co najmniej dwa, często trzy lub cztery wewnętrzne stany maszyny. Wdrożenie dwudziestu stanów oczekiwania dla różnych funkcji (i oczekiwanie na ich reakcje i odpowiednie reagowanie) urządzenia zewnętrznego byłoby bardzo, bardzo frustrującym doświadczeniem.
Zatem zamiast tego istnieją stany: „wykonuj funkcję bez czekania”, „wykonaj funkcję blokującą”, „wykonaj funkcję rozgałęzienia / warunkowego / skoku” w maszynie stanów skończonych, może łącznie sześć stanów. Istnieją skrypty sterujące, które są planowane do wykonania, a następnie wykonywane przez interpretera sterującego urządzeniem zewnętrznym, a ich wyniki są umieszczane tam, gdzie są wymagane.
Podsumowując, aplikacja: w RTOS użycie wewnętrznego interpretowanego języka skryptowego może ogromnie zmniejszyć złożoność wykonywania zadań obficie występujących w stanach oczekiwania (funkcje blokujące).