نشانه‌گذاری لهستانی

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

نشانه‌گذاری لهستانی (به انگلیسی: Polish notation) یا نشانه‌گذاری پیشوندی (به انگلیسی: prefix notation) یک نشانه گذاری برای منطق،علم حساب و ریاضیات است . ویزگی متمایز کننده اش این است که عملگرهارا سمت چپ عمولوندها قرار می دهد اگر تعداد عملوند های یک عملگر مقرر شد نتیجه نحو فاقد پرانتز یا دیگر براکت هایی که میتواند بدون ابهام تجزیه شود. منطق دان لهستانی Łukasiewicz این نشانه گذاری را در سال 1924 برای ساده کردن منطق گزاره ای ابداع کرد.

اصطلاح نشانه گذاری لهستانی برخی اوقات (به عنوان خلاف نشانه گذاری میانوندی ) برای به حساب اوردن نشانه گذاری بسوندی لهستانی یا نشانه گزاری لهستانی برعکس که در ان عملگر بعد از عملوند قرار میگیرد.

هنگامی که نشانه گذاری لهستانی برای نحو استفاده میشود به وسیله ی مفسر زبان های برنامه نویسی به درخت نحو انتزاعی تجزیه میشود و می تواند یک نمایش یک به یک تعریف شود. به همین دلیل Lisp و زبان های برنامه نویسی مرتبط تمام نحوشان را نشان په گذاری پیشوندی تعریف میکنند.

یک نقل قول از Jan Łukasiewicz موجود است: >>به یک ایده از نشانه گذاری بدون پرانتز در سال 1924 دست یافتم ، و آن را برای اولین بار در مقاله ی خود استفاده کردم.

الونزو چرچ در کتاب قدیمی اش در منطق ریاضی به عنوان یک نشانه سزاوار حتی در برابر Whitehead و نشانه گذاری منطقی راسل به این نشانه گذاری اشاره می کند.

حساب[ویرایش]

عبارت برای جمع دو عدد 1و 2 در نشانه گذاری پیشوندی به صورت "2 1 + " به جای "2 + 1 " نوشته می شود در عبارات پیچیده تر عملگر ها همواره پشت عملوند ها قرار دارند اما عملوند ها ممکن است خود عبارات کوچکی باشند که عملگر دارند برای نمونه عبارتی که در نمایش میانوندی مرسوم است به صورت :

(5 − 6) * 7

می تواند به صورت پیشوندی به صورت زیر نوشته شود:

* (− 5 6) 7

از آنجا که عملگرهای محاسباتی ساده به صورت دودویی هستند (عملگر دودویی به عملگری می‌گویند که دو عملوند داشته باشد)، تمام نمایش‌های پیشوندی آن بدون ابهام هستند و می‌توان از قرار دادن پرانتزها صرف نظر کرد. به عنوان مثال، عبارت مثال قبل می‌تواند حتی به صورت ساده‌تر هم نوشته شود:

* − 5 6 7

برای تبدیل عبارات میانوندی به پیشوندی می‌توان از یک پشته کمک گرفت.

برنامه نویسی کامپیوتری[ویرایش]

نشانه گذاری prefix کاربرد گسترده ای در عبارت های علامت دار Lisp دارد. درجایی که پرانتز ها خواسته شده اند هنگامی که عملگر ها خود داده اند!

توابع lisp ممکن است دارای تعداد ارگومان های متغیر باشند.

زبان برنامه نویسی TCL ، همانند Lisp ، از نشانه گذاری لهستانی در کتابخانه ی mathop استفاده میکند پ. زبان برنامه نویسی ambi از نشانه گذازی لهستانی برای اعمال حساب و برنامه سازی استفاده میکند.

نشانه گذاری پسوندی یا نشانه گذاری لهستانی برعکس در برخی از زبان های برنامه نویسی پشته گرا مانند Forth استفاده میشود و قائده ی عملی از نوع خاصی از ریاضیات است.

نحو CoffeeScript همچنین اجازه می دهد که توابع به وسیله ی نشانه گذاری لعستانی صدا زده شوند و همچنین میتواند از نحو پیشوندی تکی که در بقیه زبان ها رایج است استفاده کند.

تعداد مقدار های بازگشتی از یک عبارت هم ارز است با تفاوت تعداد عملگر هاب درون عبارت و تعداد ارگومان های هر عملگر منهای تعداد تمام مقدار های بازگشتی از عملگر ها.

ترتیب عملیات[ویرایش]

ترتیب عملیات درون یک ساختمان نشانه گذاری پیشوندی تعریف میشود و به سادگی می تواند مشخص شود. یک چیز برای به خاطر سپاری این است که وقتی یک عمل اجرا میشود عملگر به وسیله ی عملگر بود بر عملگر اول بکار برده میشود، این موضود راجب عملگر هایی که مبدل اند صادق نیست اما برای عملگر های غیر مبدل مانند تقسیم و ضرب این قانون برای تحلیل و بررسی یک حکم قاطع است برای مثال حکم زیر :


/ 10 5 = 2

که "تقسیم 10 بر 5" خوانده میشود بنابراین پاسخ 2 ا

ست نه 1/2

نشانه گذاری پیشوندی به خصوص با عمل های پشته گرا به توجه به قابلیت درونی برای تمایز ساده ی ترتیب عملیات بدون نیاز ب پرانتز است .


خواندن یک عبارت از چپ به راست ، که ابتدا به دنبال یک عملگر میگردد و در نهایت به دنبال دو عملوند میگردد ، اگر یک اپراتور قبل از این که عملوند ها یاقت شوند پیدا شود عملوند قبلی کنار گذاشته میشود تا هنگامی که این عملگر مصمم شود ، این پردازش تکرار میشود تا هنگامی که عملگر حل شود .

جستارهای وابسته[ویرایش]

منابع[ویرایش]

مشارکت‌کنندگان ویکی‌پدیا، «Polish notation»، ویکی‌پدیای en، دانشنامهٔ آزاد (بازیابی در ۱۴ ژوئیه ۲۰۱۳).