با پیشرفتهتر شدن تکنولوژی و ورود کامپیوتر به عرصههای مختلف زندگی، زبان های برنامه نویسیزبان های برنامه نویسی چیست؟این مقاله عالی توضیح داده که زبان های برنامه نویسی چیست؟ و انواع زبان های برنامه نویسی و بهترین زبان برنامه نویسی برای شروع و پردرآمدترین آنها را معرفی کرده مختلفی ساخته شدهاند که رویکرد و اهداف آنها با یکدیگر تفاوت دارد. زبانهای برنامه نویسی را میتوان از جنبههای مختلفی با یکدیگر بررسی و مقایسه کرد؛ یکی از این جنبهها، سطوح زبان های برنامه نویسی است که بسیار موردتوجه جامعه کامپیوتری قرار گرفته است. هر زبانی در یک یا دو تا از این سطحها قرار گرفتهاند و هر سطح، ویژگیهای مخصوص به خودش را دارد. در ابتدای این مقاله به طور خلاصه به سطوح مختلف برنامه نویسی، مزایا، معایب و ویژگیهای هر سطح میپردازیم و سپس زبانهای معروف و مهم هر سطح را بررسی میکنیم.
سطوح مختلف برنامه نویسی
تاکنون سطح بندی های مختلفی برای زبان های برنامه نویسی شکلگرفته است. در بعضی از این بخشبندیها تنها 3 سطح از زبان مدنظر است، زبان های برنامهنویسی سطح بالا، زبان های برنامه نویسی سطح پایینزبان های برنامه نویسی سطح پایین – انواع زبان های سطح پاییناین مقاله عالی به توضیح زبان برنامه نویسی سطح پایین و بررسی ویژگی ها و انواع زبان های سطح پایین و هدف از یادگیری زبان های برنامه نوسی سطح پایین میپردازد و زبان های ماشین. در بعضی دیگر، زبان های میانی یا Mid-Level هم جزئی از این سطوح هستند درحالیکه در خیلی از متون مخالف واژه سطح میانی هستند. بههرحال برای دستهبندی سطوح مختلف برنامه نویسی رویکردهای مختلفی وجود دارد.
در اینجا میخواهیم سطوح زبان های برنامه نویسی را به 5 بخش تقسیم کنیم که شامل موارد زیر است:
- زبان های سطح بالا
- زبان های سطح میانی
- زبان های سطح پایین
- زبان اسمبلی
- زبان ماشین
در ادامه در مورد هر کدام از سطوح بحث خواهیم کرد و انواع زبان های مختلف برنامه نویسی در آن سطح را معرفی میکنیم.
زبان های سطح بالا
زبان های سطح بالا یا High-Level Language از میزان انتزاع بالاتری برخوردارند و تمامی کارهای سطح پایین و تعاملات با سیستم عاملسیستم عامل چیست به زبان ساده، چرا باید از OS استفاده کنیم؟این مقاله عالی به معرفی سیستم عامل (Operating System|OS) به زبان ساده پرداخته، همچنین بررسی کرده که چرا باید از سیستم عامل استفاده کنیم و سخت افزارسخت افزار چیست - بررسی اجزای اصلی سخت افزار کامپیوتردر این صفحه بررسی شده که سخت افزار چیست و سخت افزار کامپیوتر به زبان ساده معرفی شده است، همچنین به بررسی اجزای اصلی سخت افزار کامپیوتر پرداخته شده است در خود زبان وجود دارد؛ بنابراین برنامه نویس نیازی ندارد تا مستقیماً در کار سختافزار و سیستمعامل دخالتی کند؛ بهعنوانمثال مدیریت حافظه در اکثر این زبانها بهوسیله سیستم Garbage CollectionGarbage Collection(GC) چیست و چگونه کار میکند؟این مقاله عالی بررسی کرده که Garbage Collection(GC) چیست و چگونه کار میکند؟ و مزایای Garbage Collection و انواع روش های Garbage Collection را معرفی کرده که در خود زبان تعبیه شده است انجام میشود.
مزایای زبان های سطح بالا:
- ساده هستند و کدهای نوشته شده بسیار شبیه به زبان انگلیسی است.
- تمرکز اصلی برنامه نویسبرنامه نویسی کامپیوتر چیست و چطور می توانید یک برنامه نویس موفق شوید؟در عصر فعلی برنامهنویسی یکی از پرطرفدارترین شغلهای دنیاست، دغدغهای افرادی که میخواهند در مسیر برنامهنویس شدن قدم بردارند این است که نمیدانند از کجا باید شروع کنند، در این صفحه هر آن چه برای تبدیل شدن به یک برنامه نویس حرفه ای نیاز دارید در اختیارتان قرار گرفته است بر روی ساخت برنامه است و نیازی نیست نگران مباحث پیچیده سختافزاری و حافظهحافظه در کامپیوتر، همه چیز در مورد حافظه در معماری کامپیوتردر این مقاله به بررسی کامل حافظه در کامپیوتر، انواع حافظه در کامپیوتر، کش، روشهای آدرس دهی کش، نگاشت آدرس و موارد دیگر میپردازیمای باشند.
- اشکال زدایی (Debugging)دیباگ چیست؟ معرفی روشها و ابزارهای دیباگینگ(اشکال زدایی)این مقاله عالی مفاهیم دیباگ (debug)، دیباگینگ (Debugging) یا همان اشکال زدایی، دیباگر (Debugger) را معرفی و همچنین روشها و ابزارهای دیباگینگ را بررسی کرده در این زبانها و یافتن باگمعنی باگ چیست | باگ یعنی چه؟ | انواع باگ های نرم افزاریاین مقاله عالی به توضیح معنی باگ (bug)، معرفی انواع باگ های نرم افزاری، توضیح آنکه چگونه از پدید آمدن باگ جلوگیری کنیم؟ و در نهایت نحوه رفع باگ پرداخته در آنها بسیار سرراستتر است.
معایب زبان های سطح بالا
- باتوجهبه اینکه کامپیوترکامپیوتر چیست؟ ⚡️ کامپیوتر چیست به زبان سادهاین مقاله عالی توضیح داده که کامپیوتر چیست و چه کاربردی دارد و همه چیز درباره کامپیوتر از جمله فواید کامپیوتر و تعریف کامپیوتر و اجزای آن را بیان کرده است تنها زبان ماشین را میفهمد، نیاز است تا کدهای نوشته شده توسط مفسر یا کامپایلر (Compiler)کامپایلر چیست و چگونه کار میکند و چرا از آن استفاده میشود؟کامپایلر (Compiler) یک برنامهی خاص برای ترجمه سورس کدهای (Source Code) یک زبان برنامه نویسی، به زبان ماشین یا بایت کد و یا یک زبان برنامه نویسی دیگر است به زبان ماشین تبدیل شوند.
- زبانهای برنامه نویسی سطح بالا بهمراتب کندتر از بقیه ی سطوح برنامه نویسی هستند؛ در واقع هرچه زبان سطح بالاتر و سادهتر باشد کندتر است.
- زبانهای برنامه نویسی سطح بالا نیاز به حافظه رم (RAMرم کامپیوتر چیست؟ رم کجاست؟ معرفی انواع رم (RAM) کامپیوتراین مقاله عالی به معرفی رم کامپیوتر پرداخته، همچنین بررسی کرده رم کامپیوتر (RAM : Random Access Memory) کجاست و انواع رم کامپیوتر را معرفی کرده است) بالایی دارند.
انواع زبان های برنامه نویسی سطح بالا
زبان های زیر در دسته زبان های High-Level قرار میگیرند:
- زبان Javaجاوا چیست؟ تعریف، معنی و ویژگی های جاوا (java) از 0تا100جاوا یک زبان برنامه نویسی همه منظوره، مبتنی بر کلاس و شی گرا است که برای داشتن وابستگی های پیاده سازی کمتر طراحی شده است، زبان برنامه نویسی جاوا شبیه ++C است
- زبان PHP
- زبان java scriptجاوا اسکریپت چیست؟ معرفی زبان برنامه نویسی java scriptزبان برنامه نویسی جاوا اسکریپت چیست و چه کاربردی دارد؟ این صفحه عالی به بررسی مزایای JavaScript پرداخته و مبانی برنامه نویسی جاوا اسکریپت را آموزش داده
- زبان C++برنامه نویسی سی پلاس پلاس چیست؟ مزایای برنامه نویسی C++؟برنامه نویسی سی پلاس پلاس چیست و چه کاربردی دارد؟ این صفحه عالی به بررسی مزایای برنامه نویسی C++ پرداخته و نمونه هایی از کدهای زبان برنامه نویسی ++C را آورده
- زبان C#سی شارپ چیست ⚡️سی شارپ به زبان سادهاین صفحه عالی بررسی کرده که سی شارپ چیست و تاریخچه سی شارپ، محیط و ابزارهای سی شارپ، ویژگی های سی شارپ، مزایای سی شارپ و کاربرد و بازار کار سی شارپ را گفته
- زبان پایتون (Python)زبان برنامه نویسی پایتون چیست؟ – نحوه شروع و دلایل محبوبیتزبان برنامه نویسی پایتون (Python) چیست؟ این مقاله عالی به بررسی دلایل محبوبیت پایتون، موارد استفاده از پایتون و نحوه شروع به برنامه نویسی پایتون پرداخته
- زبان Perl
زبان های سطح میانی
هرچند که زبان های سطح میانی یا Mid-Level Language زیاد در متون تخصصی یافت نمیشود؛ اما در بعضی متون به آن اشاره شده است؛ بنابراین بد نیست که تعریف این سطح زبان را بدانید. زبان های سطح میانی به طور خلاصه به زبانهایی گفته میشود که ویژگی زبان های سطح بالا و سطح پایین را داشته باشند؛ این زبانها هم از خاصیتهایی مثل Abstraction زبان های سطح بالا برخوردارند و هم به منابع سیستم دسترسی دارند و میتوانند نحوه عملکرد سختافزار را مشخص کنند.
انواع زبان های برنامه نویسی سطح میانی
زبان های سطح میانی شامل موارد زیر است:
- زبان Cزبان برنامه نویسی C – مزایا و کاربرد زبان C – فرق C و ++Cاین مقاله عالی ابتدا توضیح میدهد که زبان برنامه نویسی c چیست، سپس به بررسی مزایا و معایب زبان C ، کاربردهای زبان سی ، و تفاوت بین C و ++C میپردازد
- زبان C++
- زبان Rust
زبان های سطح پایین
سینتکسهای زبان سطح پایین یا Low-Level عوض نزدیک بودن به زبان انسان، به زبان ماشین نزدیکتر هستند؛ این زبانها به سختافزار وابسته هستند، مثلاً یک برنامه نوشته شده ممکن است در کامپیوترهای مختلف به صورتهای مختلف عمل کند؛ همچنین بهوسیله زبان های سطح پایین میتوان مستقیماً به سختافزار و ثباتها (registers) دسترسی داشت و آنها را تغییر داد و از آنها استفاده کرد.
مزایای زبان های سطح پایین
- زبان های سطح پایین الزاماً نیاز به کامپایلر ندارند و بسیار سریع هستند.
- باتوجهبه سطح پایین و سبک بودن زبان، از لحاظ حافظهای بهینه هستند و دادههای زیادی برای ذخیرهکردن ندارند.
- برنامه نویسان در آن به طور کامل به سختافزار و حافظه دسترسی دارند و میتوانند هر طور که میخواهند آنها را تغییر دهند.
معایب زبان های سطح پایین
- کدهای نوشته شده به زبان های سطح پایین در ماشینهای مختلف متفاوت عمل میکنند و ممکن است مطابق خواستههای برنامه نویس نباشد.
- کدنویسیکدنویسی چیست؟ – کد نویسی یعنی چهاین مقاله عالی به بررسی این پرداخته که کد نویسی چیست و مفهوم کد نویسی را بررسی کرده، همچنین تفاوت کدنویسی و برنامه نویسی و کاربرد های کدنویسی را بررسی کرده با این زبانها سختتر است؛ چراکه دارای سینتکسها و توابع پیچیدهتری هستند.
- پیداکردن باگ و خطا در این زبانها بسیار سختتر از زبان های سطح بالا است؛ ممکن است خطایی در برنامه وجود داشته باشد؛ اما برنامه کاملاً عادی عمل کند.
انواع زبانهای برنامه نویسی سطح پایین
زبانهای سطح پایین شامل زبانهای زیر است:
- زبان C
- زبان Fortran
- زبان Ada
توجه: گاهی اوقات زبانهای اسمبلی و زبان ماشین نیز در دسته زبان های سطح پایین قرار میگیرند.
زبان اسمبلی
زبان اسمبلی (Assembly) برای راحتتر شدن کار برنامه نویسان ایجاد شده بود؛ زیرا کارکردن با 0 و 1 مطلق بسیار پیچیده است و شانس وقوع خطا را بالا میبرد؛ بنابراین زبان اسمبلی آمد تا کار برنامه نویسان را کمی راحتتر کند؛ بهعنوانمثال در زبانهای اسمبلی دستوراتی مانند ADD، MOV، SUB و غیر وجود دارد که برای انسان خواناتر هستند. ازآنجاییکه دستورات زبان اسمبلی دارای واژههای زبان انگلیسی است، در نتیجه نیاز به یک مترجم دارد تا دستورات را به زبان ماشین تبدیل کند. به این مترجمها اسمبلر یا Assembler گفته میشود.
زبان ماشین
اولین نسل زبانها، زبان ماشین یا Machine Language بود که در آن دستورات شامل رشتهای متشکل از 0 و 1 است. با کیبوردی که در تصویر زیر مشاهده میکنید میتوان به زبان ماشین کد نوشت:
البته این تصویر جنبه شوخی دارد؛ اما جدای از شوخی در زبان ماشین جز 0 و 1 چیز دیگری نیست؛ بنابراین برنامه نویس باید تمامی رشتههایی از 0 و 1 که نوشته است را بهخاطر بسپارد؛ بهعنوانمثال رشته 001001 110110 0011 از 3 قسمت تشکیل شده است:
- 4 بیت اول (0011) کد عملگر یا Operation Code است که میتواند هر عملگری باشد؛ مانند جمع، تفریق، ضرب، Move و Jump و...
- توالی 6 بیتی بعد یعنی 110110 و 001001؛ در واقع عملوندهایی هستند که قرار است عمل 4 بیت اول بر روی آنها انجام شود، این بیتها میتوانند اعداد، آدرسهای حافظه و یا ثبات باشند.
زبان سطح بسیار بالا
گاهی اوقات دسته دیگری در دسته سطوح زبانها مطرح میشود با نام زبان های سطح بسیار بالا یا Very High-Level. این زبانها به طور کلی زبان های برنامه نویسی نیستند و تنها برای موارد خاصی مورد استفاده قرار میگیرند؛ به عنوان مثال زبان SQL که برای کار با پایگاه دادهپایگاه داده چیست؟ – انواع، مفاهیم و کاربردهاپایگاه داده چیست؟ این مقاله به بررسی این موضوع و همچنین انواع پایگاه داده، کاربردهای پایگاه داده، محبوب ترین پایگاه های داده و اجزای اصلی پایگاه داده پرداخته هایی مانند SQLite و MySQLmysql چیست؟ بررسی تفاوت مای اس کی یو ال با اس کی یو ال-sqlاین مقاله عالی به معرفی mysql میپردازد، همچنین ویژگی های MySQL، تفاوت MySQL با SQL و سازگاری این پایگاه داده به سایر سرویس ها را مورد بررسی قرار میدهد مورد استفاده قرار میگیرد یا مثلا زبان Matlab که مختص کار با متلب است.
خلاصه زبان ها از لحاظ سطوح
در جدول زیر میتوانید زبانهای مختلف هر دسته را به طور خلاصه مشاهده کنید:
انواع زبان | سطح زبان |
---|---|
Java, PHP, JavaScript, C++, C#, Python, Perl | زبان سطح بالا (High-Level) |
C, C++, Rust | زبان سطح میانی (Mid-Level) |
C, Fortran, Ada | زبان سطح پایین (Low-Level) |
x86 assembly, ARM assembly | زبان اسمبلی (Assembly) |
Machine language | زبان ماشین (Machine) |
زبان های برنامه نویسی از پایین ترین سطح تا بالا ترین سطح
در اینجا یک لیستی به ترتیب از پایینترین سطح زبان تا بالاترین سطح زبان آورده شده تا یک دید کلی نسبت به زبانهای معروف دنیا پیدا کنید:
- زبان ماشین (باینری)
- زبان ماشین (هگزادسیمال)
- زبان اسمبلی
- زبان FORTRAN
- زبان BASIC
- زبان C
- زبان C++
- زبان Perl
- زبان Java
- زبان JavaScript
- زبان PHP
- زبان C#
- زبان Python
- زبان SQL
- زبان حرفزدن انسانها
علت وجود سطح های مختلف زبان های برنامه نویسی
هر زبان و هر سطح زبان برنامه نویسی به دلایل خاصی ایجاد شده است و هرکدام نیز دارای اهداف و ویژگیهای مخصوص به خودشان هستند؛ بنابراین اینکه چه سطحی از زبان را باید انتخاب کنیم، مستقیماً به هدف از انجامدادن کار برنامه نویس دارد.
کاربرد زبان های سطح بالا
زبان های سطح بالا معمولاً برای تولید نرمافزارها، وبسایتها، بازی و غیره استفاده میشود. در لیست زیر موارد دیگری از کاربرد های زبان های سطح بالا را مشاهده میکنید:
- ایجاد و تست کردن نرم افزارتست نرم افزار چیست؟ – انواع، روش ها و اهمیت تست نرم افزارتست نرم افزار چیست؟ این مقاله عالی به بررسی انواع تست های نرم افزاری، بهترین روش ها برای تست نرم افزارها و اهمیت تست نرم افزار پرداخته است و سیستمهای تجاری
- زبان های سطح بالا مانند زبان Rزبان برنامه نویسی R چیست؟ کاربرد زبان برنامه نویسی r چیست؟این مقاله عالی به توضیح زبان برنامه نویسی R (آر) پرداخته، همچنین به بررسی محیط نرم افزاری زبان R، مزایا و معایب زبان R و کاربردهای زبان R پرداخته است، زبان Julia و متلب به طور گسترده برای تحقیقات استفاده میشود.
- زبان های سطح بالایی مانند پایتون برای مدیریتکردن و تحلیل دادههای حجیم مورداستفاده قرار میگیرد.
کاربرد زبان های سطح پایین
زبان های سطح پایین معمولاً برای مواقعی کاربرد دارد که سرعت و پرفورمنس و دسترسی به سختافزار برایمان مهم باشد. برای برنامه نویسی سیستمهای حساس مانند ماهوارهها و موشکها نیز از زبان های سطح پایین استفاده میشود. لیست زیر شامل موارد دیگری از کاربرد های زبان های سطح پایین است.
- ساخت سیستمهای بیدرنگ یا Real-Time که نیاز به پرفورمنس بسیار زیادی دارد، مانند سیستمهای کنترل ترافیک هوایی.
- سختافزارهای سیستمهای تعبیه شده (Embedded System) که تعداد آنها هم زیاد است، از زبانهای سطح پایین استفاده میکنند؛ مانند کولر، اسپیکر، مودم و...
- درایورها یا راهاندازهای قطعات مختلف سختافزار مانند کارت صدا و کارت گرافیک، همچنین کرنل سیستمعاملها بهوسیله زبان های سطح پایین نوشته میشوند.
جمع بندی
داشتن اطلاعات در مورد سطح های زبان های برنامه نویسی باعث میشود تا بهتر بتوانیم زبان موردنظر را انتخاب کنیم و از ویژگیهای آن زبان و نقاط مثبت و منفی آن زبان قبل از شروع کار با آن آشنا شویم. این امر خیلی مهم است که بدانیم جامعه آماری مصرفکنندههای برنامه ما چه کسانی هستند و چه پارامترهایی برایمان مهم تلقی میشود. با یکزبان برنامه نویسی نمیتوان تمامی امکانات و نقاط قوت را یکجا داشت. اگر زبان خیلی ساده و کار با آن راحت باشد، سرعتش کمتر است و اگر سرعتش بالا باشد، کار با آن سخت و زمانبر است. در این مقاله بهعنوان زبان های برنامه نویسی از لحاظ سطح آنها اشاره شد و مهمترین کاربرد آنها را معرفی کردیم؛ همچنین نقاط مثبت و منفی سطوح مختلف زبانهای برنامه مورد بررسی قرار گرفت.
سطوح مختلف زبان های برنامه نویسی کداماند؟
در متون علمی مختلف دستهبندیهای گوناگون و زیر دستههای مختلفی تعریف شده است. بهطورکلی میتوان زبان های برنامه نویسی را به 5 سطح زیر تقسیم کرد:
1- زبان های سطح بالا 2-زبان های سطح میانی 3-زبان های سطح پایین 4-زبان اسمبلی 5-زبان ماشین
اولین زبان برنامه نویسی سطح پایین و سطح بالا کدام است؟
اولین زبان سطح پایین همان زبان ماشین است که تنها از 0 و 1 تشکیل شده است. بین اولین زبان سطح بالا شبهه وجود دارد؛ بعضیها زبان Plankalkül را اولین زبان سطح بالا میدانند و عدهای دیگر زبان FORTRAN را، هرچند که این زبانها در قدیم سطح بالا شناخته میشدند، اما امروزه دیگر بهعنوان زبان سطح بالا شناخته نمیشوند.
زبانهای برنامه نویسی سطح میانی چه هستند؟
به زبانهایی که هم ویژگیهای زبان های سطح بالا مانند انتزاع و کار با ساختمان دادهآموزش ساختمان داده و الگوریتمهر ساختمان داده یک نوع فرمت ذخیرهسازی و مدیریت دادهها در کامپیوتر است، که امکان دسترسی و اصلاح کارآمد آن دادهها را برای یکسری از الگوریتمها و کاربردها فراهم میکند، در این صفحه به بررسی و آموزش ساختمان داده و الگوریتم پرداخته شده استهای پیشرفته دارند و هم ویژگی زبان های سطح پایین مانند کار با سختافزار و ثباتها، زبان های سطح میانی یا Mid-Level Language میگویند؛ مانند زبان C