در این درس با سه موضوع ” زبان، گرامر و ماشین” آشنا می شوید. این درس پیش نیاز درس طراحی کامپایلر است. با یادگیری زبان ها و گرامرها می توانید نحوه کار کامپایلر و همچنین طراحی زبان های برنامه سازی را متوجه شد.
سرفصل هایی که در این آموزش به آن پرداخته شده است:
درس یکم: زبان منظم
درس دوم: گرامر منظم
درس سوم: اتوماتای متناهی(DFA , NFA)
درس چهارم: زبان و گرامر مستقل از متن
درس پنجم: ابهام- ساده سازی گرامر- فرمهای نرمال
...
برای توضیحات بیشتر و تهیه این آموزش لطفا به لینک زیر مراجعه بفرمائید:
http://faradars.org/courses/fvsft110
4. ماشین و ها زبان نظریهها
faradars.org/fvsft110
،متن از مستقل هایزبان خانواده که دهید نشانبسته اشتراك تحتنیستند.
دوزبانونوشت متن از مستقل گرامر توان می آنها برای چون ،هستند متن از مستقل:
n n m
1L {a b c :n 0,m 0}
n m m
2L {a b c :n 0,m 0}
1L 2L
یعنی زبان دو این اشتراك اما،نیست متن از مستقل. n n n
{a b c :n 0}
مثال
4
سرداﺮﻓ
FaraDars.org
5. ماشین و ها زبان نظریهها
faradars.org/fvsft110
زبانLازاشتراكیکزبانمستقلازمتنبازبانمنظمتشکیلشده،پسمستقلازمتناست.
زبان آیامستقلاست؟ متن از n n
L {a b :n 0,n 3}
n n
1L {a b :n 0} L I
3 3
1L {a b }
مثال
5
سرداﺮﻓ
FaraDars.org
6. ماشین و ها زبان نظریهها
faradars.org/fvsft110
خیر-اشتراكاینزبانبازبانمنظمبرابرمیباشدکه
میدانیممستقلازمتننمیباشد.
بنابراینLمستقلازمتننیست.(باتوجهبهقضیهاشتراكمنظم)
زبان آیا،است؟ متن از مستقل *
a b cL {w {a,b,c} :n (w) n (w) n (w)}
* * *
L(a b c )
n n n
{a b c :n 0}
مثال
6
سرداﺮﻓ
FaraDars.org
7. ماشین و ها زبان نظریهها
faradars.org/fvsft110
مکمل آیازبان،است؟ متن از مستقل *
a b cL {w {a,b,c} :n (w) n (w) n (w)}
حل:بله-شده تشکیل زیر حالت چهار اجتماع از زبان این مکمل:
1-
2-
3-
4-
تمامیمتن از مستقل حالت چهار اینهستند.هایزبانبسته اجتماع تحت متن از مستقلهستند.
a bn (w) n (w)
a bn (w) n (w)
a cn (w) n (w)
a cn (w) n (w)
مثال
7
سرداﺮﻓ
FaraDars.org
13. ماشین و ها زبان نظریهها
faradars.org/fvsft110
گرامرمبهماست: S aSb | SS |
چونرشته تولید برای نمونه طور بهab،دارد وجود چپ اشتقاق دو:
1:S aSb ab
2 :S SS aSbS abS ab
مثال
13
سرداﺮﻓ
FaraDars.org
14. ماشین و ها زبان نظریهها
faradars.org/fvsft110
گرامرمبهم زیراست:
S aB | A
A aA |
B bB | a
چونرشته تولید برای نمونه طور بهaa،دارد وجود چپ اشتقاق دو:
1:S A aA aaA aa
2 :S aB aa
باشد مبهم تواند می نیز منظم گرامر بنابراین.
مثال
14
سرداﺮﻓ
FaraDars.org
15. ماشین و ها زبان نظریهها
faradars.org/fvsft110
، زبانمتن از مستقل زبان یکمبهم ذاتااست. i j k
L {a b c :i j or j k}
1 2
1 1
2 2
S S | S
S S c | A
A aAb |
S aS | B
B bBc |
مثال
مبهم گرامر ایناست.
15
سرداﺮﻓ
FaraDars.org
21. ماشین و ها زبان نظریهها
faradars.org/fvsft110
فایده بی متغیرها کدام زیر گرامر درهستند؟
S aS | A | C
A a
B aa
C aCb
پاسخ:
متغیرCکند نمی تولید را پایانی رشته یک چون ،است فایده بی.
متغیرBباشد نمی دستیابی قابل شروع متغیر از چون ،است فایده بی.
گرامرنهایی:
S aS | A
A a
سئوال
21
سرداﺮﻓ
FaraDars.org
22. ماشین و ها زبان نظریهها
faradars.org/fvsft110
سازی ساده:
S aAb | bBa | bCa
A aaAb | ab
B bBa | a
C aC| bC
متغیرC،است مفید غیر.
S aAb | bBa
A aaAb | ab
B bBa | a
مثال
22
سرداﺮﻓ
FaraDars.org
23. ماشین و ها زبان نظریهها
faradars.org/fvsft110
کنید حذف را فایده بی متغیرهای زیر گرامر در.
S AC|BS|B
A aA |aF
B CF |b
C cC| D
D aD|BD|C
E aA |BSA
F bB|b
مثال
S BS | B
A aA | aF
B b
E aA | BSA
F bB | b
S BS | B
B b
ابتدایعنی رسندنمی الفبا از ایرشته به که را متغیرهاییCوDواز تواننمی که را متغیرهایی سپسSیعنی ،رسید آنها بهAوEوFحذف راکنیممی.
23
سرداﺮﻓ
FaraDars.org
25. ماشین و ها زبان نظریهها
faradars.org/fvsft110
کند می تولید را زبان ،زیر گرامر.فاقد زبان اینمیباشد. n n
{a b :n 1}
S aAb
A aAb |
برایدر جایگزینی با که جدید قانون دو ، قانون حذفAراسات سامت هاای
کنیم می اضافه گرامر به را اند آمده بدست:
A
S aAb | ab
A aAb | ab
مثال
25
سرداﺮﻓ
FaraDars.org
26. ماشین و ها زبان نظریهها
faradars.org/fvsft110
کنید حذف زیر گرامر در را قوانین.
S AB
A aA |
B bB |
مثال
S AB | A | B |
A aA | a
B bB | b
چون ،باشد نمی قانون حذف به نیازیS،است شروع متغیر. S
26
سرداﺮﻓ
FaraDars.org
27. ماشین و ها زبان نظریهها
faradars.org/fvsft110
قوانین حذف: S ABaC
A BC
B b |
C D |
D d
S ABaC| AaC
A BC | C
B b
C D |
D d
مثال
S ABaC| AaC| ABa | Aa
A BC| C| B |
B b
C D
D d
S ABaC| AaC| ABa | Aa | BaC| aC| Ba | a
A BC| B | C
B b
C D
D d
27
سرداﺮﻓ
FaraDars.org
29. ماشین و ها زبان نظریهها
faradars.org/fvsft110
قوانین حذفواحد:
S Aa | B
B A | bb
A bc | a | B
S Aa | bc | a | bb
B bc | a | bb
A bc | a | bb
درمتغیر ،واحد قوانین حذف اثرBاند شده فایده بی آن به مربوط قوانین و.
29
سرداﺮﻓ
FaraDars.org
31. ماشین و ها زبان نظریهها
faradars.org/fvsft110
کنید حذف را قوانین زیر گرامر در.
S aA
A BB
B aBb |
حل:آید می بدست زیر گرامر حذف با: B
S aA | a
A BB | B
B aBb | ab
نداشت وجود قبال که شده تولید واحد قانون گرامر این در. A B
مثال
31
سرداﺮﻓ
FaraDars.org
32. ماشین و ها زبان نظریهها
faradars.org/fvsft110
کنید حذف را فایده بی و واحد ، قوانین تمامی زیر گرامر در.
S aA | aBB
A aaA |
B bC| bbC
C B
حل:کنیم می حذف را قانون ابتدا: A
S aA | aBB | a
A aaA | aa
B bC | bbC
C B
مثال
32
سرداﺮﻓ
FaraDars.org
33. ماشین و ها زبان نظریهها
faradars.org/fvsft110
کنیم می حذف را واحد قانون سسپس: C B
S aA | aBB | a
A aaA | aa
B bC| bbC
C bC| bbC
اینکه نهایتاBوCداری بنابراین ،هستند فایده بیم:
S aA | a
A aaA | aa
باشد می گرامر این بوسیله شده تولید زبان. *
L((aa) a)
33
سرداﺮﻓ
FaraDars.org
35. ماشین و ها زبان نظریهها
faradars.org/fvsft110
دارد قرار چامسکی نرمال فرم در زیر گرامر:
S AS | BS | a
A SA | a
B SB | b
مثال
35
سرداﺮﻓ
FaraDars.org
36. ماشین و ها زبان نظریهها
faradars.org/fvsft110
کنید تبدیل چامسکی نرمال فرم به را زیر گرامر.
S ABa
A aab
B Ac
حل:
X,Y,Z اول قدم:جدید متغیرهای معرفی دوم قدم:سوم و اول قانون کردن نرمال
S ABX
X a
A XXY
Y b
B AZ
Z c
S AT
T BX
A XF
F XY
B AZ
X a, Y b ,Z c
مثال
36
سرداﺮﻓ
FaraDars.org
37. ماشین و ها زبان نظریهها
faradars.org/fvsft110
کنید تبدیل چامسکی نرمال فرم به را زیر گرامر.
S aAB
A aA | b
B bB | b
حل:
اول قدم قدمدوم
S TAB
T a
A TA | b
B FB | b
F b
S TK
K AB
T a
A TA | b
B FB | b
F b
مثال
37
سرداﺮﻓ
FaraDars.org
38. ماشین و ها زبان نظریهها
faradars.org/fvsft110
کنید تبدیل چامسکی نرمال فرم به را زیر گرامر.
S aAbB | ab
A ABS | a
B bb
حل:
قدمسومقدمدومقدماول
S TAFB | TF
A ABS | a
B FF
T a
F b
S TK | TF
K AFB
A AU | a
U BS
B FF
T a
F b
S TK | TF
K AX
X FB
A AU | a
U BS
B FF
T a
F b
مثال
38
سرداﺮﻓ
FaraDars.org
39. ماشین و ها زبان نظریهها
faradars.org/fvsft110
کنید تبدیل چامسکی نرمال فرم به را زیر گرامر.
S abAB
A bAB |
B BAa | A |
حذف حذف
S abAB | abB
A bAB | bB
B BAa | A | Ba |
S abAB | abB | abA | ab
A bAB | bB | bA | b
B BAa | A | Ba | Aa | a
حل:کنیم می حذف را قواعد ابتدا:
B
A
مثال
39
سرداﺮﻓ
FaraDars.org
40. ماشین و ها زبان نظریهها
faradars.org/fvsft110
S abAB | abB | abA | ab
A bAB | bB | bA | b
B BAa | Ba | Aa | a | bAB | bB | bA | b
قاعده سپسیکهمی حذف راکنیم: B A
40
سرداﺮﻓ
FaraDars.org
41. ماشین و ها زبان نظریهها
faradars.org/fvsft110
آوریم می در چامسکی نرمال فرم به را گرامر نهایت در:
Y, X اول قدم:جدید متغیرهای معرفی P,T,K,N, M دوم قدم:جدید متغیرهای معرفی
S XYAB | XYB | XYA | XY
A YAB | YB | YA | b
B BAX | BX | AX | a | YAB | YB | YA | b
X a
Y b
S XM | XN | XK | XY
M YT
T AB
N YB
A YT | YB | YA | b
B BP | BX | AX | a | YT | YB | YA | b
P AX
X a
Y b
41
سرداﺮﻓ
FaraDars.org
43. ماشین و ها زبان نظریهها
faradars.org/fvsft110
فارم باه آن قاوانین تماام هرگااه اسات گریباخ نرمال فرم در متن از مستقل گرامر یک..................
،آن در که ،باشند
A aX
*
x V ,a T
گریباخ نرمال فرم
کنید تبدیل گریباخ نرمال فرم به را گرامر. S abSb | aa
حل:جدید متغیرهایAوBبا مترادف که کنیم می معرفی راaوbهستند:
S aBSB | aA
A a
B b
43
سرداﺮﻓ
FaraDars.org
44. ماشین و ها زبان نظریهها
faradars.org/fvsft110
کنید تبدیل گریباخ نرمال فرم به را گرامر. S ab | aS | aaS
S aX | aS | aYS
X b
Y a
مثال
44
سرداﺮﻓ
FaraDars.org
45. ماشین و ها زبان نظریهها
faradars.org/fvsft110
کنید تبدیل گریباخ نرمال فرم به را زیر گرامر.
S AB
A aA | bB | b
B b
حل:است مغایر گریباخ نرمال فرم تعریف با قاعده.جاای باه بنابراینAایان در
کنیم می استفاده آن جایگزین قوانین از قانون:
S AB
S aAB | bBB | bB
A aA | bB | b
B b
مثال
45
سرداﺮﻓ
FaraDars.org
47. ماشین و ها زبان نظریهها
faradars.org/fvsft110
گرامرکنید تبدیل گریباخ نرمال فرم به را زیر.
S ABb | a
A aaA | B
B bAb
S ABb | a
A aaA | bAb
B bAb
مثال
47
S aaABb | bAbBb | a
A aaA | bAb
B bAb
S aXABY | bAYBY | a
A aXA | bAY
B bAY
X a
Y b
سرداﺮﻓ
FaraDars.org
49. ماشین و ها زبان نظریهها
faradars.org/fvsft110
آیازبانخطیاست؟
پاسخ:بله-چونمیتوانیکگرامرخطیبرایآننوشت:
n m
{a b :m n 2m 1}
S aAb | aaBb
A aAb |
B aaBb | aBb | ab | b
مثال
49
سرداﺮﻓ
FaraDars.org
50. ماشین و ها زبان نظریهها
faradars.org/fvsft110
آیازبانخطیاست؟
حل:بله-چونمیتوانیکگرامرخطیبرایآننوشت:
n n m
{a b c :n 0,m 0}
S Sc | aAb |
A aAb |
مثال
50
سرداﺮﻓ
FaraDars.org