क्या आप किसी भी ओपनसोर्स स्टेट मशीन सी ++ कोड जेनरेटर (जो लिनक्स पर काम करेंगे) के बारे में जानते हैं? आदर्श रूप से उपकरण सभी राज्य मशीन तर्क और स्टब्स आउटपुट करेगा। इसके अलावा यह इनपुट के रूप में यूएमएल या मानव पठनीय मेनिफेस्ट फाइलों को स्वीकार करेगा।सी ++ राज्य मशीन जेनरेटर
उत्तर
मैंने देखा है कि सबसे नज़दीकी चीज जो आपके लिए काम कर सकती है वह राज्यप्रोटो है। लेकिन यह सी # कोड आउटपुट करता है।
आपको स्टेटप्रोटो और क्यूएचएसएम देखना चाहिए। ओपन सोर्स प्रोजेक्ट यहां है: http://code.google.com/p/gqhsm/
स्टेटप्रोटो ओपन सोर्स है और आउटपुट फ़ंक्शंस आपके लिए आउटपुट C++ कोड में संशोधित किया जा सकता है। लेकिन यह प्रतिनिधियों का उपयोग करता है।
मैं अनुशंसा करता हूं कि आप इसके बजाय डेटा संचालित डिज़ाइन का उपयोग करें। स्टेटप्रोटो एक्सएमएल स्टेट मशीनों का उत्पादन करेगा और एक्सएमएल लोड करने के लिए सी # कोड होगा और डेटा मशीन को डेटा से ड्राइव करेगा।
आप सी ++ में बहुत सारे क्यूएचएसएम कार्यान्वयन पा सकते हैं। मुझे नहीं पता कि किसी के पास एक्सएमएल लोडर उपलब्ध हैं या नहीं।
आपको मेरा एसटीटीसीएल ढांचा दिलचस्प लगेगा। यह जनरेटर नहीं है, लेकिन उपलब्ध (आधार) कक्षाएं यूएमएल स्टेटचार्ट परिभाषाओं के लिए बहुत अच्छी तरह से मानचित्र हैं।
http://makulik.github.com/sttcl/
खुला स्रोत QP/C++ राज्य मशीन ढांचे पर एक नज़र और QM मॉडलिंग उपकरण (http://www.state-machine.com देखें) ले लो। क्यूपी/सी ++ ढांचा पदानुक्रमित राज्य मशीनों (यूएमएल स्टेटचार्ट्स) का समर्थन करता है और आपको एक साथ कई ऐसी राज्य मशीनों को निष्पादित करने की अनुमति देता है। क्यूपी/सी ++ को लिनक्स पर पोर्ट किया गया है (http://www.state-machine.com/linux देखें)।
अब कोड जनरेटर के बारे में, मुफ्त क्यूएम मॉडलिंग टूल (http://www.state-machine.com/qm देखें) आपको राज्य मशीन आरेख तैयार करने और क्यूपी/सी ++ ढांचे के लिए सी ++ कोड उत्पन्न करने की अनुमति देता है। क्यूएम स्वयं क्रॉस-प्लेटफार्म है और लिनक्स पर चलता है, साथ ही विंडोज और मैक ओएस एक्स
Thingml पर एक नज़र डालें। यह यूएमएल जैसी राज्य मशीनों के लिए एक पाठ वाक्यविन्यास (सी से स्वतंत्र) प्रदान करता है। कुछ ऐसा:
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()
}
}
}
थिंगएमएल सी कोड उत्पन्न कर सकता है जिसे आसानी से सी ++ प्रोग्राम में एम्बेड किया जा सकता है। यह वास्तव में स्टब्स से अधिक उत्पन्न कर सकते हैं। हम वास्तव में पूरी तरह से ऑपरेशन कोड उत्पन्न कर सकते हैं। बेशक, जब निम्न स्तर के कार्यान्वयन के विवरण की बात आती है, तो हम सी कोड के साथ थिंगएमएल कोड को मिश्रण करने का मतलब प्रदान करते हैं।
ध्यान दें कि हम भी लक्षित करते जावा और जावास्क्रिप्ट
आप एक बार देख Yakindu पर ले जाना चाहिए: http://statecharts.org/
- 1. परिष्कृत राज्य मशीन कंपाइलर
- 2. एएएसएम राज्य मशीन
- 3. परिष्कृत राज्य मशीन: खराब डिजाइन?
- 4. क्या एक परिमित राज्य मशीन में "नेस्टेड" परिमित राज्य मशीन होनी चाहिए?
- 5. क्या सी # में सीमित राज्य मशीन शामिल हैं?
- 6. गतिशील राज्य मशीन? क्या राज्य मशीनों को कक्षाएं होनी चाहिए?
- 7. राज्य मशीन, मॉडल सत्यापन और RSpec
- 8. परिष्कृत राज्य मशीन पैटर्न - एक सच पैटर्न?
- 9. सी #/.NET लेक्सर जेनरेटर
- 10. घटना-संचालित परिमित राज्य मशीन + धागे: कैसे करें?
- 11. सी ++ एक्सएमएल स्कीमा कोड जेनरेटर
- 12. सी ++ psudo यादृच्छिक संख्या जेनरेटर
- 13. सी ++/जीसीसी/लिनक्स में निरंतरता/कोरआउट/जेनरेटर
- 14. सी ++ के लिए कौन सी राज्य मशीन निष्पादन ढांचे यूएमएल semantics लागू?
- 15. जेनरेटर
- 16. जेनरेटर
- 17. कोड में सत्य सारणी? राज्य मशीन की संरचना कैसे करें?
- 18. जावा - जेपीए - जेनरेटर - @ सिकेंस जेनरेटर
- 19. एमएस डब्ल्यूएफ राज्य मशीन वर्कफ़्लो और एमएस सीआरएम डायनेमिक्स 4.0
- 20. rubyist-AASM (राज्य मशीन के रूप में कार्य करता है)
- 21. GUI एक परिमित राज्य मशीन के रूप में
- 22. क्या मार्कोव चेन एक सीमित राज्य मशीन के समान है?
- 23. सी ++ मशीन लर्निंग फ्रेमवर्क
- 24. सी वर्चुअल मशीन
- 25. LGPL मशीन लर्निंग - सी ++
- 26. पायथन जेनरेटर -
- 27. राज्य मशीनें और एकाधिक राज्य
- 28. एरलांग और सी/सी ++ एकीकरण राज्य?
- 29. क्रैपी रैंडम नंबर जेनरेटर
- 30. मशीन
आप [Boost.MSM] को देखा है (http://www.boost.org/libs/ MSM /)? इसमें यूएमएल की नकल करने के लिए एक ईडीएसएल है और इसमें शानदार रनटाइम प्रदर्शन है। – ildjarn
लेक्स और वाईएसी निश्चित रूप से राज्य मशीनें उत्पन्न करते हैं, और जी ++:) – perreal
मैं सुझाव दूंगा [एसएमसी] (http://smc.sourceforge.net/) लेकिन यह यूएमएल का समर्थन नहीं करता है। – tinman