زبان برنامه نویسی چیست ؟
معمولاً وقتی افراد به این درک میرسند که برنامه نویسی چیست ، سعی میکنند درک بهتری نیز در مورد مهمترین مفهوم بعدی دنیای برنامهنویسی، یعنی انواع زبان های برنامه نویسی پیدا کنند. یک زبان برنامه نویسی مجموعهای از قوانین است که رشتهها (یا در زبانهای برنامه نویسی بصری یا Visual، اجزای گرافیکی) را به کدهای ماشین تبدیل میکند تا عملیات مورد نظر در ماشین اجرا شوند. به بیان دقیقتر، زبان برنامه نویسی نوعی نظام نشانهگذاری نوشتاری (یا گرافیکی) است که برای ارتباط میان انسان و ماشین استفاده میشود. زبانهای برنامه نویسی نوعی «زبان کامپیوتری» (Computer Language) به حساب میآیند و در «برنامه نویسی کامپیوتری» برای پیادهسازی الگوریتمها مورد استفاده قرار میگیرند.
در زبانهای برنامه نویسی دستورالعملهایی برای هدایت کامپیوترها تعریف شده است. ماشینهای قابل برنامه نویسی هم وجود دارند که به جای «زبانهای برنامه نویسی عمومی» (General Programming Language) از مجموعهای از دستورالعملهای خاص استفاده میکنند. در زمانهای بسیار دور، از برنامهها برای هدایت رفتار دستگاههایی مثل ماشین بافندگی ژاکارد، جعبههای موسیقی و پیانولا استفاده میشد. اما برنامههای تعبیه شده در این ماشینها (مثل طومارهای یک پیانولا)، ثابت بودند و امکان تولید رفتار متفاوت در پاسخ به ورودیهای متفاوت یا وضعیتهای مختلف در آنها وجود نداشت.
تاکنون هزاران زبان برنامه نویسی ایجاد شده است و همه ساله زبانهای برنامه نویسی جدیدی هم در حال ساخته شدن هستند. بسیاری از زبانهای برنامه نویسی به صورت دستوری یا «Imperative» (یعنی به عنوان دنبالهای از عملیاتی برای اجرا) نوشته میشوند. در حالی که، زبانهای برنامه نویسی دیگری هم هستند که از حالت «اعلانی» (Declarative) استفاده میکنند. حالت اعلانی یعنی شرایطی که در آن نحوه رسیدن به نتیجه تعیین نمیشود، بلکه نتیجه مورد انتظار مشخص میشود. «مشخصههای» (اصول | Specification) یک زبان برنامه نویسی معمولاً به دو جزء تقسیم میشوند:
- «سینتکس» (نحو | Syntax)
- معناشناسی (معنا و مفهوم | Semantics)
این دو جزء معمولاً تشکیل دهنده یک «زبان رسمی» (Formal Language) هستند. برخی از زبانها به وسیله یک «سند مشخصات» تعریف میشوند. برای مثال، مشخصههای زبان برنامه نویسی C به وسیله یک استاندارد ISO تعیین شدهاند. این در حالی است که سایر زبانهایی مثل Perl دارای سیستم اجرایی غالب و برتر هستند و به عنوان زبان مرجع با آنها رفتار میشود. برخی از زبانهای برنامه نویسی هر دو ویژگی را با هم دارند؛ یعنی این رویه رایج است که اصول پایه زبان در برخی از زبانهای برنامه نویسی به وسیله یک استاندارد معین تعریف میشوند و بخشهای اضافه (افزونهها) از یک سیستم اجرایی غالب برداشته میشوند.
زمینه «نظریه زبانهای برنامه نویسی» (Programming Language Theory) زیر مجموعهای از حوزه علوم کامپیوتر به حساب میآید. در این حوزه به موارد زیر در خصوص زبانهای برنامه نویسی پرداخته میشود:
- طراحی (Design)
- سیستم اجرایی زبانهای برنامه نویسی (پیادهسازی | Implementation)
- تجزیه و تحلیل (Analysis)
- تعیین مشخصات و مولفهها (Characterization)
- طبقهبندی (Classification)