خانه / بیشتر از برنامه نویسی / بیشتر از برنامه نویسی (۶) : نسل بندی زبان های برنامه نویسی

بیشتر از برنامه نویسی (۶) : نسل بندی زبان های برنامه نویسی

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

 الف) نزدیکی به زبان ماشین: ۱- سطح پایین، ۲- سطح میانی، ۳- سطح بالا.

ب) روش‌ های برنامه نویسی: ۱- زیر روالی، ۲- ساخت یافته، ۳- مدولار، ۴- شئ گرا.

ج) نوع ترجمه(تبدیل به زبان ماشین و اجرا): ۱- مفسری، ۲-کامپایلری.

د) رابط برنامه نویسی: ۱- مبتنی بر متن (متنی)، ۲- مبتنی بر گرافیک (ویژوال).

اجازه دهید طبقه بندی فوق را کمی بازتر نماییم و برخی اصطلاحات در این باره را توضیح دهیم. بسیار رایج است که در نگاه اول زبان ها را از نظر نزدیکی به زبان ماشین(سخت افزار) طبقه بندی می کنند. طبیعتاً از این دیدگاه سه دسته زبان خواهیم داشت: سطح پایین،  سطح میانی، سطح بالا. شکل زیر تصور بهتری از اصطلاحات نام برده و رابطه شان با هم، به دست می دهد:

زبان برنامه ‌نویسی سطح پایین یا زبان برنامه ‌نویسی کوتاه‌ تراز[۱] زبانی است که به مقدار کم یا هیچ انتزاعی نسبت به ریزپردازنده فراهم نمی‌نماید. عبارت سطح پایین به این معنی نیست که این زبان نسبت به زبان برنامه ‌نویسی سطح بالا ارزش کمتری دارند بلکه به معنای عدم وجود انتزاع بین این زبان و ساختار ریز پردازنده است از این جهت گاهی این زبان ها را نزدیک به سخت‌افزار نیز می‌نامند. سطح بالا و سطح پایین نسبی هستند و یک برنامه نویس جاوا ممکن است زبان سی را سطح پایین بداند در حالی یک برنامه‌نویس سی زبان ماشین را در سطحی پایین ‌تر از خود می داند. در عین حال اصطلاح سطح پایین بودن یک زبان در برنامه نویسی به هیچ عنوان، به معنای کم قدرت بودن آن زبان نیست،  همچنان که سطح بالا بودن هم دلیلی بر قدرتمند بودن یک زبان نیست و همان طور که خواهیم دید، به مراتب این موضوع به عکس هم می باشد.

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

زبان نسل دوم زبان اسمبلی است. این زبان با وجود این که در سطح انتزاع بالاتری قرار دارد اما ساختار ریزپردازنده مانند ثبات‌ها و دستورالعمل‌ها را مورد توجه قرار می‌دهد. این دستورالعمل‌های ساده سپس تبدیل به کد ماشین می‌گردد. کد اسمبلی را می‌توان به سطح بالاتری از انتزاع گسترش داد. به عنوان مثال زبان اسمبلی را می‌توان بصورت قابل خواندن‌تری نوشت. در زمان اجرا، هر دستور زبان اسمبلی به یک دستور ماشین تبدیل می شود. این زبان به زبان مادر کامپیوتر (زبان ماشین) بسیار نزدیک می‌باشد و در ارتباط تنگانگ با آن است، به‌طوری که تمامی برنامه‌های اولیه همچون C++, C ، توسط زبان اسمبلی ساخته شده است و همچنین اکثر کارها در زمینه هک و مانند آن با این زبان انجام می‌شود. برای هر خانواده CPU یک زبان اسمبلی وجود دارد. این زبان را با استفاده از اسمبلر‌ها می‌توان به زبان ماشین یعنی صفر و یک تبدیل کرد. نرم‌افزارهای اسمبلر بر روی سیستم نصب شده و با وارد کردن کدهای اسمبلی و اشکال‌زدایی کردن آن می‌توان آن‌ها را به زبان ماشین تبدیل کرد. از آن جا که این زبان سخت و برنامه نویسی با آن زمان بر است، نیاز به زبان های سطح بالا احساس می شود.

زبان های برنامه نویسی سطح میانی ویژگی هایی مابین زبان های سطح پایین و سطح بالا دارند. پس اجازه دهید ابتدا در مورد زبان های سطح بالا صحبت کنیم.

زبان برنامه‌نویسی سطح بالا یا زبان برنامه‌نویسی بلندتراز[۲] زبانی است که نسبت به زبان برنامه‌نویسی سطح پایین راحت‌تر قابل استفاده و قابل حمل بین سیستم‌های متفاوت و دارای انتزاع بیش تری هستند. چنین زبان‌هایی عموماً از عملیات CPU  مانند مدل‌های دسترسی به حافظه و مدیریت حوزه دور هستند. عبارت زبان‌های سطح بالا بدین معنی نیست که این زبان نسبت به زبان‌های سطح پایین برتر هستند بلکه اگر شما میزان اطلاع از نحوه عملکرد کامپیوتر‌ها را به عنوان ملاک در نظر بگیرید برعکس این مطلب درست است. عبارت زبان سطح بالا در حقیقت به معنای دوری این زبان‌ها از زبان ماشین است. به جای کار کردن با ثبات‌ها، آدرس‌های حافظه، و فراخوانی پشته زبان برنامه‌نویسی سطح بالا از متغیرها، آرایه‌ها، و عبارات پیچیده ریاضی و منطقی استفاده می‌نماید. این زبان‌ها مستقیما مانند زبان اسمبلی به زبان ماشین ترجمه نمی‌گردند. ویژگی‌های دیگر همانند توابع کار با رشته‌ها، مفاهیم شی‌گرایی، و کار با ورودی و خروجی در فایل‌ها در آنها وجود دارد. به بیان دیگر در حالی که زبان برنامه‌نویسی سطح بالا برنامه‌نویسی را آسان‌تر می‌نماید اما زبان برنامه‌نویسی سطح پایین برنامه‌های بهینه‌تری تولید می‌کند. در یک زبان سطح بالا این امکان را فراهم می‌سازد تا اجزای پیچیده را به اجزای ساده‌تر اما هنوز پیچیده تقسیم نموده تا برنامه‌نویس را از انجام کارهای پیچیده بازدارد. به این دلیل برنامه‌هایی که نیاز به کار با سرعت بالا و بهینه‌تر دارند باید با زبان سطح پایین نوشته شود حتی اگر زبان سطح بالا این کار را ساده‌تر سازد.

زبان های سطح بالا پر کاربردترین ودر عین حال جذابترین و کاربردی‌ترین محیط‌های برنامه نویسی را شامل می‌شوند، چرا که محیط آن کاربر پسند[۳] بوده و یادگیری اصطلاحات و مفاهیم آن در محیط و قالبی گرافیکی به کاربر ارائه می‌شود، برنامه نویسان به راحتی به یادگیری دستورات و قواعد آن به دلیل اینکه به زبان محاوره ایی و انگلیسی نزدیک است می‌پردازند، این گونه زبان ها از سرعت کمتری نسبت به زبان های سطح میانی و پایین برخوردار می‌باشد، به دلیل اینکه دستورات بایستی به زبان قابل فهم برای ماشین تبدیل گردند که این خود زمان بر می‌باشد، ولی در عین حال فضای کمتری اشغال می‌کنند که نمونه ای از این زبان ها، زبان های برنامه نویسی پاسکال، ویژوال دلفی، جاوا و ویژوال C# می‌باشند.

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

شما می توانید به راحتی با جست و جو در شبکه جهانی وب مطالب مفیدی در مورد زبان های برنامه نویسی و بلأخص سطح آن ها به دست آورید. در این بین ممکن است با عنوان زبان های «خیلی سطح بالا»، هم برخورد کنید. که با توجه به آن چه در مورد سطح زبان ها گفتیم، می توانید تصور کنید این زبان ها چگونه زبان هایی خواهند بود.


[۱] – Low-level programming language

[۲] – High-level programming language

[۳] – User Friendly

نقد و بررسی

۰

User Rating: ۴٫۷۴ ( ۴ votes)

درباره ی [مرتضی]

مرتضی ذاکری - عضو تیم کاری تارنمای میکروپدیا دانش آموخته مهندسی کامپیوتر - گرایش نرم افزار

همچنین ببینید

میکروپدیا؛ وب سایت تخصصی انجام پروژه های فنی و مهندسی

بیشتر از برنامه نویسی (۳) : ساختمان کامپیوترها

در این قسمت، نگاهی اجمالی بر سازمان و ساختمان کامپیوترها می اندازیم. خواهیم دید چگونه …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پاسخ عبارت زیر را وارد کنید: *