اما دو تا حالت معروف دیگه هم برای نوشتن عملیاتهای ریاضی داریم: Polish Notation و Reverse Polish Notation. حالت دوم در واقع همون اولی هست، فقط برعکس شده تا کامپیوترها راحتتر باهاش کار کنن و توی این پست میخوام یکم دربارهاش توضیح بدم.
تو حالت RPN نوشتن عبارات به این صورته که اول عملوندها رو مینویسیم و پشت سرشون عملگر رو قرار میدیم؛ یعنی اینطوری:
x y +
توی این حالت دیگه نیازی به پرانتز نداریم تا اولویت عملیاتها مشخص بشه و به طرز چشمگیری برای کامپیوترها روش سریع و بهینهای حساب میشه. مثلاً فرض کنید میخوایم عبارت
2 * (1 + 5) رو به صورت RPN بنویسیم که میشه: 5 1 + 2 *
کامپیوتر میاد از چپ شروع میکنه به خوندن. اول 5 رو میبینه و میندازه توی استک، بعدش میرسه به 1 و اونو هم میندازه توی استک. بعد میرسه به یه + که یه عملگره؛ اینجا میاد دو تا آیتم آخر استک رو برمیداره، جمعشون میکنه و نتیجه رو برمیگردونه توی استک. بعدش میرسه به 2 و اونو هم میندازه تو استک. در نهایت میرسه به عملگر * و روی دو تا آیتم آخر عملیات ضرب رو انجام میده و نتیجه نهایی به دست میاد.
از این روش توی جاهای مهم زیادی استفاده شده. برای مثال زبان Script بیتکوین برای تایید تراکنشها دقیقاً از همین منطق stack و RPN استفاده میکنه تا بدون نیاز به کامپایلرهای سنگین یا کدهای پیچیده، با بالاترین سرعت و امنیت روی نودها اجرا بشه.
@CleverDevs - @CleverDevsGp