، (به : ) یکی از است که در به کار می‌رود. کلمهٔ یَک، از عبارت گرفته شده‌است. این برنامه، توسط S.C.Johnson در آزمایشگاه Bell توسعه پیدا کرد.
 یَک، در واقع بخشی از مراحل است که را گرفته و آن را از دید قواعد صرف و نحو مورد بررسی قرار می‌دهد. می‌توان اینطور بیان کرد که را به آن می‌دهیم و برنامهٔ آن را به می‌سازد که در آن ورودی‌ها با توجه به نقششان در گرامر، تجزیه می‌شوند.
 یکی دیگر از برنامه‌هایی که مشابه یَک عمل می‌کند، بایسون (به انگلیسی : ) است که (به انگلیسی: ) آن، رایگان و استفاده از آن برای عموم آزاد است.
 عموماً (فاز اول کامپایل کردن یک برنامه) و یَک در کنار یکدیگر مورد استفاده قرار می‌گیرند. چون لکس به (به انگلیسی: ) محدود می‌شود، بنابراین آن رشته‌های ورودی، که لکس با استفاده از عبارات منظم قادر به تجزیهٔ آن‌ها نیست، یَک با استفاده از یک دستور زبان منظم، آن‌ها را تجزیه می‌کند، با این حال، یَک قادر به دریافت رشته از ورودی نمی‌باشد و به مجموعه‌ای از احتیاج دارد. غالباً لکس برای تأمین توکن‌های مورد نیاز یَک، مورد استفاده قرار می‌گیرد.
 برنامهٔ یَک شامل یک فایل ورودی به فورم زیر است:
 
 
 
 
 
 
 
 
 به عنوان مثال:
 قسمت‌های خالی، را خالی در نظر می‌گیریم.
 متوجه می‌شویم ساده کردن گرامر منظم نیازمند جدا کردن اولویت‌ها از گرامرها است.
 برای مثال:
 باید تابع یکنواخت ()main وجود داشته باشد که تابع ()yyparse را صدا زند.
 تابع ()yyerror برای گزارش خطاهای ایجاد شده به کار می‌رود.
 نمونهٔ ساده‌ای از استفادهٔ توابع ()main و ()yyerror را می‌بینیم:
 بسته به اینکه از بایسون استفاده می‌کنید یا یَک، از کد پایین برای کامپایل برنامه استفاده می‌شود:
 در یَک:
 در بایسون:
 وقتی این کد را تایپ می‌کنید، در واقع دو فایل با پسوندهای و از فایلی که قبلاً نوشته بودید، ساخته می‌شود.
 : شامل لیستی از توکن‌هایی است که اسکنر آن‌ها را از فایل خوانده است.
 : تابع ()yyparse را در برنامهٔ سی می‌خواند.
{"title": "یک (کامپایلر)", "link": "https://fa.wikipedia.org//w/index.php?title=%DB%8C%DA%A9_(%DA%A9%D8%A7%D9%85%D9%BE%D8%A7%DB%8C%D9%84%D8%B1)&oldid=34817457", "language": "fa"}