سؤال

ما هو الفرق بين فليكس وليكس وYacc وبيسون.لقد بحثت في الإنترنت بشكل كبير ولم أجد أي إجابة شافية.

هل يمكنني تثبيت Lex وYacc الخالصين على Ubuntu، أو يمكنني تثبيت flex وbison فقط.أنا في حيرة.

  • هل لا يزال شخص ما يحتفظ بـ Lex أو Yacc؟
  • هل جميعها مجانية؟
  • إذا لم يكن Lex مجانيًا، فلماذا قمت بتثبيته على توزيعة Ubuntu الخاصة بي؟

    lex --version
    lex 2.5.35
    
هل كانت مفيدة؟

المحلول

توجد بعض الاختلافات بين Lex وFlex، لكن يجب عليك إساءة استخدام Lex حتى تواجه المشكلات مع Flex.(لدي برنامج يسيء استخدام Lex وبالتالي لا يعمل ضمن Flex.) هذا في المقام الأول في مجال المدخلات التطلعية؛في Lex، يمكنك توفير رمز الإدخال الخاص بك وتعديل تدفق الأحرف؛فليكس لن يسمح لك بفعل ذلك.

إن Yacc وBison متوافقان إلى حد كبير، على الرغم من أن Bison لديه بعض الحيل الإضافية التي يمكنه القيام بها.

ربما لا تتمكن من العثور على نسخ شرعية من (الإصدارات الأصلية من AT&T) Lex وYacc لتثبيتها على Ubuntu.لا أقول بالضرورة أنه مستحيل، لكنني لست على علم بذلك.فليكس وبيسون متاحان بسهولة ومتكافئان لمعظم الأغراض.قد تجد أيضًا العديد من البرامج البديلة والمكافئة تقريبًا من عالم BSD.

تتم صيانة Lex وYacc بواسطة مرخصي Unix SVRx - قامت شركات مثل IBM (AIX) وHP (HP-UX) وSun (Solaris) بتعديل إصدارات Lex وYacc بناءً على أوامرهم.توفر MKS أيضًا MKS Lex وMKS Yacc؛ومع ذلك، فإن Yacc على الأقل لديه بعض الامتدادات غير القياسية.

فليكس وبيسون مجانية.(AT&T) Lex وYacc ليسا كذلك.

نصائح أخرى

Bison هو تطبيق/امتداد GNU لـ Yacc، وFlex هو خليفة Lex.في كلتا الحالتين، من الجيد (والموصى به) استخدام البيسون / المرن.

في معظم أنظمة Linux (جميعها؟) ، يعد "Lex" في الواقع رابطًا رمزيًا لـ flex.في الأساس، إنه مجرد اسم مختلف عن الإصدار المجاني.

YACC متاح بموجب تراخيص مفتوحة المصدر من كل من Plan 9 وOpen Solaris.يوجد أيضًا Berkeley YACC، وهو متوافق مع YACC الأصلي، ولكنه لا يشارك كود المصدر.يمكن العثور على Berkeley YACC على أي من أنظمة تشغيل BSD مفتوحة المصدر.

البيسون في جزء من مشروع جنو.ويتم استخدام yacc كأداة مساعدة في Berkeley Software Distribution (BSD). وعلى الرغم من توافقه مع yacc، إلا أن Lex وYacc أصبحا شيئًا من الماضي.يتم استخدام المرن والبيسون على نطاق واسع اليوم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top