زبان برنامهنویسی: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
با فرض حسن نیت ویرایش Fuawd (بحث) خنثیسازی شد: درود. (توینکل) برچسب: خنثیسازی |
FreshmanBot (بحث | مشارکتها) جز اصلاح فاصله مجازی + اصلاح نویسه با ویرایشگر خودکار فارسی |
||
خط ۳۹:
ویژگیهایی که غالباً برای تشکیل یک زبان برنامهنویسی مهم شمرده میشوند:
* تابع :یک زبان برنامهنویسی، زبانی است که برای نوشتن برنامههای رایانهای به کار میرود که رایانهای را برای انجام محاسبات یا اجرای الگوریتم یا احتمالاً کنترل دستگاههای خارجی مثل چاپگر، ربات و… درگیر میکنند.
* هدف: زبانهای برنامهنویسی با [[زبانهای طبیعی]] تفاوت دارند و آن اینکه زبانهای طبیعی فقط برای فعل و انفعالات بین مردم به کار میروند، در حالیکه زبانهای برنامهنویسی همچنین به انسانها اجازه میدهد که از طریق دستورهای با ماشینها ارتباط برقرار کنند. برخی زبانهای برنامهنویسی
* ساختارها: زبانهای برنامهنویسی ممکن است ساختارهایی برای تعریف و تغییر [[داده ساختارها]] یا کنترل جریان اجرا داشته باشند.
* توان بیانگر: [[نظریه محاسبات]]، زبانها را
برخی مؤلفین اصطلاح «زبان برنامهنویسی» را محدود به آنهایی میکنند که میتوانند تمام الگوریتمهای ممکن را پیادهسازی کنند، گاهی اوقات اصطلاح «زبان رایانه» برای زبانهای برنامهنویسی محدودتر به کار میرود.
زبانهای غیر محاسباتی، مانند زبانهای مارک آپ(markup) HTML یا گرامرهای قراردادی مثل BNF، معمولاً زبان برنامهنویسی محسوب نمیشوند. یک زبان برنامهنویسی (که میتواند کامل تورینگ نباشد) ممکن است در این زبانهای غیر محاسباتی (میزبان) تعبیه شوند.
خط ۶۲:
== المانها ==
تمام زبانهای برنامهنویسی تعدادی بلوکهای ابتدایی برای توضیح داده و پردازش یا تبدیل آنها (مانند جمع کردن دو عدد با انتخاب یک عضو از یک مجموعه) دارند. این «عناصر ابتدایی»
=== دستور(syntax) ===
خط ۶۸:
دستور یک زبان ترکیبات ممکن سمبلها برای ایجاد یک برنامهٔ درست را از نظر دستوری مشخص میکند. معنایی که به یک ترکیب سمبلها داده میشود با معناشناسی اداره میشود (قراردادی یا نوشته شده در پیادهسازی منبع). از آنجا که اغلب زبانها متنی هستند، این مقاله دستور متنی را مورد بحث قرار میدهد.
[[دستور زبان]] برنامهنویسی معمولاً
expression ::= atom | list
خط ۹۸:
complex abs_p = sqrt (p->real * p->real + p->im * p->im);
گرامر مورد نیاز برای مشخص کردن یک زبان برنامهنویسی میتواند با جایگاهش در «سلسله مراتب چامسکی» طبقهبندی شود. دستور اغلب زبانهای برنامهنویسی میتواند
=== معناشناسی ایستا ===
معناشناسی ایستا محدودیتهایی بر روی ساختار مجاز متنها تعیین میکند که بیان آنها در فرمول دستوری استاندارد مشکل یا غیرممکن است.
=== سیستم نوعگذاری ===
یک سیستم نوعگذاری مشخص میکند که یک زبان برنامهنویسی چگونه مقادیر و عبارات را در نوع(type) دستهبندی میکند، چگونه میتواند آن نوعها را تغییر دهد و رفتار متقابل آنها چگونهاست. این کار عموماً توضیح داده ساختارهایی که میتوانند در آن زبان ایجاد شوند را شامل میشود. طراحی و مطالعه سیستمهای نوعگذاری
==== زبانهای نوعگذاری شده و بدون نوعگذاری ====
خط ۱۴۶:
== عمل ==
طراحان زبان و کاربران باید مصنوعاتی ایجاد کنند تا برنامهنویسی را در عمل ممکن سازند و کنترل کنند.
=== خصوصیات ===
|