2.38k likes | 2.71k Views
نظریه زبانها و ماشینها. دانشگاه پيام نور. تهيه کننده: سیده فاطمه نورانی گروه: کامپيوتر. شناسنامه منبع. عنوان منبع: نظریه زبانها و ماشینها مترجم: مهندس سید حجت الله جلیلی انتشارات: پژوهشهای فرهنگی(1380) منبع اصلي: Languages & machines Written By: Thomas A.Sudkamp.
E N D
نظریه زبانها و ماشینها دانشگاه پيام نور تهيه کننده: سیده فاطمه نورانی گروه: کامپيوتر
شناسنامه منبع • عنوان منبع: نظریه زبانها و ماشینها • مترجم: مهندس سید حجت الله جلیلی • انتشارات: پژوهشهای فرهنگی(1380) • منبع اصلي: Languages & machines Written By: Thomas A.Sudkamp
جايگاه درس در رشته کامپيوتر • ضرورت اين درس: • ضرورت نياز به زبانهای سطح بالا • ضرورت ترجمه برنامه های نوشته شده با زبان سطح بالا به برنامه به زبان ماشين • تنوع زبانهای برنامه نويسی سطح بالا • دروس پيش نياز: • نوع درس: • تعدادکل ساعات تدريس: • تعداد جلسات تدريس:
فصل اول: ریاضیات مقدماتی اهداف رفتاري: دانشجو پس از مطالعه اين فصل با مفاهيم زير آشنا خواهد شد: • مفاهیم نمادگذاری و مفهوم تابع • نظریه مجموعه ها • مفهوم استقراء ریاضی • گراف و انواع آن
1-1 نمادگذاری • نماد ┌x┐: اشاره به کوچکترین عدد صحیح بزرگتر یا مساوی عدد حقیقی x دارد.┌-3.7┐=-3 ┌4.5┐= 5 نماد ┌x┐ را جزء صحیح بالای x می نامیم. • نماد └x┘: اشاره به بزرگترین عدد صحیح کوچکتر یا مساوی عدد حقیقی x دارد. └-3.7┘=-4 └4.5┘= 4 نماد └x┘ را جزء صحیح پایین x می نامیم.
1-2 توابع تابع f: تشکیل شده از یک متغیر با قاعده و قانون می باشد که به ازاء یک مقدار x ، مقدار منحصر به فردی را به f(x) نسبت می دهد. نمودار یک تابع: مجموعه ای است از کلیه زوجهای مرتب که بوسیله تابع تعیین می شوند. دامنه یک تابع: مجموعه مقادیری است که تابع به ازاء آنها تعریف می شود
تابع f:X Y پوشاست اگر که برد f کل مجموعهYباشد. 1-2 توابع تابع جامع: تابعی که از XبهY یک رابطه دودویی روی X*Y را داراست. تابع جزئی: رابطه بین X*Yاست وقتی که єf[x,y2]و єf[x,y1] تابع یک به یک: تابعی که در آن هر عنصر xبه یک عنصر مجزا در برد تصویر شود.
1-3 نظریه مجموعه ها نمادهای مجموعه : نماد є به معنای عضویت است. بطوریکه x є X مشخص می کند که x یک عضو یا عنصر مجموعه Xاست. از دو براکت{ } برای تعریف یک مجموعه استفاده می شود. X= { 1,2,3 } مجموعه هایی که تعداد زیاد یا تعداد نامتناهی عضو دارند بایستی به صورت ضمنی تعریف شوند. {n l n=m² for some natural number m}
زیر مجموعه: مجموعه Yزیر مجموعهXاست به طوری که Y X اگر هر عضو Y عضوی از X نیز باشد. 1-3 نظریه مجموعه ها یک مجموعه با اعضایش مشخص می شود. اگرY یک زیر مجموعه از Xباشد و X≠Yآنگاه به Yیک زیر مجموعه کامل X میگوئیم.
1-3 نظریه مجموعه ها اجتماع دو مجموعه به صورت زیر تعریف می شود: XυY = { z l z є X or z є Y} اختلاف دو مجموعه به صورت زیر تعریف می شود: X-Y = { z l z є X and z є Y} مکمل X نسبت به U مجموعه عناصری در U است که در X نمی باشد.
1-4 استقراء ریاضی مفاهیم مورد استفاده در استقراء ریاضی پایه استقراء: عبارت به ازاء n=1(یا هر مقدار اولیه دیگر) درست است. فرض استقراء: عبارت برای هر عدد دلخواه n≥1(یا هر مقدار اولیه دیگر) درست است. گام استقراء: اگر عبارت به ازاء n درست است، آنگاه به ازاء n+1نیز درست می باشد.
1-4 استقراء ریاضی مثال: برای کلیه اعداد صحیح مثبت نشان می دهیم که پایه استقراء: برای n=1داریم: فرض استقراء:فرض کنید که برای یک عدد صحیح مثبت دلخواه n داریم: گام استقراء:لازم است که نشان دهیم:
1-5 قضایا و پیش قضایا قضیه در لغت به معنای گفتاری است که صحت آن باید اثبات شود. مثال:برای هر عدد صحیح 0n› داریم: پیش قضیه به عنوان یک قضیه کمکی برای اثبات قضایای دیگر به کار می رود.
1 v1 v2 نمایشی از یک گراف: 6 2 4 3 v3 v4 5 1-6 گراف ها اجزای یک گراف: دایره ها نشانگر گره ها(vertices) خطوط ارتباط گره ها نشانگر لبه (edge)
1-6 گراف ها گراف جهت دار: اگر هر لبه گراف دارای جهت باشد به آن گراف جهت دار(digraph)می گویند. گراف وزن دار: اگر به لبه ها مقادیری تخصیص یافته باشدبه آن مقادیر وزن و به آن گراف،گراف وزن دار می گوییم. مسیر(path): در یک گراف جهت داربه دنباله ای از گره ها که بین هر گره و گره بعدی یک لبه وجود داشته باشد گفته می شود.
1-6 گراف ها چرخه(cycle): به مسیری که از یک گره شروع شده و به خودش باز می گردد گفته می شود. گراف چرخه ای: اگر گرافی شامل یک چرخه باشد به آن گراف چرخه ای گفته می شود. مسیر ساده: مسیری که از از یک گره دو بار عبور نکند. طول(length)یک مسیر در یک گراف وزن دار برابر مجموع وزنهای مسیر است.
1-6 گراف ها گراف بدون جهت: گرافی که لبه های ان هیچ جهتی نداشته باشند. گراف متصل:گرافی بدون جهت که بین هر دو گره دلخواه از آن یک مسیر مشخص وجود داشته باشد. درخت: یک گراف بدون جهت، پیوسته و بدون چرخه است. درخت ریشه دار:درختی که در آن یک گره به عنوان ریشه درخت انتخاب می شود. درخت پوشا برای G: یک زیر گراف متصل است که اولاً شامل همه گره های G بوده و ثانیاً یک درخت باشد.
فصل دوم: زبان ها اهداف رفتاري: دانشجو پس از مطالعه اين فصل با مفاهيم زير آشنا خواهد شد: • مفاهیم رشته و زبان • مشخصات زبان ها • مجموعه های با قاعده
2-1 رشته ها و زبانها زبان: یک زبان یک مجموعه از رشته ها روی یک الفبا است. رشته: یک رشته روی یک مجموعه X یک دنباله متناهی از عناصر Y است. الفبای زبان: به مجموعه عناصری که رشته ها از آن ساخته می شوند الفبای زبان گوئیم. رشته تهی: رشته فاقد عنصر را رشته تهی می نامیم که باλ نشان می دهیم.
2-1 رشته ها و زبانها *∑: فرض کنید که {a,b,c} = ∑باشد.عنصر *∑ شامل: λ : طول 0 a b c : طول 1 aa ab ac ba bb bc ca cb cc : طول 2 aaa aab aac aba abb abc aca acb acc : طول3 baa bab bac bba bbb bbc bca bcb bcc caa cab cac cba cbb cbc cca ccb ccc
2-1 رشته ها و زبانها یک زبان شامل رشته هایی روی الفبا است. تعریف زبان یک زبان روی یک الفبای ∑ یک زیر مجموعه از *∑ است. الحاق: الحاق یک عمل دودویی است که دو رشته را به عنوان ورودی گرفته و با چسباندن آنها در کنار هم یک رشته جدید ایجاد می کند. الحاق عمل اصلی در تولید رشته هاست.
2-1 رشته ها و زبانها فرض کنید کهvє∑* باشد.الحاقuوv، که به صورت uv نوشته می شودف یک عمل دودویی روی ∑* است که به صورت زیر تعریف می شود: (iپایه: اگر length(v)=0 باشد. آنگاهגּv= و uv=u خواهد بود. (iiگام بازگشت: فرض کنید که v یک رشته با طولlength(v)=n›0 باشد. در اینصورت ، به ازای برخی رشته هایw با طول n-1و aє∑، v=waو در نتیجه uv=(uw)a خواهد بود.
2-1 رشته ها و زبانها مثال: فرض کنید که v=ca , u=ab و w=bb باشد. در این صورت: uv= abca uw= cabb (uv)w=abcabb u(vw)=abcann
2-1 رشته ها و زبانها قضیه: فرض کنید که u,v,wє∑* باشد. در این صورت (uv)w= u(vw) خواهد بود.
2-1 رشته ها و زبانها معکوس رشته: فرض کنید که u یک رشته در باشد. معکوس u به صورت زیر تعریف می شود: (i پایه:length(u)=n0 . در این صورت u=λ و خواهد بود. (ii گام بازگشت: اگر length(u)=n›0 باشد، در اینصورت برای برخی رشته های w به طول n-1 و برخی u=wa , aє∑ معکوس رشته برابرخواهد بود:
قضیه: فرض کنید کهє∑*u,v باشد. در این صورت است 2-1 رشته ها و زبانها
2-2 مشخصات متناهی زبانها یک زبان به صورت یک مجموعه از رشته ها روی یک الفبا تعریف شده است. مثال: زبان L از رشته هایی روی a,b}{ که با یک a شروع شده و طول زوج دارند به صورت زیر تعریف می شود: (i پایه:aa,abєL . (ii گام بازگشت:اگر uєL باشد،آنگاهuaa,uab,uba,ubbєLاست. (iii همبستگی:یک رشتهuєL است اگر آن بتواند با تکرار متناهی از مرحله گام بازگشت از عنصر پایه ای بدست آید.
الحاق دو زبان X,Y: الحاق زبانهای XوY که به صورت XY نشان می دهیم، زبان XY={uv l uєX and vєY} است.n مرتبه الحاق X با خودش را به صورت X نشان می دهیم. X به صورت λ}{ تعریف می شود. n 0 2-2 مشخصات متناهی زبانها
مثال:فرض کنید که X={a,b,c} و Y= {abb,ba} است. در اینصورت XY= aabb,babb,cabb,aba,bba.cba }גּ{X = X =X= {a,b,c} X =XX= {aa,ab,ac,ba,bb,bc,ca,cb,cc} X =X X= {aaa,aab,aac,aba,abb,abc,aca,acb,acc, baa,bab,bac,bba,bbb,bbc,bca,bcb,bcc caa,cab,cac,cba,cbb,cbc,cca,ccb,ccc} 0 1 2 2 3 2-2 مشخصات متناهی زبانها
X* شامل تمامی رشته هایی است که می توانند از عناصر X ساخته شوند. X مجموعه رشته های غیر تهی ایجاد شده از X است. + 2-2 مشخصات متناهی زبانها فرض کنید که X یک مجموعه باشد. در این صورت:
2-2 مشخصات متناهی زبانها مثال: زبان L={a,b}*{bb}{a,b}* شامل تمامی رشته های روی {a,b } است که دارای زیر رشته bb می باشد. الحاق مجموعه {bb} ما را وجود bb در هر رشته از L مطمئن می سازد. مجموعه های {a,b} * مشخص می کنند که هر تعدادی aوb با هر ترتیبی می تواند بعد یا قبل از bb قرار بگیرند.
2-3 عبارات و مجموعه های با قاعده مجموعه باقاعده: مجموعه ای با قاعده است که بتواند با استفاده از عملیات اجتماع، الحاق و kleen star از مجموعه تهی، مجموعه شامل رشته تهی و اعضای مجموعه الفبا تولید شود.
2-3 عبارات و مجموعه های با قاعده فرض کنید که∑ یک الفبا باشد. مجموعه های باقاعده روی∑ به صورت بازگشتی زیر تعریف می شوند: (iپایه:Ø،λو {a}،به ازاء هر aє∑، مجموعه هایی باقاعده روی∑ هستند. (iiگام بازگشت: فرض کنید که Xو Y مجموعه هایی باقاعده روی∑ باشند. مجموعه هایXY,XυY و X* مجموعه هایی باقاعده روی∑ هستند. (iiiهمبستگی: X یک مجموعه باقاعده روی∑ است اگر آن بتواند با تکرار متناهی از مرحله گام بازگشت از عناصر پایه ای بدست آید.
2-3 عبارات و مجموعه های با قاعده مثال: مجموعه رشته هایی که با یک a شروع شده و شامل حداقل یک b هستند، مجموعه ای با قاعده روی {a,b} است.
2-3 عبارات و مجموعه های با قاعده عبارت با قاعده: فرض کنید که∑ یک الفبا است. عبارات باقاعده روی∑ به صورت بازگشتی زیر تعریف می شوند: (iپایه:Ø،λو {a}،به ازاء هر aє∑، عباراتی باقاعده روی∑ هستند. (iiگام بازگشت: فرض کنید که u,v عباراتی باقاعده روی∑ باشند.در این صورت عبارات uv, uυvو u* نیز عباراتی باقاعده روی∑ هستند. (iiiهمبستگی: u یک عبارت باقاعده روی∑ است اگر آن بتواند با تکرار متناهی از مرحله گام بازگشت از عناصر پایه ای بدست آید.
یک عبارت با قاعده برای مجموعه رشته هایی که شامل زیر رشته aa نمی باشند،عبارت با قاعده a*(ab )*υb*(ab )*a ،ممکن است شامل هیچ پیشوندی از bها نباشد. تمامی aها بایستی حداقل به یک b ختم شده و یا عنصر پایانی رشته باشند. + + 2-3 عبارات و مجموعه های با قاعده مثالهایی از عبارات با قاعده: (ia*ba*b(aυb)* (ii(aυb)*ba*ba* (iii(aυb)*b(aυb)*b(aυb)*
فصل سوم: گرامرهای مستقل از متن اهداف رفتاري: دانشجو پس از مطالعه اين فصل با مفاهيم زير آشنا خواهد شد: • گرامرها و زبان های مستقل از متن • اشتقاق و درخت آن • گرامرهای قاعده
3-1 گرامرها و زبانهای مستقل از متن جمله: به یک رشته درست از لحاظ نحوی، یک جمله (sentence) از زبان اطلاق می کنیم. عناصر الفبا به عناصر پایانی زبان موسومند. عناصر اضافی مورد استفاده در فرآیند تولید جملات جهت اجرای محدودیتهای نحوی زبان به متغیرها یا عناصر غیر پایانی موسومند.
3-1 گرامرها و زبانهای مستقل از متن گرامر مستقل از متن: یک گرامر مستقل از متن، یک چهارتایی (V,∑,P,S) است که درآن Vیک مجموعه متناهی از متغیرها،∑(الفبا)یک مجموعه متناهی از عناصر پایانی،P یک مجموعه متناهی از قوانین و S یک عنصر مشخص از V به نام عنصر ابتدایی است. فرض می شود که Vو∑مجموعه هایی غیر الحاقی هستند.
3-1 گرامرها و زبانهای مستقل از متن قانون: یک قانون که به آن یک تولید نیز می گویند، عضوی از مجموعه V×(Vυ∑)*است. قانون [A,w] معمولاً به صورت نوشته می شود.
نکته: قانونی به شکل به قانون تهی یا قانون لامبدا موسوم است. 3-1 گرامرها و زبانهای مستقل از متن نکته: از آنجائیکه رشته تهی در(Vυ∑)* وجود دارد، لذا λ نیز ممکن است در سمت راست یک قانون قرار گیرد.
3-1 گرامرها و زبانهای مستقل از متن مرحله اصلی در فرایند تولید، تبدیل یک رشته با استفاده از یک قانون است. مثال:بکارگیری قانون A w برای متغیر Aدر uAv رشته uwvرا تولید می کندکه آن را به صورت نشان می دهیم.
یک رشته w از v قابل اشتقاق است اگر یک دنباله متناهی از قوانین که v را به w تبدیل می کنند وجود داشته باشد. قابلیت اشتقاق w ازv را به صورت نشان می دهیم. 3-1 گرامرها و زبانهای مستقل از متن
مجموعه رشته های قابل اشتقاق از v: فرض کنید که G=(V,∑,P,S) یک گرامر مستقل از متن و V є(Vυ∑)* باشد. مجموعه رشته های قابل اشتقاق از v به صورت بازگشتی زیر تعریف می شود: (iپایه:v از v قابل اشتقاق است. (iiگام بازگشت: اگر u=xAy از v قابل اشتقاق بوده و A wєP باشد، آنگاه xwy از v قابل اشتقاق خواهد بود. (iiiهمبستگی: تمامی رشته های ایجاد شده از v با بکارگیری تعداد متناهی گام بازگشت از v قابل اشتقاقند. 3-1 گرامرها و زبانهای مستقل از متن
3-1 گرامرها و زبانهای مستقل از متن نکته: یک گرامر شامل یک الفبا یک روش تولید رشته ها است. این رشته ها ممکن است شامل متغیرها و عناصر پایانی باشند.
فرض کنید که G=(V,∑,P,S) یک گرامر مستقل از متن باشد. فرم جمله ای:یک رشته w є(Vυ∑)* یک فرم جمله ای از G است اگر یک اشتقاق S * w وجود داشته باشد. جمله:یک رشته wє∑* یک جمله از G است اگر یک اشتقاق* wS درG وجود داشته باشد. زبان G: که آنرا با L(G)نشان می دهند،مجموعهزیراست. 3-1 گرامرها و زبانهای مستقل از متن
3-1 گرامرها و زبانهای مستقل از متن فرم جمله ای ها، رشته هایی قابل اشتقاق ازعنصرابتدایی گرامرهستند . جملات فرم جمله ایهایی هستند که تنها شامل عناصر پایانی می باشند. به مجموعه ای از رشته ها روی یک مجموعه الفبا(∑) زبان مستقل از متن گفته می شود.
یک قانون A به شکل را بازگشت مستقیم می نامیم. به یک اشتقاق که A در w نیست، بازگشت غیر مستقیم می گوییم. 3-1 گرامرها و زبانهای مستقل از متن
3-1 گرامرها و زبانهای مستقل از متن مثال: گرامر G که یک زبان شامل رشته هایی با تعداد مثبت و زوجی از aها را تولید می کند. G=(V,∑,P,S) V={S,A} ∑ ={a,b} P: S A A A AAA l bA l Ab l a
3-1 گرامرها و زبانهای مستقل از متن اشتقاق راست و چپ: اشتقاق چپ:هر قانونی که به اشتقاق اولین متغیر سمت چپ رشته می پردازد. اشتقاق راست: به قوانینی که راست ترین متغیر موجود در هر رشته را تبدیل می کنند.