ياك (برنامج)

ياك  هو برنامج مولد تحاليل مطور من قبل ستيفن كورتيس جونسون في شركة إي تي أند تي لنظام يونكس. الاسم اختصار لـ Yet Another Compiler Compiler. يولد تحليل (جزء الترجمة الذي يحول الكود إلى معنى نحوي) معتمداً على قواعد تحليل الجُمل مكتوبة بملاحظات شبية بصيغة باكوس نور.

كانت ياك متوفرة كمولد التحليل الافتراضي لمعظم أنظمة يونكس. ومنذ ذلك أصبحت الافتراضية لدى البرامج المتوافقة بشكل كبير مثل، بيركلي ياك، جنو بيسون،MKS yacc and Abraxas pcyacc. وتم إضافة إصدار جديد للإصدار السابق من شركة AT&T لمشروع صن أوبن سولاريس. واضافت تحسينات ومزايا إضافية على الياك الأصلي، لكن المفهوم بقي نفسة. تم إعادة كتابة ياك بعدة لغات مثل راتفور، أم أل، أيدا، باسكال، جافا، بايثون، روبي وCommon Lisp.

يتطلب مولد التحليل من ياك محلل مفردات (lexical analyzer) ، مثل Lex أو Flex والمنتشرة بشكل كبير. يعرف معيار IEEE بوزيكس P1003.2 وظائف ومتطلبات Lex وYacc.

بعض إصدارات ياك من إيه تي آند تي أصبحت مفتوحة المصدر. مثل، الأكود (لتطبيقات مختلفة) المتوفرة مع التوزيع القياسي لـ Plan 9 وأوبن سولاريس.

انظر أيضاً 
 ليكس (و محلل مفردات فلكس)، تحليل رمزي يشيع استخدامها جنبا إلى جنب مع ياك (و بيسون).
 BNF، هيبناء وصفي للجملة تستخدم للتعبير عن قواعد اللغة الخالية من السياق.

المراجع 

 ستيفن س. جونسون. YACC: Yet Another Compiler-Compiler. دليل المبرمج ليونككورتيس  Vol 2b، 1979.

وصلات خارجية 
 لقاء عالم الحاسوب مع ستيفن س. جونسون عن ياك
 ML-Yacc إصدار من ياك للغة ML.
 CL-Yacc، مولد التحليل LALR(1) للغة Common Lisp.
 PLY إصدار من ياك للغة بايثون.
 نظرية ياك
 ocamlyacc إصدار من ياك للغة لغة كامل الموضوعية.
 Racc إصدار من ياك للغة روبي.
 ورقة "توزيع قواعد Non-LR(k) لياك" لغاري لينش

أدوات برمجة يونكس
أدوات تصريف
أسماء مختصرة
خدمات مواصفات يونكس المنفردة
مولدات تحليل