From Wikipedia, the free encyclopedia
در نظریه زبان رسمی، یک زبان مستقل از متن زبانیست که از یک گرامر مستقل از متن ساخته شده باشد. گرامرهای مستقل از متن متفاوت میتوانند زبان مستقل از متن یکسانی تولید کنند. مهم است که خصوصیات زبان از خصوصیات گرامر مشخص تمایز داده شود.
مجموعه همه زبانهای مستقل از متن با مجموعه زبانهای پذیرفته شده توسط ماشین پشته ای یکسان است که باعث میشود این زبان متمایل به تجزیه شود. در واقع برای گرامر مستقل از متن داده شده یک راه مستقیم برای تولید یک ماشین پشته ای برای آن گرامر وجود دارد و برای ساخت یک گرامر از ماشین پشته ای نیز راهی وجود دارد.[1]
زبان مستقل از متن کاربرد بسیاری در زبانهای برنامهنویسی دارد؛ برای مثال: زبان پرانتزهای هم تراز که توسط گرامر S→SS|(S)|ε ساخته میشود.[2] همچنین بیشتر عبارتهای حسابی توسط گرامر مستقل از متن تولید میشوند.
نمونه اولیه یک زبان مستقل از متن {L = {anbn: n ≥ ۱، زبان همه رشتههای با طول زوج غیر تهی، که تمام نصفه اول a هستند و نصفه دوم b میباشند. L توسط گرامر S→aSb|ab ساخته میشود. این زبان منظم نیست و توسط یک ماشین پشته ای زیر پذیرفته میشود. ({M = ({q0,q1,qf} , {a,b} , {a,z} , δ , q0 , z , {qf که δ به صورت زیر تعریف میشود:
(δ(q0,a,z) = (q0, az
(δ(q0,a,a) = (q0, aa
(δ(q0,b,a) = (q1, ε
(δ(q1,b,a) = (q1, ε
زبانهای مستقل از متن غیر مبهم یک زیرمجموعه مخصوص از زبانهای مستقل از متن هستند: زبانهای مستقل از متن ذاتاً مبهم وجود دارد. یک مثال برای زبان مستقل از متن ذاتاً مبهم اجتماع {anbmcmdn|n,m>0} با {anbncmdm | n,m >0} است. این مجموعه مستقل از متن است زیرا اجتماع دو زبان مستقل از متن، مستقل از متن است. اما هیچ راهی برای تجزیه کردن غیر مبهم رشتهها در زیر مجموعه {anbncndn | n > 0} که اشتراک این دو زبان است، وجود ندارد.
مجموعه {anbncndn | n > 0} یک زبان وابسته به متن است، اما یک گرامر مستقل از متن که این زبان را تولید کند وجود ندارد. پس زبانهای وابسته به متن وجود دارند که مستقل از متن نیستند.
برای اثبات اینکه یک زبان مستقل از متن نیست، ممکن است از لم تزریق برای زبانهای مستقل از متن یا روشهای دیگر مانند لم اُگدن یا نظریه پاریخ استفاده شود.
زبانهای مستقل از متن تحت اعمال زیر بستهاند. اگر L و P زبانهای مستقل از متن باشند، زبانهای زیر هم مستقل از متن هستند:
زبانهای مستقل از متن تحت اشتراک بسته نیستند. این میتواند در زبان {A = {anbncm | n,m ≥ ۰ و {B = {ambncn | n,m ≥ ۰ که هر دو مستقل از متن هستند دیده شود.
اشتراک به صورت {A∩B = {anbncn | n ≥ ۰ است که میتواند توسط لم تزریق برای زبانهای مستقل از متن نشان داده شود که مستقل از متن نیست.
زبانهای مستقل از متن همچنین تحت مکمل هم بسته نیستند، برای هر زبان A و B:
A∩B = (AcυBc)c
زبانهای مستقل از متن تحت تفاوت هم بسته نیستند:
Lc = Σ* \ L
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.