اصول طراحی کامپایلرها: تحلیلگر لغوی

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

ماشین خودکار متناهی چیست؟

ماشین خودکار متناهی یک رشته از یک زبان منظم را دریافت می کند و در صورتیکه رشته متعلق به زبان باشد آنرا تصدیق می کند و در غیر اینصورت انرا رد می کند.

ماشین خودکار غیر قطعی را بصورت تعریف می کنیم.

M = (Q, ∑,δ, q₀, F)

چه مواردی برای طراحی یک nfa لازم است؟

طراحی یک nfa برای زبان L = {ba^n : n ≥ 1} { b^n a : n ≤ 2 }

مثال: یک DFA برای زبان با رشتههایی که دقیقا دو a دارند.

<p>ba<em>ba</em>b*</p> Signup and view all the answers

مثال: یک DFA برای پذیرش زبان با رشته هایی که حداقل یک و دقیقا دوتا b دارند.

<p>aab<em>a</em>ba* {bbaa*}</p> Signup and view all the answers

مثال: یک DFA برای عبارت باقاعده * (۰۱) (۱۰) رسم کنید.

<p>(۰۱)*(۱۰)</p> Signup and view all the answers

مثال: یک NFA برای عبارت باقاعده * ( a + b * (ab + c رسم کنید.

<p>a + b * (ab + c)*</p> Signup and view all the answers

تعریف (closure (a_ ::

<p>مجموعه حالاتی از NFA که از حالت با تبدیل A قابل دسترس هستند.</p> Signup and view all the answers

تعریف ( A _closure (T :

<p>مجموعه حالاتی از NFA که از حالات مجموعه T با تبدیل A قابل دسترس هستند.</p> Signup and view all the answers

تعریف (move (Ta :

<p>مجموعه حالاتی از NFA که از حالتs درمجموعه T و با نماد ورودی a یک گذر به آنها انجام می شود.</p> Signup and view all the answers

الگوریتم تبدیل NFA به DFA :

<p>a_closure(s) را محاسبه میکنیم و به مجموعه حاصل یک اسم اختصاص می دهیم و آنرا به جدول Dtrans اضافه میکنیم. مجموعه مورد نظر حالت شروع DFA می باشد.</p> Signup and view all the answers

مثال : NFA زیر را به DFA تبدیل کنید.

<p>1 – Closure (-1) = {-1,0,1,2}= A</p> Signup and view all the answers

الفبا

<p>ب = b الف = a ج = c د = d ه = e و = w ی = y ز = z</p> Signup and view all the answers

Flashcards

ماشین خودکار متناهی

یک رشته از یک زبان منظم را دریافت می کند و در صورتیکه رشته متعلق به زبان باشد آنرا تصدیق می کند و در غیر این صورت انرا رد می کند.

ماشین خودکار قطعی (DFA)

یک نوع ماشین خودکار متناهی که در هر حالت با خواندن یکی از الفبای زبان تنها یک گذر وجود دارد.

ماشین خودکار غیر قطعی (NFA)

یک نوع ماشین خودکار متناهی که در هر حالت با خواندن یکی از الفبای زبان امکان چندین گذر وجود دارد.

مجموعه حالات (Q) در DFA

مجموعه متناهی از حالات (q) که ماشین ممکن است در آن قرار داشته باشد.

Signup and view all the flashcards

مجموعه نمادها (∑) در DFA

مجموعه متناهی از نمادها که الفبای زبان است (∑)

Signup and view all the flashcards

تابع گذر (δ) در DFA

یک تابع که تغییر حالت ماشین را بر اساس نماد ورودی مشخص می کند (δ)

Signup and view all the flashcards

حالت شروع (q0) در DFA

حالت اولیه ماشین که ماشین از آن شروع به کار می کند (q0)

Signup and view all the flashcards

حالت نهایی (F) در DFA

حالت یا حالت های نهایی که ماشین در آنها عملیات خود را با موفقیت به پایان می رساند (F)

Signup and view all the flashcards

الگوریتم تامپسون

یک الگوریتم برای رسم یک NFA برای یک عبارت باقاعده (منظم).

Signup and view all the flashcards

λ _ closure (q)

مجموعه حاالت از NFA که از حالت q با تبدیل λ قابل دسترس هستند.

Signup and view all the flashcards

λ _ closure (T)

مجموعه حاالت از NFA که از حاالت مجموعه T با تبدیل λ قابل دسترس هستند.

Signup and view all the flashcards

move (T, a)

مجموعه حاالت از NFA که از حالت s در مجموعه T و با نماد ورودی a یک گذر به آنها انجام می شود.

Signup and view all the flashcards

الگوریتم تبدیل NFA به DFA

یک الگوریتم که یک NFA را به یک DFA تبدیل می کند.

Signup and view all the flashcards

حالت پایانی DFA

یک مجموعه شامل حداقل یکی از حالت های پایانی NFA که به عنوان حالت پایانی DFA مشخص می شود.

Signup and view all the flashcards

تبدیل NFA به DFA

یک NFA را به یک DFA تبدیل می کند.

Signup and view all the flashcards

جدول Dtrans

تعیین می کند که DFA با خواندن کدام نماد به کدام حالت می رود.

Signup and view all the flashcards

थॉमसन एल्गोरिथम

एक नियमित अभिव्यक्ति के लिए एक NFA का निर्माण करने की एक विधि।

Signup and view all the flashcards

एक नियमित अभिव्यक्ति के लिए NFA बनाना: चरण १

नियमित अभिव्यक्ति लें और उसे सरल घटकों में विभाजित करें.

Signup and view all the flashcards

एक नियमित अभिव्यक्ति के लिए NFA बनाना: चरण २

प्रत्येक उप-अभिव्यक्ति के लिए, संबंधित NFA बनाएँ।

Signup and view all the flashcards

एक नियमित अभिव्यक्ति के लिए NFA बनाना: चरण ३

अभिव्यक्तियों को संयोजित करके NFA बनाएँ।

Signup and view all the flashcards

λ _ closure (q)

एक NFA की अवस्था से उस NFA की अवस्थाओं का एक सेट है जिसे λ - संक्रमणों द्वारा पहुँचा जा सकता है।

Signup and view all the flashcards

λ _ closure (T)

एक NFA के राज्य के एक सेट से उस NFA के राज्य का एक सेट है जिसे λ - संक्रमणों द्वारा पहुँचा जा सकता है।

Signup and view all the flashcards

move (T, a)

एक NFA के राज्य के एक सेट से उस NFA के राज्य का एक सेट है जो वर्तमान राज्य से इनपुट प्रतीक a पर एक संक्रमण द्वारा पहुँचा जा सकता है।

Signup and view all the flashcards

NFA को DFA में परिवर्तित करने का एल्गोरिथ्म

एक NFA को DFA में बदलने की एक विधि।

Signup and view all the flashcards

DFA में राज्य

DFA में एक ही राज्य को कई NFA राज्य का समूह दर्शाता है।

Signup and view all the flashcards

DFA का प्रारंभिक राज्य

DFA में प्रारंभिक राज्य के लिए प्रारंभिक NFA राज्य के λ-closure सेट का प्रयोग करके बनाया जाता है।

Signup and view all the flashcards

DFA के अंतिम राज्य

DFA के राज्य को इस प्रकार चिह्नित किया जाता है कि DFA के राज्य का संग्रह उस NFA राज्य को शामिल करता है जो एक अंतिम राज्य है।

Signup and view all the flashcards

Dtrans तालिका

DFA में राज्य संक्रमणों को निर्धारित करने में मदद करने के लिए उपयोग किया जाता है।

Signup and view all the flashcards

Study Notes

اصول طراحی کامپایلرها

  • این درس به اصول طراحی کامپایلرها می‌پردازد.

درس دوم: تحلیلگر لغوی

  • در جلسه سوم، ماشین‌های خودکار متناهی مورد بررسی قرار گرفتند.

ماشین خودکار متناهی

  • ماشین‌های خودکار متناهی، رشته‌های یک زبان منظم را می‌پذیرند و در صورت تعلق به زبان، آن را تأیید می‌کنند.
  • دو نوع ماشین خودکار متناهی وجود دارد:
    • ماشین خودکار قطعی (DFA)
    • ماشین خودکار غیرقطعی (NFA)

ماشین خودکار غیرقطعی

  • ماشین خودکار غیرقطعی (NFA) به شکل M = (Q, Σ, δ, q0, F) تعریف می‌شود:
    • Q: مجموعه متناهی از حالات
    • Σ: مجموعه متناهی از نمادها (الفبای زبان)
    • δ: تابع گذر
    • q0: حالت شروع
    • F: حالت یا حالات نهایی
  • در NFA، در هر حالت، می‌توان با خواندن یک نماد الفبایی، به چندین حالت دیگر منتقل شد.
  • مثال‌هایی از طراحی NFA برای زبان‌های مشخص ارائه شده است.

مثال طراحی NFA

  • مثال‌هایی از طراحی NFA برای زبان‌های مختلفی مانند {baⁿ : n ≥ 1} و {bⁿa : n ≥ 2} و {baⁿ : n ≥ 1}{bⁿa n ≥1} ارائه شده است.

DFA

  • ماشین‌های خودکار قطعی (DFA) به شکل M = (Q, Σ, δ, q0, F) تعریف می‌شوند:
    • Q: مجموعه متناهی از حالات
    • Σ: مجموعه متناهی از نمادها (الفبای زبان)
    • δ: تابع گذر
    • q0: حالت شروع
    • F: حالت یا حالات نهایی
  • در DFA، در هر حالت، با خواندن یك نماد از الفبای زبان، تنها یك گذر به یک حالت دیگر انجام می‌شود.
  • مثال‌هایی از طراحی DFA برای زبان‌های مختلفی ارائه شده است (مثلاً زبانی با حروف «a» و «b» که دقیقاً دو «a» دارد).

تبدیل NFA به DFA

  • الگوریتمی برای تبدیل NFA به DFA ارائه می‌شود که از تابع closure (یا closure) و تابع move (یا move_) برای یافتن حالت‌های معادل در DFA استفاده می‌کند.
  • مثال‌هایی از اعمال این الگوریتم برای تبدیل NFA به DFA ارائه شده است.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Converting NFA to DFA
5 questions

Converting NFA to DFA

StylishSpessartine avatar
StylishSpessartine
Finite Automata
20 questions

Finite Automata

TopNotchEuphoria8590 avatar
TopNotchEuphoria8590
Finite Automata: DFA and NFA
10 questions

Finite Automata: DFA and NFA

ToughRainbowObsidian3071 avatar
ToughRainbowObsidian3071
Automata: Regular Expressions, DFA and NFA
10 questions
Use Quizgecko on...
Browser
Browser