بخشی از پاورپوینت
اسلاید 1 :
اصول ترجمه زبان
به نام خدا
اسلاید 2 :
فهرست مطالب
نحو زبان برنامه نویسی
معیار عمومی نحو
عناصر نحوی زبان
ساختار برنامه ـ زیربرنامه
مراحل ترجمه ی برنامه
تحلیل برنامه منبع
ترکیب برنامه مقصد
مدل های رسمی ترجمه(گرامرها)
اسلاید 3 :
نحو زبان برنامه سازی
نحو آرایش واژه ها به عنوان عناصری از یک دنباله است، که رابطه بین آن ها را نشان میدهد.
. معتبر نیستx=yz+ معتبراست ولی cدر x=y+zدستور
برای توصیف یک زبان برنامه سازی به بیش از نحو آن زبان نیاز داریم.
. اعلان شده یا نهxمشخص نمی کند آیا x=5.1 + 2.2نحو دستور
اسلاید 4 :
معیار عمومی نحو
جزئیات نحو بر اساس معیارهای زیر مشخص می شود:
قابلیت خوانایی
اگر ساختار مربوط به الگوریتم و دادهای استفاده شده در برنامه به خوبی روشن باشد خوانایی بالاست.
هر چه دستورات با جزئیات کامل تری نوشته شود قابلیت خوانایی بیشتر می شود.
Int a[3][2]={{1,2},{2,3},{3,4}};
Int a[3][2]={1,2,2,3,3,4};
اسلاید 5 :
…معیار عمومی نحو
قابلیت نوشتن
قابلیت نوشتن،با استفاده از ساختارهای نحوی منظم و دقیق حاصل می شود.
قابلیت نوشتن و خواندن گاهی با هم در تضادند(مثلا در زبان(c یا در دستور زیر:
افزونگی:اگر نحوی،یک عنصر اطلاعاتی را به چند روش ارائه کند.
برخی از زبان ها تمایل دارند که افزونگی را کم کنند.(مثل قواعد نام گذاری در فرترن.)
اسلاید 6 :
….معیار عمومی نحو
سهولت بازرسی
صحت برنامه یا سهولت بازرسی با قابلیت خوانایی و نوشتن در ارتباط است.
سهولت ترجمه
خوانایی و نوشتن از معیار های مورد نیاز برای برنامه نویس و سهولت ترجمه معیار مترجم است.
کلید سهولت ترجمه
لیسپ مثالی از ساختار برنامه ای است که نه قابل خواندن است و نه قابل نوشتن بلکه ترجمه آن آسان است.
با افزایش تعداد ساختارهای نحوی ترجمه مشکل تر می شود.مثل کوبول
نظم ساختار
اسلاید 7 :
…معیار عمومی نحو
عدم وجود ابهام
ساختاری مبهم است که دو یا چند تفسیر از آن به دست آید.
به عنوان مثال در پاسکال والگول دو شکل مختلف از دستورات شرطی وجود دارد:
If boolean expression then statement else statement2
2) If boolean expression then statement1
وقتی این دو دستور با هم ترکیب می شوند دستور مبهم زیر به وجود می آید.
If boolean expression1 then[( if boolean expression2 then
statement1)else statement2]
اسلاید 8 :
.معیار عمومی نحو
رفع ابهام در الگول : قرار دادن دستورات شرطی در begin.end
رفع ابهام در ادا : هر دستور if با end if خاتمه می یابد.
رفع ابهام در cو پاسکال : آخرین else با نزدیکترین then قبل از آن مطابقت پیدا می کند.
اسلاید 9 :
عناصر نحوی زبان
کاراکتر ها
انتخاب مجموعه کاراکتر،اولین کار در طراحی نحو زبان است و معمولا یک مجموعه کاراکتر استاندارد انتخاب می شود.
مجموعه کاراکتر cدر اغلب تجهیزات ورودی-خروجی مهیا است ولی در APL این طور نیست.
شناسه ها
رشته ای از حروف و ارقام که با حرف شروع می شوند
اسلاید 10 :
…عناصر نحوی زبان
نمادهای عملگر
اغلب زبان ها از کارکترهای + و- برای اعمال محاسباتی استفاده می کنند.
در بعضی از زبان ها برای اعمال اولیه از شناسه ها استفاده می کنند.
مثل PLUS,TIMES در لیسپ
کلمات کلیدی و کلمات رزروی
کلمه کلیدی شناسه ای است که به عنوان بخش ثابتی از نحو یک دستور استفاده می شود.
کلمه کلیدی در صورتی کلمه رزروی است که نتواند به عنوان شناسه انتخاب شود. مثل if در زبان c
اسلاید 11 :
…عناصر نحوی زبان
کلمات اضافی
کلمات اختیاری که برای افزایش خوانایی است.
مثال: go to label
توضیحات
از توضیحات برای افزایش قابلیت خوانایی و برای document سازی استفاده می کنیم.
توضیحات به شکل های گوناگونی ظاهر می شوند.
مثل: /* */ در c یا ! در فرترن90
اسلاید 12 :
…عناصر نحوی زبان
فضای خالی(space)
قاعده استفاده از فضای خالی در زبان های مختلف متفاوت است.مثلا در فرترن فضای خالی معنای خاصی ندارد.درC فضای خالی حذف می شود اما نه همیشه(+= یک عملگر ترکیبی است ولی + = منجر به خطای نحوی می شود.)
فاصله ها و محصور کننده ها
محصور کننده ها فاصله های جفتی هستند،مثل جفت های پرانتز یاbegin…end
فاصله ها برای بالا بردن قابلیت خوانایی استفاده می شوند.
اسلاید 13 :
…عناصر نحوی زبان
فرمتهای آزاد و فرمتهای ثابت
فرمت آزاد یعنی دستورات برنامه می توانند از هر جایی از خط شروع شود.نحو فرمت ثابت از موقعیت های خاصی از خط استفاده می کند.
معمولا از فرمت نسبتا ثابت استفاده می شود،مثلا در فرترن ،5 کاراکتر اول برای برچسب دستورات اختصاص می یابد.
عبارت
عبارات توابعی هستند که به اشیای داده موجود در برنامه دسترسی دارند و مقداری را بر می گردانند.
اسلاید 14 :
دستورات
دستورات مهمترین جز نحوی در زبان های دستوری هستند.نحو دستورات تاثیر حیاتی بر روی نظم،قابلیت خوانایی و قابلیت نوشتن یک زبان دارد.
بعضی از دستورات از یک قالب دستور اصلی استفاده می کنند(دستور if) اما بعضی دیگر از نحوهای مختلفی برای هر نوع دستور استفاده می کنند(تعریف آرایه)
آن هایی که از یک فرمت استفاده می کنند(مثل اسنوبال) به نظم اهمیت می دهند،در حالی که بقیه به قابلیت خوانایی(مثل کوبول.)
اسلاید 15 :
ساختار برنامه – زیربرنامه
سازمان نحوی برنامه – زیربرنامه ،از زبانی به زبان دیگر متفاوت است.
این تفاوت ها عبارتند از:
تعریف زیربرنامه ها به صورت جداگانه
تعریف هر زیربرنامه به عنوان یک واحد نحوی جداگانه در نظر گرفته می شود و هر زیر برنامه به طور جدا ترجمه می شود و هنگام بار کردن به هم پیوند زده می شوند.(فرترن چنین ساختاری دارد.)
اسلاید 16 :
تعریف داده ها به صورت جداگانه
تمام عملیاتی که شئ داده خاصی را دستکاری می کنند در یک زیربرنامه قرار می گیرند.
مانند : مفهوم کلاس ها در زبان c
تعریف زیربرنامه به صورت تودر تو
تعریف زیربرنامه های تودر تو در دوران اولیه الگول ،فرترن و پاسکال رایج بود.
اما در جاوا وc++ حذف شد.
تعریف زیربرنامه ها به صورت تودر تو ،محیط ارجاع غیرمحلی را برای زیربرنامه ها فراهم می کند.(تعریف توابع به صورت تو در تو.)
اسلاید 17 :
تعریف واسط مجزا
در این نوع زبان ها ،پیاده سازی زبان شامل چندین زیر برنامه است که باید با هم تعامل داشته باشند این تعامل توسط واسط انجام می شود.(مثل فایل های header(پسوند”.h” )در c که حاوی تعاریف این واسط است.)
توصیف داده ها جدا از دستورات اجرایی است
برای مثال در کوبول . بخش داده ها ،بخش رویه ها(دستورات اجرایی.)
اسلاید 18 :
تعریف زیربرنامه ها به طور غیرمجزا
تمایز خاصی بین دستورات برنامه اصلی و زیربرنامه ها وجود ندارد مثل اسنوبال 4
و بیسیک
مثالی از زبان بیسیک :
اسلاید 19 :
ترجمه ممکن است بسیار ساده باشد، مانند پرولوگ و لیسپ. اما اغلب پیچیده است مانند ادا
پیاده سازی زبانها بصورت مفسری سرعت اجرای برنامه را پایین می آورد.
اگر ساختار برنامه اجرایی متفاوت از ساختار برنامه منبع باشد، فرآیند ترجمه پیچیده خواهد بود.
اجرای کارآمد مطلوب است وباید برنامه ها با ساختار اجرایی کارآمدی ترجمه شوند.
مراحل ترجمه
اسلاید 20 :
فرآیند ترجمه به طور منطقی به دو مرحله :
تحلیل برنامه منبع ورودی
ترکیب برنامه مقصد اجرایی
مترجم ها برحسب تعداد گذرهایی که بر روی برنامه منبع عمل می کنند، دسته بندی می شوند.