زبان برنامه نویسی چیست؟ بررسی تفاوت سطح های مختلف

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

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

برای اینکه بتوانیم با یک سخت افزار الکترونیکی صحبت کنیم باید از سیگنال های الکتریکی استفاده کنیم. قابل فهم ترین سیگنال ها برای کامپیوتر، سیگنال های روشن(on) و خاموش (off) هستند و همین مساله باعث شده است که زبان کامپیوترها تنها از دو حرف تشکیل شده باشد.

این دو حرف همان صفر و یک هستند که یکی از آن ها (معمولا عدد یک) به کامپیوتر می فهماند که از یک سیگنال مثلا 4 الی 5 ولتی به عنوان سیگنال روشن (on) استفاده کند و حرف دیگر(عدد صفر) به سیستم ما می فهماند که از یک سیگنال مثلا صفر ولتی به عنوان سیگنال خاموش(off) استفاده کند تا در نهایت سلسله ای از این سیگنال ها تغییرات الکتریکی ای را بر رو سخت افزار ایجاد کنند (مانند خاموش یا روشن کردن مولتی ویبراتور ها، ترانزیستور ها و...) که منجر به انجام هدف مورد نظر ما شود.

برای اینکه مطلب را بهتر درک کنید ابتدا نگاهی به مثال ساده (و تا حدودی ناقص) زیر بیاندازید.

00000010001100100100000000100000

مثلا اعداد صفر و یک ردیف شده در بالا می توانند به ماشین الکتریکی ما(که در اینجا همان کامپیوتر ما محسوب می شود) بفهمانند که دو عدد را از حافظه ی خود بردارد ، آن ها را با هم جمع کند و حاصل را در یک مکان دیگر از حافظه ذخیره کند!

به نحوی می توان اینگونه در نظر گرفت که کامپیوتر با دریافت کدهای بالا(0و1 ها) یک ردیف از سیگنال های الکتریکی مثلا 5ولتی (به ازا 1ها) و 0 ولتی (به ازا صفر) را به صورت سلسله وار تولید می کند و این سیگنال ها با توجه به سخت افزار داخلی کامپیوتر، عملی را برای ما انجام می دهند.(در این مثال جمع دو عدد و ذخیره ی حاصل جمع آن ها)

البته شاید این مثال از نظر کارشناسان ناقص و مبتدی به نظر برسد اما احتمالا درک مطلب را برای خوانندگان کم تجربه تر ساده تر می کند.

همان گونه که گفتیم الفبای کامپیوتر فقط  دو حرف دارد و این دو حرفی بودن الفبای کامپیوتر توانایی آن را محدود نمی کند؛ همانگونه که 26 حرفی بودن الفبای انگلیسی محدود کننده ی میزان نگارش آن نیست.

 نماد های دو حرف زبان ماشین (0 و 1) را ارقام دودویی (binary digits) یا بیت (bit) می نامند.

 کامپیوتر ها اجرا کننده ی فرمان های ما هستند که دستور العمل (instruction) نامیده می شوند و دستور العمل ها (که مجموعه ای از بیت ها هستند) همانگونه که در مثال دیدید به صورت عدد می باشند. مثلا بیت های

1000110010100000

عنوان کننده ی دستور العملی استه که به کامپیوتر می گوید دو عدد را با هم جمع کند.

اما شاید اکنون سوالی که در ذهن شما خوانندگان عزیز مطرح شده باشد این است که: آیا نوشتن این همه صفر و یک برای فهماندن یک عمل ساده به سیستم خیلی وقت گیر نیست؟

تنها تصور کنید برای عملیات های پیچیده تر چه تعداد از این صفر و یک ها باید ردیف شوند تا سیستم منظور ما را متوجه شود؟!!!

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

اولین برنامه نویسان از اعداد دودویی برای ارتباط با کامپیوتر استفاده می کردند، اما به علت دشواری این کار، به سرعت نماد جدیدی اختراع کردند که به تفکر انسان نزدیک تر بود. این نماد ها، ابتدا با دست به اعداد دودویی تبدیل می شدند، اما این فرایند نیز هنوز دشوار بود.

پیشگامان علم کامپیوتر توانستند با استفاده از کامپیوتر برای برنامه ریزی کامپیوتر، برنامه ای را برای تبدیل این نماد ها به اعداد دودویی اختراع کنند که اسمبلر (assembler) نامیده شد.

 این برنامه نماد های دستور العمل را به اعداد دودویی تبدیل می کند. به عنوان مثال برنامه نویس عبارت زیر را می نویسد:

Add A,B

و اسمبلر این نماد را به اعداد زیر تبدیل می کند:

1000110010100000

این دستور العمل به کامپیوتر می گوید که دو عدد A و B را با هم جمع کند.

این زبان نمادین که هنوز هم مورد استفاده است را زبان اسمبلی (assembly language) می نامند. زبان دودویی قابل فهم برای کامپیوتر نیز زبان ماشین (machine language) نام دارد.

زبان برنامه نویسی چیست؟ بررسی تفاوت سطح های مختلف 

اگرچه زبان ماشین بهبود قابل ملاحظه ای یافته است اما به طور مثال هنوز برای شبیه سازی شارش مایعات توسط یک دانشمند یا تراز دفاتر مالی توسط یک حسابدار، مناسب نیست.

یکی از بزرگ ترین پیشرفت ها در روزهای آغازین علم محاسبه، اندیشیدن به برنامه ای بود که بتواند یک برنامه ی قوی تر که نوشتن آن هم برای انسان ها راحت تر باشد را به دستورالعمل های کامپیوتر تبدیل کند.

امروزه برنامه نویسان بهره وری و پیشرفت خود را مدیون آفرینش زبان های برنامه نویسی سطح بالا (high-level programming languages) و کامپایلر هایی هستند که برنامه های نوشته شده به این زبان ها را به دستور العمل ها تبدیل می کنند.

زبان برنامه نویسی چیست؟ بررسی تفاوت سطح های مختلف

حال به مثال زیر دقت کنید.

برنامه نویس به کمک کامپایلر عبارت زیر را به یکی از زبان های سطح بالا می نویسد:

A+B    (این قسمت توسط برنامه نویس به زبان سطح بالا نوشته شده است)

کامپایلر، عبارت بالا را به دستور زبان اسمبلی زیر کامپایل می کند:

Add A,B           

و حال اسمبلر عبارت بالا را از کامپایلر دریافت کرده و دستورالعمل فوق را به صورت دودویی (به زبان ماشین) می نویسد و به سیستم اجرا منتقل می کند تا عملیات درخواست شده از سیستم (در این جا جمع ) انجام شود.

زبان های برنامه نویسی سطح بالا مانند ویژوال بیسیک، C++، java و ... مزیت های مهمی دارند. از جمله:

*** اول اینکه به برنامه نویس اجازه می دهند که به زبان طبیعی تر فکر کند که در آن از کلمات انگلیسی و نماد های جبری استفاده می شود و نتیجه ی آن یک متن است و نه جدولی از نماد ها و ارقام ردیف شده ی نامفهوم برای انسان ها.

*** دوم اینکه زبان های سطح بالا باعث کاهش زمان تولید برنامه توسط برنامه نویسان می شود که علت آن را میتوان کم شدن تعداد خطوط برنامه ی حاصل دانست.

*** آخرین مزیت زبان های پیشرفته عدم وابستگی به کامپیوتری است که روی آن نوشته شده اند است چون کامپایلر ها و اسمبلر ها می توانند برنامه های نوشته شده به زبان سطح بالا را به کدهای دودویی قابل فهم هر کامپیوتری تبدیل کنند.

   

 

جهت اطلاع از جدید ترین مطالب سایت پیشنهاد می کنیم عضو خبرنامه شوید