پاورپوینت کامل و جامع با عنوان طراحی و پیاده سازی زبان های برنامه سازی (Programming Languages Design And Implementation) در 485 اسلاید

 

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

  • نسل اول زبان ماشین – زبان صفرو یک
  • نسل دوم زبانهایی مانند اسمبلی -قابل فهم تر برای انسان
  • نسل سوم زبانهایی مانند کوبول و پی ال وان و… -دستورهای قابل فهم تر برای انسان و نیاز به کامپایلرها
  • نسل چهارم مثل زبانهای اوراکل و فاکس پرو و اس کیو الها – نزدیک به محاوره‌های انسانی
  • نسل پنج زبانهایی مانند prolog , ops5 ، ویژوال بیسیک- تمرکز بر حل مسئله و استفاده از الگوریتمهای نوشته شده توسط برنامه‌نویس

یک زبان برنامه‌نویسی یک زبان مصنوعی است که برای بیان محاسباتی که توسط یک ماشین (مخصوصا رایانه) قابل انجام است، طراحی شده‌است. زبان‌های برنامه‌نویسی برای ایجاد برنامه‌هایی به کار می‌روند که رفتار یک ماشین را مشخص می‌کنند، الگوریتم دقیق را بیان می‌کنند، یا روشی برای ارتباط انسانند. بسیاری از زبان‌های برنامه‌نویسی تعدادی قالب از ویژگی‌های نوشته شده دستوری(syntax) و معناشناسی (semantics) دارند، چرا که رایانه‌ها دستورهای دقیقاً مشخص نیاز دارند. برخی توسط سند خصوصیات (specification document) تعیین شده‌اند. (برای مثال یک استاندارد ISO)، در حالی که برخی دیگر دارای پیاده‌سازی غالبی می‌باشند. (مانند Perl) اولین زبان برنامه‌نویسی به قبل از اختراع رایانه بازمی‌گردد، و برای هدایت رفتار ماشین‌هایی مانند دستگاه‌های نساجی اتوماتیک و نوازنده‌های پیانو به کار می‌رفت. هزاران زبان برنامه‌نویسی خلق شده‌اند، بیشتر در زمینهٔ رایانه، زمینه‌ای که هر ساله بسیاری دیگر ایجاد می‌شوند.

تقسیم‌بندی

زبان‌های برنامه‌نویسی را می‌توان از چهار دیدگاه متفاوت مورد بررسی قرار داده و تقسیم‌بندی کرد: الف) روش‌های برنامه‌نویسی

  1. زیر روالی
  2. ساخت یافته
  3. مدولار
  4. شئ گرا

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

  1. سطح پایین
  2. سطح میانی
  3. سطح بالا

ج) نوع ترجمه

  1. مفسری
  2. کامپایلری

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

  1. مبتنی بر متن
  2. مبتنی بر گرافیک (ویژوال)

تعاریف

ویژگی‌هایی که غالباً برای تشکیل یک زبان برنامه‌نویسی مهم شمرده می‌شوند:

  • تابع :یک زبان برنامه‌نویسی، زبانی است که برای نوشتن برنامه‌های رایانه‌ای به کار می‌رود که رایانه‌ای را برای انجام محاسبات یا اجرای الگوریتم یا احتمالاً کنترل دستگاه‌های خارجی مثل چاپگر، ربات و… درگیر می‌کنند.
  • هدف: زبان‌های برنامه‌نویسی با زبان‌های طبیعی تفاوت دارند و آن اینکه زبان‌های طبیعی فقط برای فعل و انفعالات بین مردم به کار می‌روند، در حالیکه زبان‌های برنامه‌نویسی همچنین به انسانها اجازه می‌دهد که از طریق دستورهای با ماشین‌ها ارتباط برقرار کنند. برخی زبان‌های برنامه‌نویسی بوسیله یک دستگاه استفاده می‌شوند تا دستگاه دیگری را کنترل کند. برای مثال برنامه‌های پست اسکریپت(post script) غالباً توسط برنامه دیگری برای کنترل یک چاپگر یا نمایشگر ایجاد می‌شوند.
  • ساختارها: زبان‌های برنامه‌نویسی ممکن است ساختارهایی برای تعریف و تغییر داده ساختارها یا کنترل جریان اجرا داشته باشند.
  • توان بیانگر: نظریه محاسبات، زبان‌ها را بوسیله محاسباتی که توان بیان آنها را دارند طبقه‌بندی می‌کند. تمام زبان‌های «کامل تورینگ» می‌توانند مجموعه یکسانی از الگوریتم‌ها را پیاده‌سازی کنند.ANSI/ISO SQL و Charity مثال‌هایی هستند از زبان‌هایی که کامل تورینگ نیستند، ولی غالباً زبان برنامه‌نویسی نامیده می‌شوند.

برخی مؤلفین اصطلاح «زبان برنامه‌نویسی» را محدود به آنهایی می‌کنند که می‌توانند تمام الگوریتم‌های ممکن را پیاده‌سازی کنند، گاهی اوقات اصطلاح «زبان رایانه» برای زبان‌های برنامه‌نویسی محدودتر به کار می‌رود. زبان‌های غیر محاسباتی، مانند زبان‌های مارک آپ(markup) HTML یا گرامرهای قراردادی مثل BNF، معمولاً زبان برنامه‌نویسی محسوب نمی‌شوند. یک زبان برنامه‌نویسی (که می‌تواند کامل تورینگ نباشد) ممکن است در این زبان‌های غیر محاسباتی (میزبان) تعبیه شوند.

 

فهرست مطالب:

فصل اول: مقدمات

دلايل مطالعه زبان هاي برنامه سازي

دامنه هاي برنامه نويسي

دسته بندي زبان ها

موضوعات ويژه

معيارهاي ارزيابي زبان

عوامل موثر بر طراحي زبان

روش هاي پياده سازي زبان

و…

فصل دوم: مفاهیم اساسی

مفهوم اشياي داده

اسامي در زبان ها

ثوابت داراي نام

متغیر

نام هاي مستعار

مفهوم انقياد

انقياد صفات به متغيرها

انقيادهاي نوع

انقياد حافظه و طول عمر انواع متغيرها

و…

فصل سوم: انواع داده های اولیه

انواع داده ها

توصيفگر نوع داده

سطوح بررسي انواع داده ها

بررسي انواع داده اوليه

انواع داده اسكالر

انواع داده مركب

فايل های ورودي – خروجي

و…

فصل چهارم: انواع داده های ساختاری

سطوح بررسي ساختمان داده ها

مشخصات انواع ساختمان داده

عمليات متداول در ساختمان داده ها

پياده سازي انواع ساختمان داده

نمايش حافظه ساختمان داده

نكات نمايش حافظه ساختمان داده ها

پياده سازي عمليات انتخاب عنصر در نمايش ترتيبي

پياده سازي عمل انتخاب عنصر در نمايش پيوندي

و…

فصل پنجم: بسته بندی و انتزاع

مفهوم انتزاع

نوع داده انتزاعي

نكات طراحي انواع داده انتزاعي

نوع داده انتزاعي در Ada

انواع داده انتزاعي كه پارامتر دارند

تعريف نوع جديد

تعريف انواعي جديدي كه پارامتر دارند

ساختارهاي بسته بندي

بسته بندي اسامي

بسته بندي با زير برنامه ها

و…

فصل ششم: شی گرایی

كلاس ها و اشيا

كلاس ها در ++C

كلاس ها در Java

كلاس ها در #C

پياده سازي كلاس ها

وراثت

انقياد پوياي متدها

چندريختي

و…

فصل هفتم: عبارات و کنترل ترتیب اجرا

كنترل ترتيب ضمني و صريح

كنترل ترتيب در سطح عبارات

عبارات محاسباتی

ترتيب ارزيابي عملگرها

شركت پذيري

پرانتزها

عبارات شرطی

ترتيب ارزيابي عملوند

و…

فصل هشتم: حوزه ها و زیربرنامه ها

ويژگي هاي كلي زيربرنامه ها

انواع زيربرنامه ها

نكات طراحي زيربرنامه ها

وابستگي ها و محيط هاي ارجاع

قوانين حوزه زبان

محيط هاي ارجاع محلي

پارامترها

مدل هاي معنايي ارسال پارامترها

و…

فصل نهم: پیاده سازی زیربرنامه

معناي فراخواني و برگشت

پياده سازي زيربرنامه هاي ساده

پياده سازي زيربرنامه هايي با متغيرهاي پوياي پشته اي

زيربرنامه هاي تودرتو

و…

فصل دهم: مدیریت حافظه

عناصري كه نياز به حافظه دارند

راهبردهاي مديريت حافظه

اهميت مديريت حافظه

مراحل مديريت حافظه

بخش هاي حافظه در زمان اجرا

انواع مديريت حافظه

مديريت حافظه ايستا

و…

 

 

بازدیدها: 0

مطالب مرتبط

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

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