برنامه نویسی سطح بالا و پایین چیست؟ | به زبان ساده


زبانهای برنامهنویسی به دو دسته زبانهای سطح بالا و پایین تقسیم میشوند. هر نوع زبان برنامهنویسی برای مقاصد خاصی طراحی شده است. به عنوان مثال، زبان برنامه نویسی COBOL که زبانی سطح بالاست، کاربردهای تجاری در مقیاس وسیع دارد. یادگیری تفاوت برنامه نویسی سطح بالا و پایین یک گام مهم برای درک کارکردهای هر یک از زبانهای برنامهنویسی محسوب میشود.
در ادامه این مقاله با تفاوت بین برنامه نویسی سطح بالا و پایین و معنای هر کدام در مسیر یادگیری کدنویسی آشنا میشویم. همچنین به تعریف این دو دسته از زبانهای برنامهنویسی پرداخته و بررسی میکنیم که یادگیری کدام دسته از زبانهای برنامهنویسی برای شما مناسب است.
- مقاله پیشنهادی: برنامه نویسی چیست ؟ — از کاربرد تا یادگیری به زبان ساده
زبانهای برنامه نویسی سطح بالا و پایین
برخی خصوصیتها وجود دارند که زبانهای برنامه نویسی سطح بالا و پایین را تعریف میکنند. در ادامه با برخی از قواعدی که موجب تعریف و تمییز این دو دسته از هم میشود آشنا خواهیم شد.
ویژگیهای زبانهای سطح بالا
- قابلیت تجرید یا انتزاع دارند.
- به زبان انسان نزدیکتر بوده و خوانایی بهتری دارند.
- کاری به مدیریت حافظه ندارند.
نمونههای زبانهای سطح بالا شامل جاوا، پایتون، روبی و سی شارپ هستند.
ویژگیهای زبانهای سطح پایین
- قابلیت تجرید ندارند.
- توسط ماشین خوانده میشوند و به زبان انسان نزدیک نیستند.
- نیاز به مدیریت حافظه وجود دارد.
نمونههای زبانهای برنامهنویسی سطح پایین شامل زبان «اسمبلی» (assembly) و کد ماشین است.
اگر تاکنون کدی به زبانهایی مانند C یا ++C نوشته باشید، ممکن است متوجه شده باشید که این زبانهای در ناحیه واسط بین زبانهای سطح بالا و پایین قرار میگیرند. این زبانها امکان مدیریت حافظه را ارائه میکنند، اما از سوی دیگر قابلیت تجرید را نیز دارند.
مروری بر زبانهای سطح پایین
این که یک زبان برنامهنویسی در دسته زبانهای سطح بالا یا سطح پایین قرار میگیرد به «تجرید» (abstraction) و میزان نزدیکی کارکرد آن به سیستم عامل مربوط است. زبانهای سطح پایین به سیستم رایانهای نزدیک هستند. یکی از رایجترین زبانهای سطح پایین کد ماشین است.
کد ماشین هیچ تجریدی ندارد و شامل دستورالعملهای منفرد است که به رایانه ارسال میشوند. ماشینها تنها بایتها را درک میکنند که به صورت دودویی نمایش مییابند، گرچه ممکن است گاهی اوقات با نمادگذاری دهدهی یا شانزدهشانزدهی نیز نوشته شوند.
در ادامه نمونهای از کد ماشین را میبینید:
169 1 160 0 153 0 128 153 0 129 153 130 153 0 131 200 208 241 96
آیا شما میتوانید این کد را بخوانید و معنای آن را درک کنید؟ رایانه معمای این کد را میداند، اما به زبان انسان نزدیک نیست.
زمانی که کد ماشین را مینویسید باید دستورهای روشنی ارائه کنید. برای نمونه اگر یک قطعه اطلاعات از حافظه بازیابی میشود، کد ماشین باید به رایانه اعلام کند که کجا میتواند آن را پیدا کند. کد ماشین با فاصله زیادی سریعترین کدی است که میتوان نوشت و همچنین برنامهنویسی با آن دشوارترین کار محسوب میشود.
زبان اسمبلی نیز یک زبان سطح پایین دیگر است که یک گام بالاتر از کد ماشین قرار میگیرد. زبان اسمبلی مجهز به مقادیر اندکی از تجرید است، اما مشابه کد ماشین است. استفاده از زبان اسمبلی رواج کمتری نسبت به زبانی مانند C دارد، اما یک گام بالاتر از کد ماشین قرار میگیرد.
زبان برنامهنویسی C یک گزینه رایج برای کدنویسها محسوب میشود. با این که C به اندازه اسمبلی، سطح پایین محسوب نمیشود، اما با این حال نزدیک به کد ماشین است. اغلب عملیاتی که در زبان C نوشته میشوند، میتوانند با چند دستورالعمل محدود کد ماشین کار کنند.
مروری زبانهای برنامهنویسی سطح بالا
زبانهای برنامه نویسی سطح بالا مجهز به قابلیت تجرید یا انتزاع هستند. این زبانها کاملاً خوانا هستند و در نتیجه استفاده از آنها به مراتب آسانتر است.
در ادامه نمونهای از کد پایتون را میبینید که رمزگشایی از آن بسیار سادهتر از کد ماشین است:
1def addNumbers(Num1,Num2):
2 return Num1 + Num2
3addNumbers(4,5)
4>> 9
این یک تابع ساده است که دو عدد را میگیرد و نتیجه حاصل جمع آنها را بازگشت میدهد. ما با خواندن این کد میدانیم که دقیقاً چه چیزی به دست میآوریم و میتوانیم مانند یک کتاب آن را بخوانیم. از سوی دیگر برای اجرای این برنامه روی رایانهتان نیاز به مدیریت حافظه ندارید.
متغیرها، اشیا، روالها و حلقهها همگی اجزای مهمی هستند که زبانهای سطح بالا را تشکیل میدهند. این همان تجریدی است که قبلاً اشاره کردیم. زبان اسمبلی تقریباً یک تناظر یک به یکی بین دستورهای خود و دستورهای کد ماشین دارد. یک زبان سطح بالا میتواند دهها دستور را با یک خط کد ارسال کند.
هر زبان سطح بالا ساختار نگارشی خاص خود را دارد و برخی از آنها نسبت به بقیه خوانایی آسانتری دارند.
چه نوع زبان برنامه نویسی را باید یاد بگیریم؟
این سؤالی است که بسیاری از برنامهنویسان تازهکار میپرسند. کدام یک از زبانهای برنامه نویسی سطح بالا و پایین بهتر هستند؟ از آنجا که این سؤال وجوه مختلفی دارد، پاسخ یگانه صحیحی برای آن وجود ندارد.
هر دو دسته از زبانهای برنامه نویسی سطح بالا و پایین مزیتهای مهمی دارند. زبانهای سطح پایین نیازمند تفسیر کمی از سوی رایانه هستند. به همین جت کد ماشین در قیاس با زبانهای دیگر برنامهنویسی به مراتب سریعتر است. این زبانها کنترل وسیعی در زمینه ذخیرهسازی دادهها، حافظه، سختافزار رایانه و غیره در اختیار برنامهنویس قرار میدهند.
از زبانهای سطح پایین میتوان برای نوشتن کرنل نرمافزار یا نرمافزارهای درایور استفاده کرد، ولی برای نوشتن وباپلیکیشنها یا بازیها مناسب نیستند.
از سوی دیگر یادگیری زبانهای سطح بالا آسانتر است. این زبانها به برنامهنویس امکان میدهند که کد را به روش بهینهتری بنویسد. این زبانها امنتر نیز محسوب میشوند. لایههای حفاظتی فراوانی برای کدنویسها ارائه شده است تا از صدور دستورهایی که میتوانند به رایانه صدمه بزند خودداری کنند.
زبانهای سطح بالا کنترل زیادی روی پردازشهای سطح پایین در اختیار برنامهنویس قرار نمیدهند و به ندرت وی را درگیر فرایند تخصیص حافظه میسازند. فهرست زبانهای رایج سطح بالا به صورت زیر است:
- Java
- C#
- Go
- Scala
- JavaScript
- Python
- Ruby
- SQL
این زبانها برای نوشتن برنامههای نرمافزاری، وباپلیکیشنها و اپلیکیشنهای موبایل مناسب هستند.
چه چیزی میخواهید بسازید؟
نخستین سؤالی که در زمان انتخاب زبان برنامهنویسی باید پاسخ دهید این است که چه چیزی میخواهید بسازید؟ اگر به دنبال نوشتن سیستمهای عامل، کرنلها و یا هر چیزی هستید که باید با سرعت بالایی اجرا شود، در این صورت یک زبان سطح پایین گزینه مطلوبی به حساب میآید. بخش عمده ویندوز، macOS و لینوکس با استفاده از زبانهای C و مشتق از C مانند C++ یا Objective-C نوشته شده است.
بسیاری از اپلیکیشنهای مدرن در زبانهای سطح بالا یا با دامنه خاص نوشته شدهاند. پایتون و روبی دو زبان برنامهنویسی محبوب وب هستند. زبانهایی مانند سوئیفت،#C، جاوا اسکریپت و SQL همگی برای مقاصد خاصی طراحی شدهاند. #C یک زبان چندمنظوره عالی است، جاوا اسکریپت ستون فقرات کدنویسی وب را تشکیل میدهد و SQL برای برنامهنویسی دیتابیس مورد استفاده قرار میگیرد.
مزیتهای یادگیری هر دو دسته زبانهای برنامه نویسی سطح بالا و پایین
شاید ایده مناسب این باشد که شما شروع به یادگیری هر دو دسته زبانهای سطح بالا و پایین بکنید. به این ترتیب درک عمیقتری از تجریدها و روشی که از آنها برای بهینهسازی زبانهای سطح بالا استفاده میشود، به دست آورید. همچنین میتوانید در مورد معماری رایانه و این که چطور کار میکنند، اطلاعات زیادی کسب کنید.
البته یادگیری دو زبان به صورت یکباره کار آسانی نیست و شاید بهتر باشد آنها را تقسیمبندی کنید. یک زبان را بر مبنای آنچه میخواهید بسازید انتخاب کنید. در مورد آن کمی تحقیق کنید تا متوجه شوید در فیلد مورد نظر شما کدام زبانها رواج بیشتری دارد. پس از این اطلاعات برای انتخاب زبانی که میخواهید شروع به یادگیری بکنید بهره بگیرید.
در این حالت بسیار زود شاهد خطوط موازی در میان زبانهای مختلف خواهید بود و به این ترتیب درک عمیقتری از طرز کار برنامهنویسی به دست میآورید.
سخن پایانی
نکته مهم در هنگام انتخاب یک زبان برنامهنویسی آن است که تحت تأثیر معیارهای مختلفی که وجود دارند، قرار نگیرید. زمانی که تلاش میکنید بین یک زبان سطح بالا و پایین انتخاب کنید، در مورد این کدام یک از آنها بهتر میتوانند مقاصد شما را برآورده سازند فکر کنید. در تقریباً هر مورد باید در مورد پروژههایی که میخواهید اجرا کنید، تأمل نمایید.
اگر میخواهید به سمت زبانهای سطح پایین حرکت کنید، بهتر است ابتدا یادگیری زبان C را مورد نظر قرار دهید. C زبانی عالی برای یادگیری است. اما اگر به یادگیری زبانهای سطح بالا علاقهمند هستید، شاید بهتر باشد کار خود را با بررسی زبان پایتون آغاز کنید. پایتون یک زبان عالی چندمنظوره است که گزینههای زیادی پیش روی شما قرار میدهد. با استفاده از پایتون میتوانید کارهای زیادی از قبیل ساخت رباتهای رسانه اجتماعی برای اینستاگرام و تلگرام را انجام دهید.
در هر حال فراموش نکنید که وقت خود را در مرحله انتخاب یک زبان برنامهنویسی زیاد به هدر ندهید، چون این خاصیت زبانهای برنامهنویسی است که هر مسیر و هر زبانی را برای یادگیری انتخاب کنید، صرفنظر از نوع و دسته آن زبان، در نهایت به شما کمک میکند تا دیگر انواع زبانهای برنامهنویسی را به روش آسانتری بیاموزید.
با تشکر♥