ياك (برنامج)
ياك (yacc) هو برنامج مولد تحاليل مطور من قبل ستيفن كورتيس جونسون في شركة AT&T لنظام يونكس. الاسم اختصار لـ Yet Another Compiler Compiler. يولد تحليل (جزء الترجمة الذي يحول الكود إلى معنى نحوي) معتمداً على قواعد تحليل الجُمل مكتوبة بملاحظات شبية بصيغة باكوس نور.
كانت ياك متوفرة كمولد التحليل الإفتراضي لمعظم أنظمة يونكس. ومنذ ذلك أصبحت الإفتراضية لدى البرامج المتوافقة بشكل كبير مثل، بيركلي ياك، جنو بيسون،MKS yacc and Abraxas pcyacc. وتم إضافة إصدار جديد للإصدار السابق من شركة AT&T لمشروع صن أوبن سولاريس (Sun's OpenSolaris). واضافت تحسينات ومزايا إضافية على الياك الأصلي، لكن المفهوم بقي نفسة. تم إعادة كتابة ياك بعدة لغات مثل راتفور، أم أل، أيدا، باسكال، جافا، بايثون، روبي وCommon Lisp.
يتطلب مولد التحليل من ياك محلل مفردات (lexical analyzer) ، مثل Lex أو Flex والمنتشرة بشكل كبير. يعرف معيار IEEE POSIX P1003.2 وظائف و متطلبات Lex وYacc.
بعض إصدارات ياك من AT&T أصبحت مفتوحة المصدر. مثل، الأكود (لتطبيقات مختلفة) المتوفرة مع التوزيع القياسي لـ Plan 9 وOpenSolaris.
أنظر أيضاً
- محلل LALR: خوارزمية التحليل الكامنة في ياك.
- البيسون: إصدار جنو من ياك.
- ليكس (و محلل مفردات فلكس)، تحليل رمزي يشيع استخدامها جنبا إلى جنب مع ياك (و بيسون).
- BNF، هيبناء وصفي للجملة تستخدم للتعبير عن قواعد اللغة الخالية من السياق.
المراجع
- ستيفن س. جونسون. YACC: Yet Another Compiler-Compiler. دليل المبرمج ليونككورتيس Vol 2b، 1979.
وصلات خارجية
- لقاء عالم الحاسوب مع ستيفن س. جونسون عن ياك
- ML-Yacc إصدار من ياك للغة ML.
- CL-Yacc، مولد التحليل LALR(1) للغة Common Lisp.
- PLY إصدار من ياك للغة بايثون.
- نظرية ياك
- ocamlyacc إصدار من ياك للغة Objective Caml.
- Racc إصدار من ياك للغة روبي.
- ورقة "توزيع قواعد Non-LR(k) لياك" لغاري لينش
ca:Yacc cs:Yacc da:Yacc de:Yacc el:Yacc Yacc]] es:Yacc fr:Lex et yacc it:Yacc ja:Yacc ko:Yacc nl:Yacc pl:Yacc pt:Yacc ru:Yacc sr:Yacc sv:Yacc uk:Yacc zh:Yacc