هدف این درس، آشنایی دانشجویان با اصول طراحی و تحلیل زبانهای برنامهسازی، بررسی پارادایمهای مختلف، نحو و معنای زبانها، و طراحی ویژگیهای یک زبان برنامهسازی است. دانشجویان در پایان درس توانایی تحلیل زبانهای موجود، درک مزایا و معایب طراحی آنها و اجرای پروژههای ساده طراحی زبان یا مفسر را خواهند داشت.
این دوره شامل 1 فصل، 1 درس و 0 ساعت محتوا میباشد.
جلسه اول: مقدمهای بر زبانهای برنامهنویسی، تاریخچه و نقش آنها
۱. زبان برنامهنویسی چیست؟
یک زبان برنامهنویسی در اصل مجموعهای از قوانین (نحو و واژگان) است که برای برقراری ارتباط با یک ماشین، معمولاً یک کامپیوتر، استفاده میشود. این زبانها به عنوان مترجمی بین تفکر و منطق انسانی و دستورالعملهای قابل فهم برای سختافزار کامپیوتر عمل میکنند.
به زبان ساده، برنامهنویسی یعنی: نوشتن مجموعهای از دستورالعملهای دقیق و بدون ابهام (الگوریتم) به زبانی که کامپیوتر بتواند آنها را اجرا کند تا یک وظیفه خاص (مانند محاسبه، نمایش داده، یا مدیریت دستگاهها) انجام شود.
دو جزء اصلی هر زبان برنامهنویسی:
نحو (Syntax): قوانین ساختاری زبان است که تعیین میکند چگونه کلمات کلیدی، عملگرها و ساختارهای دستوری باید به ترتیب قرار گیرند تا یک جمله (دستور) معتبر تشکیل شود. (مثلاً در پایتون، تورفتگیها معنا دارند، در حالی که در C++ از سمیکالن (;) استفاده میشود.)
معناشناسی (Semantics): به معنا یا مفهوم پشت ساختارهای نحوی اشاره دارد. یعنی یک دستور معتبر چه کاری را انجام خواهد داد.
۲. مروری کوتاه بر تاریخچه
تاریخچه زبانهای برنامهنویسی را میتوان به چند نسل تقسیم کرد:
الف. نسل اول و دوم (دهه ۱۹۴۰ تا ۱۹۵۰): زبانهای سطح پایین
زبان ماشین (ماشین کد): اولین نسل، متشکل از کدهای باینری (۰ و ۱) که مستقیماً توسط CPU اجرا میشدند. بسیار دشوار برای برنامهنویسی.
زبان اسمبلی: نسل دوم، که از نمادهای کوتاهی (Mnemonics) برای جایگزینی کدهای باینری استفاده میکرد (مثلاً ADD به جای 10110010). این زبانها به شدت به معماری سختافزار وابسته بودند.
ب. نسل سوم (دهه ۱۹۵۰ تا ۱۹۸۰): زبانهای سطح بالا (High-Level Languages)
این زبانها به زبان انسان نزدیکتر بودند و فهم و نوشتن آنها آسانتر شد و قابلیت انتقال (Portability) بیشتری داشتند.
FORTRAN (۱۹۵۷): اولین زبان سطح بالا که به طور گسترده مورد استفاده قرار گرفت، عمدتاً برای محاسبات علمی و مهندسی.
LISP (۱۹۵۸): یکی از قدیمیترین زبانها که هنوز هم مورد استفاده است، مهم برای تحقیقات هوش مصنوعی.
COBOL (۱۹۵۹): متمرکز بر پردازش دادههای تجاری.
BASIC (۱۹۶۴): برای آموزش و استفاده آسان طراحی شد.
C (اوایل دهه ۱۹۷۰): زبانی قدرتمند که امکان دسترسی سطح پایین (نزدیک به سختافزار) و سطح بالا را فراهم کرد و سنگ بنای سیستمعاملهای مدرن (مانند یونیکس) شد.
ج. نسل چهارم و پنجم (دهه ۱۹۸۰ به بعد): زبانهای شیگرا و کاربردی
C++ (اوایل دهه ۱۹۸۰): توسعهای از C با اضافه کردن مفاهیم برنامهنویسی شیءگرا (OOP) مانند کلاسها و ارثبری.
Python (۱۹۹۱): طراحی شده با تمرکز بر خوانایی کد و سادگی سینتکس.
Java (۱۹۹۵): طراحی شده برای “یک بار بنویس، همه جا اجرا کن” (Write Once, Run Anywhere).
JavaScript (۱۹۹۵): زبان اصلی توسعه وب در سمت کلاینت (مرورگر).
۳. نقش زبانهای برنامهنویسی در دنیای امروز
زبانهای برنامهنویسی دیگر صرفاً ابزاری برای ساخت نرمافزارهای دسکتاپ نیستند؛ آنها شریان حیاتی تمام فناوری مدرن هستند:
توسعه وب: از فرانتاند (نمایش آنچه کاربر میبیند - جاوااسکریپت، ریاکت) تا بکاند (منطق سرور - پایتون، نودجیاس، جاوا، PHP).
علم داده و هوش مصنوعی (AI/ML): پایتون با کتابخانههایی مانند TensorFlow و PyTorch، زبان اصلی برای آموزش مدلهای یادگیری ماشین و تحلیل دادههای حجیم است.
برنامههای موبایل: Swift/Kotlin برای توسعه نیتیو (Native) یا فریمورکهایی مانند React Native و Flutter برای توسعه کراس-پلتفرم.
سیستمهای تعبیهشده (Embedded Systems): زبانهایی مانند C و C++ برای کنترل سختافزار در دستگاههای اینترنت اشیا (IoT)، خودروها و لوازم الکترونیکی کوچک ضروری هستند.
بازیسازی: C++ برای موتورهای بازیسازی سطح بالا (مانند Unreal Engine) و C# برای موتور Unity بسیار پرکاربرد هستند.
نتیجهگیری: انتخاب زبان برنامهنویسی مناسب کاملاً به هدفی که شما دنبال میکنید بستگی دارد. در جلسات آینده، بسته به علاقه شما، میتوانیم عمیقتر به سینتکس و کاربردهای یک زبان خاص بپردازیم.
پاسخ به پرسش