سلام. pda این ماشین میتونه به این شکل کار کنه:
در حالت ۱ به ازای هر a که از ورودی دریافت میکنه یه a توی پشته پوش میکنه و در حالت ۱ میمونه (برای راحتی کار به ازای اولین a حرف c پوش میکنیم. یعنی بالای z0 یه c داریم.).
هروقت b دید از حالت ۱ به حالت ۲ میره و یه a پاپ میکنه. اگه روی پشتمون c بود به حالت ۳ میریم.
در حالت ۲ اگه b ورودیمون بود و روی پشته a بود اون a رو از پشته خط میزنیم و در ۲ میمونیم.
در حالت ۲ اگه b ورودیمون بود و روی پشته c بود c رو از پشته خط میزنیم و به ۳ میریم.
در حالت ۲ اگه b ورودیمون بود و روی پشته $ بود همون $ رو اضافه میکنیم و در ۲ میمونیم.
در حالت ۳ اگه b ورودیمون بود با پشته کاری نداریم و به ۲ میریم.( مسلماً روی پشته z0 هست و با خوندن b مقدار m از n بیشتر میشه)
حالت شروع حالت ۱ و حالت پایان حالت ۲ و اگه مقدار m بتونه صفر بشه حالت ۱ هم جزء جوابه.
هرزبان که بشه با PDA پذیرفت میشه برای یه گرامر مستقل از متن نوشت. گرامر این زبان:
S->aSb|A|B
A->aA|a
B->Bb|b