زبان برنامه نویسی
در زندگی روزمره برای برقراری ارتباط با اشخاص از یک زبان مشخص استفاده میکنیم؛ برنامه نویسان در دنیای برنامه نویسی نیز نیازمند زبانی هستند که بتوانند با کامپیوتر ارتباط برقرار کنند.
برنامه نویسی به طور کلی فرایند نوشتن و پیاده سازی کد برنامه ها است. در این فرایند، برنامه نویسان بااستفاده از زبان های مختلف برنامه نویسی خطوط کدی را می نویسند که به صورت دقیق توصیف کننده عملکرد و رفتار برنامه مورد نظرشان میباشد.
انواع زبان های برنامه نویسی
مهم ترین و اصلی ترین تقسیم بندی زبان های برنامه ریزی، تقسیم بندی آنها براساس سطوح برنامه نویسی میباشد، سطوح برنامه نویسی به دو دسته سطح پائین و سطح بالا تقسیم می شوند. البته دسته بندی های دیگر نیز مانند برنامه نویسی شی گرا، برنامه نویسی همه منظوره و برنامه نویسی کاربردی خاص نیز وجود دارند.
زبان سطح پایین (Low Level)
زبانهای سطح بالا (High Level)
زبانهای سطح بالا
زبان های برنامه نویسی سطح بالا شامل:
جاوا
پایتون
روبی
جاوا اسکریپت
زبان های سطح پائین
این زبان امکان کنترل دقیق بر روی سختافزار را فراهم میکنند و به برنامهنویس اجازه میدهند دستورات را مستقیماً به زبان ماشین یا زبان میانی (مانند زبان اسمبلی) تبدیل کند.
زبانهای برنامهنویسی سطح پایین شامل موارد زیر هستند:
زبان اسمبلی
زبان C
زبان مونتاژ
در مواردی که نیاز به بهینهسازی عملکرد و کارایی بالا استفاده میشوند. همچنین، زبانهای سطح پایین برای توسعه درایورها، سیستمعاملها، برنامههای جاسازی شده و برنامههایی که نیاز به کنترل دقیق سختافزار دارند، مناسب هستند.
یک زبان سطح پایین (Low Level Language) و زبان سطح بالا (High Level Languages) چیست؟ منظور از سطح بالا و سطح پایین در این دو عبارت چیست؟
هر زبانی به طور کلی در نهایت به فرمت دوتایی یا Binary تبدیل می شود تا کامپیوتر بتواند آن را درک کند، ممکن است بگویید چرا؟ اگر ما از ابتدا نرم افزار را به صورت باینری بنویسیم از نظر عملکرد و کارایی خیلی بهتر خواهد بود. این سوال خوبی است اینجاست که با پاسخ به این سوال تفاوت بین بان ها از نظر سطح بندی مشخص می شود.
پاسخ فقط به این دلیل است که زبان ماشین یا زبان دودویی برای نوشتن برنامه توسط انسان دشوار است، فقط یک چیز بسیار روشن است که به خطوط کد بسیار زیادی نیاز دارد، بنابراین برای نوشتن یک برنامه بزرگ و پیچیده به این زبان به زمان بسیار بسیار زیادی نیاز خواهید داشت. و حفظ کد و درک آن برای شما مشکل خواهد بود.
کد نویسی خیلی راحت تر و سریع تر با قابلیت های استفاده مجدد و تبدیل روال ها و … در نظر بگیرید کد نوشتن به زبان باینری غیر ممکن است. اما در نهایت به کد باینری تبدیل خواهد شد زیرا مستقیما بتواند اجرا شود.
بنابراین، ما به نوشتن کد با زبانی سطح بالا و نزدیک به زبان انسانی، با استفاده از کلماتی مانند if برای شرط ها و while برای بازگشت و خودتکراری (recursion) و موارد دیگر متوسل می شویم تا برنامه برای انسانها به راحتی توسعه یابد.
بنابراین، یک زبان سطح بالا به این معنی است که هرچه سطح زبان بالاتر باشد، به زبان انسان نزدیکتر است و با دستورات ساده جزئیات زیادی را در کد پنهان می کند و بنابراین کارهای پیچیده را با کد ساده انجام می دهد.
نمونه ای از یک برنامه ساده برای تایپ Hello World در Fortran، یک زبان سطح بالا:
program NewProgramF90
write(,) “Hello World”
end program NewProgramF90
و دقیقا همان برنامه با همان عملکرد، این بار با استفاده از زبان اسمبلی، یک زبان سطح پایین:
global _main
extern _printf
section .text
_main:
push message
call _printf
add esp, 4
ret
message:
db ‘Hello, World’, 10, 0
زبان ماشین
زبان ماشین( Machine Language ) زبانی است که مستقیما در دستگاه ها تفسیر می شود و یک زبان 0، 1 است. زبان ماشین به دلیل پیچیدگی و سختی خواندن و نوشتن آن، برای برنامهنویسان انسانی دشوار است. بنابراین، زبانهای برنامهنویسی سطح بالاتری مانند زبانهای برنامهنویسی سطح بالا (مانند C، C++، Java و Python) ایجاد شدهاند تا برنامهنویسان بتوانند به راحتی با این زبانها برنامههای خود را بنویسند و بعداً به زبان ماشین ترجمه شوند تا توسط سختافزار قابل اجرا باشند. فرایند ترجمه کد از زبان برنامهنویسی سطح بالا به زبان ماشین توسط کامپایلرها و مفسرها صورت میگیرد.
زبانهای اسمبلی
Assembly languages یک زبان واسطه بین زبان ماشین و زبانهای سطح بالاتر. زبانهای اسمبلی، یک سطح بالاتر از زبان ماشین هستند و به صورت مستقیم با سختافزار تعامل دارند. در واقع، هر دستور ماشین در زبان اسمبلی به صورت یک نمایش نزدیک به زبان طبیعی (مثلاً با استفاده از کلمات و نمادهای خاص) توصیف میشود. این نمایش به برنامهنویس انسانی کمک میکند دستورات و عملیات سختافزار را به صورت قابل فهم تری نوشته و درک کند.
زبانهای سیستم
زبان سیستم یا System languages آنهایی هستند که برای نوشتن برنامه های سطح پایین مانند مدیریت حافظه و فرآیند طراحی شده اند. زبانهای سیستم زبانهایی هستند که برای توسعه سیستمهای عامل و نرمافزارهای سیستم استفاده میشوند. این زبانها به طور مستقیم با زبان سطح پایین سیستم عامل و سختافزار تعامل دارند و امکانات قدرتمندی را برای کنترل و مدیریت منابع سیستم فراهم میکنند.
زبان های اسکریپت نویسی
اسکریپت نویسی (Scripting languages) زبانهای سطح بسیار بالایی هستند که برای عملیات پیچیده استفاده می شوند و بسیار قدرتمند هستند. نمونه هایی زیادی از زبان های اسکریپت نویسی در مقالات توضیح داده شده اند.
به طور کلی، زبانهای اسکریپت قابلیت اجرای سریع و تعاملی دارند و برای تسهیل و تسریع فرایندهای ساده و روزمره مانند ایجاد و تغییر فایلها، پردازش متن، مدیریت دادهها، اتصال به پایگاه داده و اجرای فرآیندهای سیستمی استفاده میشوند.
زبانهای خاص دامنه
زبان های خاص یا دامنه(Domain-specific languages) فقط برای مقاصد خاص استفاده می شود.
در برخی موارد، DSLs به صورت مستقل و به عنوان یک زبان برنامهنویسی جداگانه ارائه میشوند، و در موارد دیگر، زبانهای برنامهنویسی اصلی (مانند جاوا، پایتون و غیره) با استفاده از ابزارها و تکنیکهایی قابلیت تعریف و استفاده از DSLs را فراهم میکنند.
زبانهای بصری
زبان برنامه نویسی بصری(Visual languages) مبتنی بر متن نبوده و با استفاده از ابزار و المان های تصویری و بصری انجام میشود. مزیت اصلی زبانهای تصویری در این است که برنامهنویسان بدون نیاز به نوشتن کدهای متنی پیچیده، قادر به برنامهنویسی و اجرای برنامهها هستند. این زبانها برای توسعه برنامههای گرافیکی، نرمافزارهای تعاملی و سیستمهای مبتنی بر رویداد استفاده میشوند.
HTML
HTML یکی دیگر از زبان های برنامه نویسی میباشد؛ HTML مخفف عبارت” Hyper Text Markup Language ” است. برنامه نویسی HTML در کدنویسی صفحات وب مورد استفاده قرار می گیرد. این زبان برنامه نویسی عناصر مختلف وب مانند سرفصل ها و پاراگراف ها را علامت گذاری کرده و مشخص میکند چگونه نمایش داده شوند.
یادگیری برنامه نویسی
برای شروع یادگیری برنامه نویسی ابتدا بهتر است با انواع زبان های برنامه نویسی آشنا شوید که پیش تر به آنها اشاره کردیم؛ شاید برایتان سوال باشد که آیا یادگیری زبان های برنامه نویسی ترتیب مشخصی دارد؟ در پاسخ باید گفت بستگی به اهداف شخصی، علایق، دانش و پیش زمینه شما دارد. اما توصیه ما به افراد مبتدی شروع یادگیری زبان برنامه نویسی ساده ای همچون پایتون، جاوا اسکریپت و جاوا میباشد.
در ادامه به زبان های برنامه نویسی که برای افراد مبتدی مناسب تر هستند را معرفی کرده ایم:
جاوا
زبان برنامه نویسی جاوا که از قدیمی ترین زبان های شی گرا است و از محبوبیت بالائی برخوردار میباشد، آموزش ها و اطلاعات زیادی در این مورد میتوانید دریافت کنید. بطور کلی جاوا یکی از بهترین زبان ها برای شروع یادگیری میباشد.
کاربرد های جاوا:
توسعه وب
برنامه های موبایل
برنامه های دسکتاپ
بانکداری
جاوا اسکریپت
باید گفت جاوا اسکریپت از پرطرفدار ترین زبان های برنامه نویس در جهان است. شرکت های بزرگی مانند گوگل، متا و یوتیوب از جاوا به عنوان بخشی اصلی و جدانشدنی از نرم افزار خود یاد میکنند. علت آن هم این است که برنامه نویسان میتوانند با استفاده از آن درجهت اسکریپت نویسی بازی، سرور، برنامه های وب و برنامه های موبایل استفاده کنند. از دیگر ویژگی های جاوا اسکریپت که این زبان را از دیگر زبان های برنامه نویس متمایز کرده است میتوان به منو های تعاملی، انیمیشن و رنگ پس زمینه ها اشاره کرد.
کاربرد های جاوا اسکریپت:
برنامه نویسی سرور
توسعه وب
ساخت بازی های وب
برنامه های وب و موبایل
پایتون
پایتون از دیگر زبان های برنامه نویسی است که در دنیا بسیار محبوب میباشد. python یک زبان برنامه نویسی با سطح بسیار بالائی است که عموما جهت توسعه وب، علم داده، هوش مصنوعی و اسکریپت نویسی استفاده می شود. python یک زبان برنامه نویسی است که یادگیری آن بسیار راحت میباشد.
کاربرد های پایتون:
توسعه سرور
تجزیه و تحلیل داده ها
اتوماسیون اسکریپت نویسی
برنامه های موبایل
زبان ها برنامه نویسی نقش اساسی در توسعه نرم افزار ها و ساخت ابزار های مختلف دارند، تمام زبان های برنامه نویسی دارای ویژگی ها و مزیت هایی است که انتخاب زبان مناسب بستگی به نوع پروژه و اهداف پروژه دارد.