شبه‌کد

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

شبه‌کد (به انگلیسی: pseudocode)روشی سریع، فشرده و غیر رسمی برای توضیح یک الگوریتم کامپیوتری است که از ساختارهای معمول بعضی از زبانهای برنامه نویسی استفاده می‌کند که برای خوانده شدن توسط انسان و نه ماشین طراحی شده است. شبه کد معمولاً فاقد جزئیاتی است که انسان بتواند بدون آنها الگوریتم را بفهمد مثل تعریف متغیرها، کدهای وابسته به سیستم (سیستم‌عاملهای مختلف یا غیره) و زیرروالها. در شبه کدها معمولاً برای راحتی از زبان محاوره معمولی یا علامتهای ریاضی نیز استفاه می‌کنند. هدف از استفاه از شبه کد این است که فهم آن ساده تر از زبانهای برنامه نویسی است.

کاربرد[ویرایش]

کتاب‌های درسی و منتشرات علمی مربوط به کامپیوتر و محاسبات عددی غالباً از شبه کد برای بیان الگوریتم‌ها استفاده می‌کنند، تا برنامه نویسان آن‌ها را بفهمند، حتی اگر آنها تمام آن زبان برنامه نویسی را بلد نباشند. در کتاب‌های درسی، معمولاً بخشی برای معرفی قراردادها و توضیح ویژگی کدها و سبک کد نویسی وجود دارد تا خواننده بتواند منظور نویسنده را به سادگی متوجه شود و در طول مطالعه کتاب مشکلی با کدهای نوشته شده در کتاب نداشته باشد. میزان جزئیات این زبان‌ها ممکن است در برخی موارد به زبان‌های همه منظوره رسمی نزدیک باشد –برای مثال، کتاب مرجع کنوت " هنر برنامه نویسی کامپیوتر" الگوریتم‌ها را در زبان اسمبلی کاملاً صریح که برای ریزپدازنده ناموجود است نوشته شده است.
برنامه نویسی که می خواهد الگوریتم مشخصی را پیاده کند، مخصوصا الگوریتمی که با آن آشنایی ندارد، غالباً با توضیح شبه کد آن شروع خواهد کرد، و سپس آن شرح را به سادگی به زبان برنامه نویسی هدف ترجمه خواهد کرد و سپس آن را تغییر خواهد داد تا به درستی با سایر قسمت‌های برنامه هماهنگی داشته باشد. برنامه نویسان ممکن است همچنین یک پروژه را با بیان کلیات آن به صورت شبه کد و بر روی کاغذ شروع کنند و سپس آن را به زبان واقعی بنویسند، به عنوان یک روش حل ساختاری بالا به پایین.

گرامر[ویرایش]

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

مثال‌ها[ویرایش]

<variable> = <expression>

if <condition>
    do stuff
else
    do other stuff

while <condition>
    do stuff

for <variable> from <first value> to <last value> by <step>
    do stuff with variable

function <function name>(<arguments>)
    do stuff with arguments
    return something

<function name>(<arguments>)    // Function call

برای دیدن مثال‌های بیشتر می‌توانی به مقالات با مثال‌های شبه کد مراجعه کنید.

شبه کد ریاضی گونه[ویرایش]

در محاسبات عددی، شبه کد غالباً شامل نماد گذاری ریاضی است، نوعاً از مجموعه وتئوری ماتریس، ترکیب شده با یک زبان قراردادی، و شاید توضیحات زبان طبیعی. این یک نماد گذاری فشرده و غالباً غیر رسمی است که تعداد زیادی از ریاضی آموختگان می‌توانند آن را متوجه شوند، و یک روش بسیار متداول است برای بیان الگورتم‌های ریاضی.
معمولاً حروف چینی غیر اسکی برای معادلات ریاضی مورد استفاده قرار می‌گیرد، برای مثال به وسیله Tex و یا MathML و یا ویرایشگران فرمول اختصاصی.
شبه کدهای ریاضی گاهی اوقات کد دست وپا شکسته(pidgin) نامیده می‌شوند، برای مثال pidgin ALGOL ، pidgin fortran، pidgin basic، pidgin pascal، pidgin C، pidgin Ada.

کامپایل ماشین یا تفسیر[ویرایش]

غالباً پیشنهاد می‌شود که زبان‌های برنامه نویسی آینده بیشتر از زبان‌های متداول امروز به زبان طبیعی و زبان انسان نزدیک باشند؛ نکته اینجاست که با رو به افزایش بودن سرعت کامپیوترها و پیشرفت‌های حاصل در زمینه کامپایل کردن به کامپیوترها این اجازه را خواهد داد که از توضیح الگوریتم‌ها برنامه را ایجاد کنند، به جای اینکه نیاز داشته باشند تا انسان تمام جزئیات را پیاده کند.
دستور زبان طبیعی در زبان‌های برنامه نویسی
تلاش‌های گسترده برای وارد کردن دستور زبان طبیعی به زبان‌های برنامه نویسی منجر به ایجاد زبان‌های برنامه نویسی از قبیل HyperTalk، Lingo، AppleScript، SQL و Inform شده است. در این زبان ها، پرانتزها و کاراکترهای خاص با حروف اضافه جایگزین شده اند تا کد به زبان طبیعی نزدیک تر باشد. این کار باعث می‌شود که انسانی که با زبان آشنایی ندارد متوجه کد شود و حتی یک زبان را نیز بیاموزد. در هر حال، شباهت به زبان طبیعی بیشتر جنبه زیبایی دارد تا اصالت. قواعد گرامری دقیقاً مانند زبان‌های برنامه نویسی قراردادی محض و رسمی هستند، و لزوماً نوشتن برنامه‌ها را آسان تر نمی‌کنند.

زبان‌های برنامه نویسی ریاضی[ویرایش]

یک جایگزین برای استفاده شبه کد ریاضی (شامل نظریه مجموعه‌ها و عملیات ماتریسی) برای مستند سازی الگوریتم‌ها استفاده از یک زبان برنامه نویسی ریاضی وار است که از ترکیبی از نمادگذاری ریاضی غیر اسکی و ساختارهای کنترل برنامه باشد. سپس کد می‌تواند توسط ماشین تجزیه و تفسیر شود.
چند زبان‌های خصوصیات رسمی نماد گذاری نظریه مجموعه‌ها را با کمک کاراکترهای ویژه شامل می‌شوند. برای مثال:
نماد گذاری Z
VDM-SLVienna (Development Method Specification Language)

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

این صفحه ترجمه کامل صفحه انگیسی ویکی‌پدیا می‌باشد