Czy znasz wszystkie generatory kodu stanu maszyny w stanie otwartym, które będą działać na Linuksie? Idealnie narzędzie wyprowadzałoby całą logikę maszyny stanów i kody pośredniczące. Ponadto akceptowałby UML lub pliki manifestu czytelne dla człowieka jako dane wejściowe.Generator maszyn stanu C++
Odpowiedz
Najbliższa rzecz, którą widziałem, może ci się przydać to StateProto. Ale generuje kod C#.
Powinieneś sprawdzić StateProto i QHSM. Projekt open source jest dostępny tutaj: http://code.google.com/p/gqhsm/
StateProto jest open source, a funkcje wyjściowe mogą być modyfikowane, aby wyprowadzić dla ciebie kod C++. Ale korzysta z delegatów.
Zalecam użycie zamiast tego projektu opartego na danych. StateProto wyprowadzi maszyny stanu XML i jest kod C# do załadowania XML i przeniesienia maszyny stanu z danych.
Możesz znaleźć wiele implementacji QHSM w języku C++. Nie wiem, czy są dostępne jakiekolwiek ładowarki XML.
Być może moje ramy STTCL są interesujące. Nie jest to generator, ale dostępne klasy (bazowe) bardzo dobrze odwzorowują definicje statystyk UML.
http://makulik.github.com/sttcl/
Spójrz na open source QP/C++ ramach machiny państwowej i darmowe narzędzie do modelowania QM (patrz http://www.state-machine.com). Środowisko QP/C++ obsługuje hierarchiczne maszyny stanów (tabele UML) i pozwala na równoczesne wykonywanie wielu takich maszyn stanów. QP/C++ został przeniesiony do systemu Linux (patrz http://www.state-machine.com/linux).
Teraz, jeśli chodzi o generator kodu, narzędzie do modelowania darmo QM (patrz http://www.state-machine.com/qm) pozwala rysować diagramy stanów maszynowych i generowania kodu C++ dla ram QP/C++. Sam QM jest wieloplatformowy i działa na systemie Linux, a także Windows i Mac OS X.
Zobacz na Thingml. Zapewnia tekstową składnię (niezależną od C) dla maszyn typu UML-podobnych. Coś jak:
import "../hardware/bricks/led.thingml"
thing Blink includes LedMsgs, TimerMsgs
{
required port HW
{
sends led_toggle, timer_start
receives timer_timeout
}
statechart BlinkImpl init Blinking
{
state Blinking
{
on entry HW!timer_start (1000)
transition -> Blinking
event HW?timer_timeout
action HW!led_toggle()
}
}
}
ThingML może generować kod C, które mogą być łatwo osadzony w programach C++. W rzeczywistości może wygenerować więcej niż stubs. Możemy rzeczywiście wygenerować pełny kod operationl. Oczywiście, jeśli chodzi o szczegóły implementacji niskiego poziomu, zapewniamy środek do mieszania kodu ThingML z kodem C.
Zauważ, że my również kierować Java i JavaScript
Należy przyjrzeć Yakindu: http://statecharts.org/
- 1. Implementacja maszyn stanu płynnego
- 2. Jak rejestrować przejścia stanu w statnie (biblioteka maszyn stanu .NET)
- 3. Biblioteka maszyn stanu bezstanowego - właściwy sposób na strukturę?
- 4. Dźwięki maszyn w języku C#
- 5. Generator kodu C#
- 6. Generator API C#
- 7. Biblioteka maszyn wektorowych wsparcia dla C#
- 8. RELAX NG C++ Generator kodów?
- 9. Podświetlanie składni C++ generator html
- 10. Generator dokumentacji dla Objective-C?
- 11. CUpewnij generator wyrażenie różnicować C/C++ kod
- 12. javascript ken generator generator liczb
- 13. Jak mogę zaimplementować generator w C++?
- 14. Objective-C Sudzc Generator WSDL Alternative
- 15. Generator kodu C++ ze specyfikacji XML
- 16. Generator analizatora składni dla Celu C?
- 17. Serializacja Javascript typów maszyn
- 18. Projektowanie maszyny stanu w C++
- 19. Generator HTML?
- 20. PowerShell uzyska listę maszyn sieciowych
- 21. Scala Support Vector Biblioteka maszyn
- 22. Generator reguł przepisywania?
- 23. Zapisywanie stanu stanu Primefaces
- 24. Generator kodu Pythona
- 25. Pustka * używana do utrzymywania stanu ... (programowanie C)
- 26. Wykrywanie stanu sieci (połączone - rozłączone) w C#
- 27. Przekształcanie drzewa stanu C++ Phoenix Expression
- 28. rekurencyjne generator permutacji dla znaków
- 29. Różnica między `yield z $ generator` i` return $ generator`?
- 30. generator liczb losowych między 0 - 1000 w C#
Pan spojrzał na [Boost.MSM] (http://www.boost.org/libs/ msm /)? Ma EDSL, który ma naśladować UML i ma doskonałą wydajność runtime. – ildjarn
lex i yacc zdecydowanie generują maszyny stanów, i g ++:) – perreal
Proponuję [SMC] (http://smc.sourceforge.net/), ale nie obsługuje UML. – tinman