زبانهای برنامه نویسی کامپیوتر

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

اولین دستگاه قابل برنامه ریزی شناخته شده قبل از اختراع کامپیوتر دیجیتال ، دستگاه پخش خودکار فلوت است که در قرن نهم توسط برادران موسی در بغداد در دوران عصر طلایی اسلام توصیف شده است . از اوایل دهه 1800 ، " برنامه ها " به منظور هدایت رفتار ماشین آلات مانند حلقه های ژاکارد و پیانو پخش شد . هزاران زبان برنامه نویسی متفاوت ایجاد شده است ، عمدتا در زمینه کامپیوتر ، و بسیاری دیگر هنوز هر ساله ایجاد می شوند . بسیاری از زبان های برنامه نویسی نیاز به محاسبات در فرم ضروری ( به عنوان یک دنباله ای از عملیات برای انجام ) مشخص می شود ، در حالی که زبان های دیگر از فرم های دیگری از مشخصات برنامه مانند فرم اعلام شده استفاده می کنند ( یعنی نتیجه دلخواه مشخص شده است ، نه چگونگی دستیابی به آن )

توصیف یک زبان برنامه نویسی معمولا به دو جزء نحو ( فرم ) و معنایی ( معنا ) تقسیم می شود . بعضی از زبان ها با یک سند مشخصات مشخص ( به عنوان مثال، زبان برنامه نویسی C توسط استاندارد ISO مشخص شده است ) ، در حالی که زبان های دیگر ( مانند Perl ) پیاده سازی غالب دارند که به عنوان یک مرجع رفتار می شود . بعضی از زبان ها هم دارای زبان اصلی هستند که توسط یک استاندارد تعریف شده و پسوند هایی از اجرای غالب آن ها ، رایج هست .

یک زبان برنامه نویسی یک نشانه برای نوشتن برنامه هایی است که مشخصات یک محاسبات یا الگوریتم هستند . برخی از نویسندگان ، اما نه همه ، اصطلاح " زبان برنامه نویسی " را محدود به زبان هایی می کنند که می توانند تمام الگوریتم های ممکن را بیان کنند . صفات اغلب برای آنچه که یک زبان برنامه نویسی را مهم می دانند عبارتند از:

عملکرد و هدف

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

انتزاع

    زبان برنامه نویسی معمولا شامل انتزاع ( فرایند اختصار ، فشرده‌سازی ، و تلخیص اطّلاعات از طریق شناسائی ، استخراج و سپس ، جداسازی و پنهان‌سازی جزئیّات از کلیّات است . ) برای تعریف و دستکاری ساختار داده ها و یا کنترل جریان اعداد است . ضرورت عملی که یک زبان برنامه نویسی از انتزاع کافی پشتیبانی می کند ، با اصل انتزاع بیان می شود ؛ این اصل گاهی به عنوان یک توصیه برای برنامه نویس برای استفاده مناسب از چنین انتزاعی ها توصیف می شود .

قدرت بیانگری

    تئوری محاسبات ، زبان ها را با محاسباتی که قادر به بیان هستند طبقه بندی می کند . تمام زبان های کامل تورینگ می توانند همان مجموعه ای از الگوریتم ها را اجرا کنند . ANSI / ISO SQL-92 و Charity نمونه هایی از زبان هایی هستند که تورینگ کامل نیستند ، اما اغلب به عنوان زبان برنامه نویسی نامیده می شوند .

زبان های نشانه گذاری مانند  XML، HTML  یا  troff، که اطلاعات ساختاری را تعریف می کنند ، معمولا زبان های برنامه نویسی در نظر نمی گیرند . با این حال ، زبان برنامه نویسی ممکن است نحو را با زبان های نشانه گذاری به اشتراک بگذارد اگر معانی محاسباتی تعریف شده باشد . برای مثال ، XSLT  یک گواهی کامل XML تورینگ است . علاوه بر این ، LaTeX ، که بیشتر برای ساختن اسناد استفاده می شود ، همچنین شامل زیر مجموعه کامل تورینگ می باشد .

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

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