Abstract:
Praca opisuje projekt oraz implementację języka specjalizowanego (ang.
Domain Specific Language, DSL) przeznaczonego do tworzenia oprogramowania w
oparciu o koncepcję maszyn stanowych do użycia w urządzeniach przemysłowych.
Główne założenia dotyczące języka to:
• język “klasyczny”, tj. oparty o pliki tekstowe
• prosta składnia służąca do specyfikacji maszyny stanów
• statyczna kontrola typów
• rezultatem kompilacji jest kod w języku C lub innym, wybranym przez
użytkownika
• wygenerowany kod nie powinien zależeć od jakichkolwiek bibliotek
zewnętrznych, w idealnej sytuacji także od tych, które należą do biblioteki
standardowej języka wyjściowego
• możliwość automatycznego przedstawienia powstałej maszyny stanów w
postaci graficznej, co pozwala na łatwiejsze zrozumienie zdefiniowanego
procesu
Wszystkie założenia zostały zrealizowane, przy czym generowany jest
jedynie kod w języku C. Dodatkowo zbadano także wydajność różnych
implementacji mechanizmu realizującego zmianę stanu maszyny w odpowiedzi
na przychodzący sygnał. Rozwiązanie zostało użyte z sukcesem w projekcie
komercyjnym realizowanym przez autora.