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

تقسیم بندی زبان های برنامه نویسیReviewed by علی شانه ساز on Oct 5Rating: 5.0

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

مقدمه ای در مورد زبان های برنامه نویسی

همانطور که می دانید در محیط اینترنت سرویس های متعددی به منظور ارائه خدمات فعال می باشند. بدون شک سرویس وب یکی از مهمترین سرویس های موجود روی اینترنت است که بیشترین تاثیر را در عمومیت یافتن اینترنت در سطح جوامع بشری برعهده داشته است.

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

تقسیم بندی زبان های برنامه نویسی

زبان های برنامه نویسی را از چهار دیدگاه مختلف می توان تقسیم بندی نمود:

الف) روش های برنامه نویسی

۱- زیرروالی: اولین قدم در پیشرفت برنامه نویسی است. در این راستا زبان های فرترن و کوبول عرضه شدند. در این روش برنامه نویس مسائل را به چندین عملکرد تقسیم می کند و با هر عملکرد یا تابع به صورت جداگانه رفتار می کند اما پیچیدگی تابع هنوز پابرجاست.

۲- ساخت یافته: در دهه ۱۹۶۰ میلادی توسعه نرم افزار دچار مشکلات عدیده ای شد. در آن زمان سبک خاصی برای برنامه نویسی وجود نداشت و برنامه ها بدون هیچگونه ساختار خاصی نوشته می شدند. وجود دستور پرش (goto) نیز مشکلات بسیاری را برای فهم و درک برنامه توسط افراد دیگر ایجاد مینمود، چرا که جریان اجرای برنامه به طور مرتب تغییر جهت داده و دنبال نمودن آن دشوار می شد. لذا |

نوشتن برنامه های عملی بسیار زمان بر و پر هزینه بود و معمولا اشکال زدایی، اعمال تغییرات و گسترش برنامه ها بسیار مشکل بود. فعالیتهای پژوهشی در این دهه باعث بوجود آمدن برنامه نویسی ساخت یافته شد؛ روش منظمی که باعث ایجاد برنامه هایی کاملا واضح و خوانا شد که اشکال زدایی و خطایابی آنها نیز بسیار ساده تر بود.

  • اصلی ترین نکته در این روش عدم استفاده از دستور پرش (goto) است. تحقیقات بوهم و ژاکوپینی نشان داد که می توان هر برنامه ای را بدون دستور پرش و فقط با استفاده از ۳ ساختار کنترلی یعنی ترتیب، انتخاب و تكرار نوشت.
  • ساختار ترتیب، همان اجرای دستورها به صورت متوالی (یکی پس از دیگری) است که کلیه زبان های برنامه نویسی در حالت عادی به همان صورت عمل می کنند.
  • ساختار انتخاب به برنامه نویس اجازه می دهد که بر اساس درستی یا نادرستی یک شرط، تصمیم بگیرد و کدام مجموعه از دستورها اجرا شود.
  • ساختار تکرار نیز به برنامه نویسان اجازه می دهد مجموعه خاصی از دستورها را تا زمانیکه شرط خاصی برقرار باشد، تکرار نمایند.

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

نکته مهم اینجاست که طبق قوانین فوق یک حلقه تکرار یا داخل حلقه دیگر است و یا خارج آن قرار می گیرد و هیچگاه حلقه های روی هم افتاده نخواهید داشت. . زبان پاسکال در سال ۱۹۷۱ توسط پروفسور نیکلاس ويرث و کمی بعد زبان C توسط دنیس ریچی، از این – نوع هستند. با ورود این زبان ها نیاز به نسخه اول BASIC کم شده و نسخه های جدیدی از آن مانند QBASIC برای رفع کمبودهای نسخه اول به بازار عرضه شد که ضمن حفظ سادگی بیسیک، قابلیت برنامه نویسی ساخت بافته را نیز به آن افزودند.

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

۴- شی گرا: این روش از بهترین مفاهیم برنامه نویسی به روش ساخت یافته به وجود آمده و با چندین مفهوم قوی ترکیب شده تا امکان سازماندهی برنامه ها را به طور کار آمد فراهم کند. از طریق این روش پیچیدگی کاهش می یابد و می توان برنامه های بزرگ تر را هدایت نمود. در این روش واحد اصلی برنامه شی نامیده می شود. هر شي شامل ویژگی هایی است که حالت فعلی شی را مشخص می کند و در اثر رویدادهای مختلف و شارپ از شرکت مایکروسافت مختلف رفتار با عکس العمل نشان می دهد. می توان به زبان هایی مانند ویژوال بیسیک و کت مایکروسافت)، دلفی (از شرکت بورلند) و جاوا (از شرکت سان) اشاره نمود.

زبان های برنامه نویسی

ب) نزدیکی به زبان ماشین

  • سطح بالا: زبان هایی هستند که به زبان انسان یعنی زبان محاوره ای انگلیسی نزدیک و فهم آن ها بسیار آسان است ولی برای کامپیوتر فقط به کمک مترجم زبان برنامه نویسی یعنی کامپایلرها و ما قابل فهم هستند.

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

  • سطح میانی: این زبان شکل ساده تر زبان ماشین است، به این صورت که برای هر دستورالعمل زبان ، یک اسم نمادین انتخاب شده است (مانند دستور ADD به جای تکد دودویی دستورالعمل جمع یا : LDA برای قرار دادن اطلاعات در انباره) که بخاطر سپردن و برنامه نویسی با آنها برای انسانها ساده تر است.

اما این برنامه ها برای ماشین قابل فهم نیست و باید قبل از اجرا شدن توسط برنامه مترجمی به نام أسمبلر به زبان ماشین تبدیل شود.

  • سطح پایین: این زبان به زبان کامپیوتر (زبان صفر و یک) بسیار نزدیک و فهم آن برای کامپیوتر بسیار آسان است. اما چون به صورت صفر و یک است برای انسان قابل فهم نیست و اگر هم باشد انسان به سختی می تواند آن را بفهمد.

طراحان سخت افزار هر کامپیوتر، زبان ماشین خاص خود را برای آن ماشین طراحی می نمایند. به همین دلیل هر برنامه ای که به زبان ماشین نوشته شود، فقط روی همان ماشین خاص کار می کند، به همین دلیل برنامه های نوشته شده به زبان ماشین را غير قابل حمل می نامند.

ج) نوع ترجمه

١- کامپایلری: در این نوع زبان ها ابتدا کل برنامه از لحاظ خطای املایی (نه خطای منطقی) بررسی شده، در صورتيكه خطایی نداشته باشد، برنامه به زبان ماشین ترجمه و خروجی Object Code تولید می شود. خروجی حاصل می تواند روی کامپیوتری که عمل کامپایل روی آن صورت گرفته است، اجرا com و exe).

به طور کلی مراحل کامپایلر را می توان به چهار قسمت تقسیم نمود.

  • تشخیص توکن شود (پسوندهای دستور)
  • Parse کردن
  • تولید کد زبان ماشین
  • بهینه سازی کدهای تولید شده

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

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

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

علی رغم سادگی، زبان های برنامه نویسی تفسیری در پیاده سازی زبان چند اشکال مهم دارند و نمی توانند کدها را بهینه نمایند (مرحله چهارم از عمل کامپایلر)

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

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

د) رابط برنامه نویسی

  • مبتنی بر متن: برنامه هایی که همه چیز در آن با نوشتن کدها تولید میشود و در آن خروجی در اکثر مواقع به صورت متن است.

زبان های برنامه نویسی مبتنی بر متن به کاربر امکان دسترسی مستقیم به گرافیک را نمی دهند. یک بسته نرم افزاری ویژه اغلب به عناصر گرافیکی نیاز دارد که به آن افزوده شود. این بسته نرم افزاری اغلب به نوشتن خطوط زیادی از کدها نیاز دارد که به کد برنامه اصلی اضافه می شوند. مثل زبان C و پاسكال.

  • مبتنی بر گرافیک (ویژوال): که در آن برای اشیاء، برنامه نوشته می شود و خروجی به صورت اشیاء گرافیکی است.

زبان های برنامه نویسی مبتنی بر گرافیک امکان دسترسی مستقیم کاربر به گرافیک را فراهم می کنند. از زبان های مبتنی بر گرافیک می توان برای ایجاد سریع برنامه های تحت ویندوز نیز استفاده نمود، بدون اینکه نیاز به یادگیری و استفاده از بسته های نرم افزاری اضافه داشته باشد. مانند ++Visual basic ، Visual ، c از محصولات شرکت مایکروسافت یا دلفی از محصولات شرکت بورلند.

تقسیم بندی زبان های برنامه نویسی تحت وب

زبان های برنامه نویسی که در محیط اینترنت استفاده می شوند را می توان از جنبه مکان اجرا به دو دسته کلی تقسیم بندی نمود: زبان های برنامه نویسی سمت مشتری یا سرویس گیرنده (Client Side) و زبان های برنامه نویسی سمت سرویس دهنده (ServerSide).

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

زبان هایی مانند javaScript ، HTML يا VBScript از این نوع هستند. زبان HTML یک زبان مفسری ساده برای نمایش دادن اطلاعات است که نمی شد در آن الگوریتم برنامه نویسی داشت. برای رفع این مشکل زبان های اسکریپتی جهت ایجاد تحول و پویایی در صفحات وب ایجاد شدند. این زبان ها از روی زبان های برنامه نویسی ساخته شدند و به همین دلیل تشابه زیادی با هم دارند. این زبان ها در اصل نمونه کوچک شده زبان های مادر خود هستند. برای بالابردن امنیت در محیط شبکه و اینترنت تعدادی از دستورها و امکانات زبان های بزرگ در این زبان ها حذف شده اند. ما امکان نوشتن فایل یا پاک نمودن فایل ها روی سیستم کاربر، مانند زبان های برنامه نویسی وجود ندارد.

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

وقتی یک صفحه به زبان های سمت سرویس دهنده نوشته می شود، این صفحه وب تنها شامل کدهای HTML نیست. بلکه شامل کدهای برنامه نویسی به زبان های دیگر نیز مانند پایتون، asp ، php نیز می باشد که مرورگر مشتری قادر به درک آنها نیست. این کدها توسط یک سرویس دهنده وب خوانده و به زبان HTML ترجمه می شوند و سپس برای مرورگر مشتری ارسال می شوند.