با انواع زبان های برنامه نویسی و کاربرد آن ها بیشتر آشنا شویم
در این مطلب قصد داریم تا به معرفی انواع زبان های برنامه نویسی بپردازیم. تعاریف بیشماری از برنامهنویسی کامپیوتر وجود دارند، اما درستترین آن چگونگی حل مشکلات کامپیوتری است. کامپیوترها ابزار هستند، اما اسرارآمیز یا جادویی نیستند. برنامههای کامپیوتری (یا نرمافزار)، ابزاری هستند که باعث کارکرد کامپیوترها میشوند. بدون نرمافزار، کامپیوترهای مدرن فقط ماشینهای پیچیدهای برای تبدیل برق به گرما هستند.
این نرمافزار در کامپیوتر شما است که سیستمعامل شما، مرورگر، ایمیل، بازیها، پخشکننده فیلم و... را اجرا میکند. تقریباً همه چیز کامپیوتر! برنامهنویسی یک کار خلاقانه است. هیچ راه درست یا غلطی برای حل یک مشکل وجود ندارد، همانطور که هیچ راهی درست یا غلط برای ترسیم یک تصویر وجود ندارد. انتخابهایی وجود دارند که باید انجام شوند و ممکن است یک راه از دیگری بهتر به نظر برسد، اما این بدان معنا نیست که راه دیگر اشتباه است!
برنامه نویس با کمک مهارت و تجربه مناسب از این قابلیت برخوردار است تا برای یک مشکل راهحلهای نامحدودی را ایجاد کند. زمانی که شما با کمک انواع زبان های برنامه نویسی یک برنامه را برای کامپیوتر ایجاد میکنید، در واقع دستورالعملهای مختلفی را به آن میدهید که باید دقیق و به ترتیب به اجرا در بیایند. برنامهها اغلب بهعنوان کد و برنامهنویسی بهعنوان کدگذاری شناخته میشود. در ادامه به بررسی برنامهنویسی و انواع زبان های برنامه نویسی میپردازیم.
زبان برنامهنویسی
متأسفانه کامپیوترها درکی از زبانهایی همچون انگلیسی یا اسپانیایی ندارند؛ بنابراین ما باید از زبان برنامهنویسی که میفهمند برای راهنمایی و هدایت آنها استفاده کنیم. زبانهای برنامهنویسی مختلفی وجود دارند که همه آنها ویژگیهای خاص خود را دارند. زبانهای خاصی برای انواع خاصی از کارها و پروژهها مناسبتر هستند، اما هیچ زبانی وجود ندارد که "بهترین" باشد.
شما میتوانید با استفاده از زبانی به نام پایتون python برنامهنویسی کنید. پایتون یکی از انواع زبان های برنامه نویسی به نام "زبانهای برنامهنویسی عمومی" است که میتواند برای حل مشکلات مختلف مورداستفاده قرار گیرد. سایر زبانهای محبوب در این دسته C ، Ruby ، Java و BASIC هستند. برای خواندن یک کد نیازی به برنامهنویس کامپیوتر نیست، این کدها شامل حروف انگلیسی بوده که قابل خواندن هستند؛ اگرچه برای همه قابلفهم نیستند.
انواع زبان های برنامه نویسی
زبانهای مختلف برنامهنویسی برای بیان مجموعهای از دستورالعملهای دقیق در یک کامپیوتر دیجیتال هستند. اگرچه انواع زیادی از زبانهای برنامهنویسی کامپیوتر وجود دارد، اما تعداد کمی از آنها به طور گسترده استفاده میشوند. زبانهای سطح بالا برنامهنویس را از نگرانی در مورد ذخیرهسازی و عملکرد دادهها در امان نگه میدارند و کدهایی را ارائه میدهند که راحتتر توسط برنامهنویسان نوشته و خوانده میشوند.
زبان ماشین و اسمبلی (Machine and assembly languages)
زبان ماشین، شامل کدهای عددی برای عملیاتی است که یک کامپیوتر خاص میتواند مستقیماً آنها را اجرا کند. کدها رشتههایی از ارقام دوتایی ("بیت") هستند که اغلب برای مشاهده به هگزادسیمال (پایه 16) تبدیل میشوند. خواندن و نوشتن زبان ماشین دشوار است؛ زیرا شبیه نماد ریاضی معمولی یا زبان انسان نیست و کدهای آن در کامپیوترها متفاوت است.
زبان اسمبلی یک سطح بالاتر از زبان ماشین است. از دستورالعملهای خیلی کوتاه برای کد ها استفاده میکند و به برنامهنویس اجازه میدهد تا نام بلوکهایی که دادهها را ذخیره میکند، معرفی کند. مانند زبان ماشین، زبان اسمبلی نیاز به دانش دقیق در مورد معماری داخلی کامپیوتر دارد.
تفاوت زبان ماشین و زبان اسمبلی
- زبان ماشین فقط توسط کامپیوتر قابلدرک است، درحالیکه زبان اسمبلی فقط توسط انسان قابلدرک است نه توسط کامپیوتر.
- در زبان ماشین، دادهها فقط با کمک فرمت دودویی، هگزادسیمال و هشت ضلعی نمایش داده میشوند، درحالیکه در زبان اسمبلی دادهها را میتوان با کمک یادآوریهایی مانند Mov ، Add ، Sub ، End و غیره نمایش داد.
- درک زبان ماشین برای انسان بسیار دشوار است و بر عکس درک زبان اسمبلی در مقایسه با زبان ماشین برای انسان آسان است.
- اصلاحات و رفع خطا را نمیتوان در زبان ماشین انجام داد ولی اصلاحات و رفع خطاها را میتوان در زبان اسمبلی به انجام رساند.
زبانهای الگوریتمی (Algorithmic language)
زبانهای الگوریتمی برای بیان محاسبات ریاضی یا نمادها طراحی شدهاند. آنها میتوانند عملیات جبری را با نماد مشابه ریاضی بیان کنند. زبانهای الگوریتمی، یکی از انواع زبان های برنامه نویسی سطح بالا هستند که دارای انواع مختلفی بوده که در ادامه به بررسی مهمترین آنها میپردازیم.
FORTRAN
اولین زبان الگوریتمی مهم فرترن بود که در سال 1957 توسط تیم IBM به رهبری جان بکوس طراحی شد. این زبان، برای محاسبات علمی با اعداد واقعی و مجموعهای از آنها که بهصورت آرایههای یکبعدی یا چندبعدی سازماندهی شده بودند، در نظر گرفته شده بود.
ساختارهای کنترلی آن شامل دستورات IF مشروط، حلقههای تکراری بهاصطلاح حلقههای DO و یک دستور GOTO است که امکان اجرای بیرویه کد برنامه را فراهم میکند. فرترن داشتن برنامههای فرعی برای عملیات ریاضی رایج را راحت کرده و همچنین کتابخانههایی از آنها ایجاد کرد.
ALGOL
الگل (زبان الگوریتمی) توسط کمیتهای از دانشمندان کامپیوتر آمریکایی و اروپایی در طول سالهای 1958-60 برای انتشار الگوریتمها و همچنین انجام محاسبات طراحی شد. الگل دارای برنامههای فرعی بازگشتی بود - روشهایی که میتوانستند خود را برای حل یک مشکل با کاهش آن به یک مشکل کوچکتر از همان نوع، فرابخوانند. در این زبان برنامهنویسی، هم دادهها و هم دستورالعملها و ساختار یکسانی برای یک برنامه کامل دارند.
الگل به طور گستردهای در اروپا مورداستفاده قرار گرفت و سالها بهعنوان زبانی که الگوریتمهای رایانه در آن منتشر میشد باقی ماند. بسیاری از زبانهای مهم مانند پاسکال و آدا (هر دو بعداً توضیح داده شد) از نسل آن هستند.
زبان برنامه نویسی C
زبان برنامهنویسی C در سال 1972 توسط دنیس ریچی و برایان کرنیگان در شرکت AT&T برای برنامهنویسی سیستمعاملهای کامپیوتر توسعه یافت. زبان برنامهنویسی C از نماد فشرده استفاده میکند و به برنامهنویس این امکان را میدهد که با آدرس دادهها و همچنین مقادیر آنها کار کند.
این قابلیت در برنامهنویسی سیستمها مهم است و C با زبان اسمبلی قدرت بهرهبرداری از همه ویژگیهای معماری داخلی کامپیوتر را دارد. زبان برنامهنویسی C، به همراه نسل C++ آن، یکی از رایجترین انواع زبان های برنامه نویسی باقی ماند.
زبانهای تجاری محور (Business-oriented language)
بخش دیگری از انواع زبان های برنامه نویسی مربوط به زبانهای تجاری محور هستند که دارای انواع مختلفی است. در این بخش به معرفی برخی از این زبانها میپردازیم.
COBOL
COBOL زبان متداول تجاری از زمان تأسیس در سال 1959 بهشدت مورداستفاده مشاغل قرار گرفته است. این زبان با زبانهای علمی که در آنها آرایههای همگن اعدادی رایج بوده، متضاد است.
SQL
SQL زبان پرسوجو ساختاریافته است. SQL این امکان را برای پرسوجو از پایگاهداده برای اطلاعاتی که در یک رابطه معین وجود دارد، فراهم میکند. بهعنوانمثال، یک پرسوجو ممکن است "یافتن همه پروندهها با نام خانوادگی اسمیت و شهر نیویورک" باشد. برنامههای پایگاهداده تجاری معمولاً از زبان مشابه SQL برای پرسوجوهای خود استفاده میکنند.
زبانهای آموزشمحور (Education-oriented languages)
دیگر دسته بندی انواع زبان های برنامه نویسی مربوط به زبانهای آموزش محور میشود. از مهمترین این زبانها میتوانیم به گزینههای زیر اشاره کنیم:
BASIC
BASIC کد راهنمای نمادین همهمنظوره برای مبتدیان، در کالج دارتموث در اواسط دهه 1960 توسط جان کمنی و توماس کورتز طراحی شد. یادگیری آن برای مبتدیان، بهویژه رشتههای علوم کامپیوتر، آسان بوده است.
یک برنامه BASIC خط به خط ترجمه شده و همانطور که ترجمه میشود اجرا میشود. این ویژگی پیدا کردن خطاهای برنامهنویسی را آسان میکند. آپدیت جدید آن بسیاری از دادهها و ساختارهای کنترلی سایر زبانهای اخیر را اتخاذ کرده است که باعث میشود قدرتمندتر باشد اما برای مبتدیان چندان مناسب نیست.
Pascal
حدود 1970 نیکلاوس ورث از سوئیس، پاسکال را برای آموزش برنامهنویسی ساختارمند طراحی کرد که بر استفاده منظم از ساختارهای کنترل شرطی و حلقه بدون دستورات GOTO تأکید داشت. اگرچه PASCAL از نظر نماد به ALGOL شباهت داشت، اما این امکان را داشت که انواع دادهها را برای سازماندهی اطلاعات پیچیده تعریف کند. این ویژگی فراتر از قابلیتهای ALGOL و FORTRAN و COBOL است.
LOGO
لوگو در اواخر دهه 1960 بهعنوان یک گویش ساده LISP برای آموزش پدید آمد. سیمور پاپرت و دیگران از آن در MIT برای آموزش تفکر ریاضی به دانشآموزان استفاده کردند. این زبان یکی از انواع زبان های برنامه نویسی است که با الگوهای خاص، برنامهریزی الگوهای پیچیده و جذاب را آسان کرد.
Hypertalk
Hypertalk بهعنوان "برنامهنویسی برای بقیه ما" توسط بیل اتکینسون برای مکینتاش اپل طراحی شد. با استفاده از یک نحو ساده شبیه انگلیسی، Hypertalk به هرکسی امکان میداد تا متن، گرافیک و صدا را بهسرعت در "مجموعههای مرتبط" ترکیب کند و با کلیک با ماوس بر روی دکمههای استاندارد ارائه شده توسط برنامه قابل حرکت است.
اگرچه هایپر تالک دارای ویژگیهای زیادی از زبانهای شی گرا بود، اما اپل آن را برای دیگر سیستمعاملهای رایانهای توسعه نداد و اجازه داد تا دچار مشکل شود.
زبانهای شی گرا (Object-oriented languages)
زبانهای شی گرا به مدیریت پیچیدگی در برنامههای بزرگ کمک میکنند. دادههای بسته و عملیات روی آنها را طوری نمایش میدهد که فقط عملیات برای عموم قابلدسترسی است و جزئیات داخلی ساختار دادهها پنهان است.
پنهان کردن این اطلاعات برنامهنویسی در مقیاس بزرگ را آسانتر کرد و به برنامهنویس اجازه داد در مورد هر قسمت از برنامه بهصورت جداگانه فکر کند. علاوه بر این، اشیاء ممکن است از اجسام کلیتر مشتق شده و قابلیتهای آنها را "به ارث برده" باشند. چنین سلسلهمراتبی از اشیاء امکان تعریف اشیاء تخصصی را بدون تکرار چیزهای کلیتر ممکن میسازد.
برنامهنویسی شی گرا با زبان سیمولا در سال (1967) آغاز شد که اطلاعات مخفی شده را به ALGOL اضافه کرد. یکی دیگر از زبانهای شیءگرا تأثیرگذار Smalltalk (1980) بود که در آن، مجموعهای از اشیا بود که با ارسال پیام به یکدیگر تعامل میکردند.
C++
زبان C ++ که توسط Bjarne Stroustrup در AT&T در اواسط دهه 1980 توسعه یافت، C را با افزودن اشیاء به آن و حفظ کارایی برنامههای C گسترش داد. این زبان یکی از مهمترین زبانها برای آموزش و برنامهنویسی صنعتی بوده است. بخشهای زیادی از سیستمعاملها به زبان C ++ نوشته شدهاند. ++ C ، همراه با جاوا، برای توسعه بستههای نرمافزاری تجاری که شامل چندین برنامه کاربردی مرتبط هستند، رواج یافته است.
C ++ یکی از سریعترین زبانها محسوب میشود و بسیار نزدیک به زبانهای سطح پایین است؛ بنابراین امکان کنترل کامل بر مدیریت حافظه را فراهم میکند. همین ویژگی و قابلیتهای بسیار زیاد، آن را به یکی از سختترین زبانها برای یادگیری و مدیریت در مقیاس بزرگ تبدیل کرده است.
C#
توسط اندرس هلزبرگ در مایکروسافت در سال 2000 توسعه یافت. C# دارای نحوی مشابه C و C ++ است و اغلب برای توسعه بازیها و برنامههای کاربردی برای سیستمعامل Microsoft Windows استفاده میشود.
Ada
نام آدا بهخاطر آگوستا آدا کینگ، کنتس لاولیس، دستیار مخترع انگلیسی قرن نوزدهم، چارلز بابیج بود و گاهی اوقات اولین برنامهنویس کامپیوتر نامیده میشود. زبان آدا، در اوایل دهه 1980 برای وزارت دفاع ایالات متحده برای برنامهنویسی در مقیاس بزرگ توسعه داده شد.
این نماد شبیه پاسکال را با قابلیت بستهبندی عملیات و دادهها در ماژولهای مستقل ترکیب کرد. شکل اول آن، Ada 83، کاملاً شی گرا نبود، اما Ada 95 بعدی اشیاء و توانایی ایجاد سلسلهمراتب از آنها را ارائه میداد. Ada همچنان یک زبان برای مهندسی برنامههای بزرگ است.
Java
در اوایل دهه 1990 جاوا توسط Sun Microsystems ، Inc ، بهعنوان یک زبان برنامهنویسی برای شبکه جهانی وب WWW طراحی شد. اگرچه در ظاهر شبیه به C ++ بود، اما شی گرا بود. به طور خاص، جاوا از ویژگیهای سطح پایینتر، از جمله توانایی دستکاری آدرسهای داده، برخوردار است، قابلیتی که نه مطلوب است و نه در برنامههای سیستمهای توزیع شده مفید است.
علاوه بر افزودن قابلیتهای تعاملی به اینترنت از طریق برنامههای کاربردی وب، جاوا به طور گستردهای برای برنامهنویسی دستگاههای کوچک و قابلحمل مانند تلفنهای همراه استفاده میشود.
Python
زبان منبع باز پایتون توسط برنامهنویس هلندی Guido van Rossum در سال 1991 توسعه یافت. این زبان بهعنوان یک زبان آسان برای استفاده طراحی شد، با ویژگیهایی مانند استفاده از تورفتگی بهجای براکت برای گروهبندی جملات. پایتون همچنین یک زبان بسیار جمعوجور است، طوری طراحی شده است که کارهای پیچیده تنها با چند عبارت قابلاجرا هستند. در دهه 2010، پایتون به همراه جاوا و جاوا اسکریپت به یکی از محبوبترین زبانهای برنامهنویسی تبدیل شد.
زبانهای نمایشدهنده شبکه جهانی وب
HTML
شبکه جهانی وب سیستمی برای نمایش متن، گرافیک و صوت بازیابی شده از طریق اینترنت بر روی مانیتور کامپیوتر است. HTML زبان نشانهگذاری برای کدگذاری صفحات وب است. HTML اجازه نمیدهد که عناصر متن جدید تعریف شود. یعنی قابل توسعه نیست.
XML
XML زبان نشانهگذاری قابل توسعه یک فرم ساده SGML است که برای اسنادی که در وب منتشر میشوند در نظر گرفته شده است.
جمعبندی
بهطورکلی ساختار دادهها و الگوریتمها قلب برنامهنویسی هستند. هنگامی که با هر یک از زبانها راحت هستید و برنامههای اساسی را ایجاد میکنید، کار بعدی که باید انجام دهید یادگیری ساختار دادهها و الگوریتمها است. در این مقاله به برنامهنویسی و انواع زبان های برنامه نویسی و کاربرد آنها پرداختیم. زبانهای برنامهنویسی انواع مختلفی دارند و سعی کردیم از مهمترین آنها صحبت کنیم و اطلاعات مفیدی در اختیار شما قرار دهیم.