موضوع مقاله: گرامر پیوست | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # گرامر پیوست | مقدمه: قواعد دستوری یک گرامر پیوستی، قواعد دستور زبان مستقل از متن است، با این تفاوت که بخش‌های خاصی در نماد های غیر پایانه‌ ( پیوستها ) به عنوان آرگومان استفاده می‌شوند. | ## بخش 1: گرامر پیوست | اگر یک پیوست چندین بار در یک قانون اتفاق بیفتد، مقدار آن باید مطابقت داشته باشد ، یعنی باید در همه جا یکسان باشد. مثال ما می توانیم یک قطعه بسیار ساده از زبان انگلیسی را به روش زیر توصیف کنیم جمله ← فاعل گزاره فاعل ← اسم گزاره ← مفعول فعل مفعول ← اسم اسم ← جان اسم ← مریم اسم ← کودکان اسم ← والدین فعل ← دوست دارند فعل ←دوست دارد فعل ← کمک میکنند فعل ← کمک میکند این دستور زبان مستقل از متن جملات ساده ای را توصیف میکند مانند: جان بچه ها را دوست دارد مریم به جان کمک می کند کودکان به والدین کمک می کنند والدین جان را دوست دارند با اسامی و افعال بیشتر و قوانین بیشتر برای معرفی بخش های دیگر گفتار، طیف وسیعی از جملات انگلیسی را می توان توصیف کرد. با این حال، دستور زبان داده شده جملاتی مانند زیر را توصیف میکنند: جان بچه ها را دوست دارد کودکان به والدین کمک می کنند این جملات اشتباه هستند: در زبان انگلیسی فاعل و فعل دارای یک عدد دستوری هستند که باید مطابقت داشته باشند. گرامر پیوستی می تواند مستقیماً چنین چیزی را بیان کند: جمله ← فاعل + عدد پیوست + عدد فاعل + شماره ← اسم + شماره پیوست + عدد ← فعل + عدد مفعول مفعول ← اسم + عدد اسم + مفرد ← جان اسم + مفرد ← مریم اسم + جمع ←کودکان اسم + جمع ← والدین فعل + مفرد ← دوست دارد فعل + جمع ← دوست دارند فعل + مفرد ← کمک میکند فعل + جمع ← کمک میکنند این دستور زبان فقط جملات صحیح انگلیسی را توصیف می کند، اگرچه می توان استدلال کرد که: جان, جان را دوست دارد هنوز نادرست است و در عوض باید بخوانید: جان خودش را دوست دارد اگر ابزار توصیف روابط بین مقادیر مختلف پیوست به اندازه کافی قدرتمند باشد، می‌توان آن را با استفاده از پیوست ترکیب کرد. همانطور که در بالا ذکر شد، این ابزارها به نوع گرامر پیوستی انتخاب شده بستگی دارد. | ## بخش 2: گرامر پیوست | انواع در ساده‌ترین نوع از گرامر پیوست، پیوست ها فقط می‌توانند مقادیری را از یک دامنه متناهی بگیرند و مقادیر آنها مانند مثالها فقط از طریق توافق و قانون می‌توانند با هم مرتبط شوند. با استفاده از این روش، پیوست ها فشردگی گرامرها را افزایش می دهند، اما قدرت بیانی را اضافه نمی کنند. رویکرد دیگر این است که به پیوست‌ها اجازه دهیم رشته‌های دلخواه را به‌عنوان مقادیر بگیرند و اجازه دهیم از ترکیب پیوست‌ها در قوانین استفاده کنند. این پیوست ها باموفقیت برای توصیف زبان های پیچیده، به ویژه نحو زبان برنامه نویسی Algol 68 استفاده شده اند. با این حال، به نظر می رسد که، حتی اگر مقادیر پیوست را بتوان با ترکیب رشته ها تغییر داد، این تعریف رسمی تورینگ کامل است . | ## بخش 3: گرامر پیوست | از این رو، حتی ابتدایی ترین سؤالات در مورد زبان توصیف شده توسط گرامر دلخواه 2VW به طور کلی غیرقابل تصمیم گیری هستند. امکان دیگر این است که اجازه دهید مقادیر پیوست ها با کد نوشته شده در برخی از زبان های برنامه نویسی محاسبه شوند. دو رویکرد اساسی استفاده شده است: در گرامرهای ویژگی ، پیوست ها (که ویژگی نامیده می شود) می توانند مقادیری را از دامنه های دلخواه (مانند اعداد صحیح یا حقیقی، ساختارهای داده پیچیده) بگیرند و همچنین میتوان توابع دلخواهی را مشخص کرد که به هر زبان دلخواهی نوشته شده باشند تا نحوه مشتق شدن مقادیر پیوست در قوانین را از یکدیگر شرح دهند. در CDL ( زبان توصیف کامپایلر ) و جانشین آن CDL2 ، که در دهه 1970 توسعه یافت، قطعات کد منبع (معمولاً در زبان اسمبلی ) را می توان بطور معمول به جای سمت راست در قوانین استفاده کرد که اجازه اسکن ورودی و محاسبات ارزش پیوست را می دهد که مستقیما بیان شود. | ## جمع‌بندی | این رویکرد که به عنوان پایه ای برای ساخت کامپایلر های واقعی طراحی شده است، برای نوشتن کامپایلرها و سایر نرم افزارها، به عنوان مثال یک ویرایشگر متن استفاده میشود .