Frage

Was ist der Unterschied zwischen Flex & Lex und Yacc & Bison. Ich suchte im Internet wild und ich habe keine feste Antwort finden.

Kann ich rein Lex und Yacc auf Ubuntu installieren, oder kann ich nur Flex und Bison installieren. Ich bin verwirrt.

  • Ist Lex oder Yacc noch aufrechterhalten wird von jemand?
  • Sind alle von ihnen frei?
  • Wenn Lex nicht frei ist, warum muss ich es auf meinem Ubuntu-Distribution installiert?

    lex --version
    lex 2.5.35
    
War es hilfreich?

Lösung

Es gibt einige Unterschiede zwischen Lex und Flex, aber Sie müssen Lex missbrauchen, in die Probleme mit Flex laufen. (Ich habe ein Programm, das Mißbrauch Lex und nicht unter Flex funktioniert somit.) Dies ist in erster Linie im Bereich des Eingang Vorgriffs-; in Lex, können Sie Ihren eigenen Eingabecode zur Verfügung stellen und den Zeichenstrom modifizieren; Flex lassen Sie nicht tun.

Yacc und Bison sind ziemlich eng kompatibel, obwohl Bison einige zusätzliche Tricks hat es tun können.

Sie können sich wahrscheinlich nicht legitime Kopien (das Original, AT & T Versionen) Lex und Yacc finden auf Ubuntu zu installieren. Ich würde nicht unbedingt sagen, dass es unmöglich ist, aber ich bin mir nicht bewusst so. Flex und Bison ist leicht verfügbar und ist für die meisten Zwecke gleichwertig. Sie können auch verschiedene alternative und etwa gleichwertige Programme aus der BSD-Welt.

Lex und Yacc werden von dem Unix SVRx Lizenznehmer gepflegt - Unternehmen wie IBM (AIX), HP (HP-UX) und Sun (Solaris) haben Versionen von Lex und Yacc an ihrem Befehl geändert. MKS bietet auch MKS Lex und MKS Yacc; jedoch die Yacc zumindest einige Nicht-Standard-Erweiterungen hat.

Flex und Bison ist kostenlos. (AT & T) Lex und Yacc sind es nicht.

Andere Tipps

Bison ist die GNU-Implementierung / Erweiterung von Yacc, Flex der Nachfolger von Lex ist. In jedem Fall ist es gut (und empfohlen) Bison / flex zu verwenden.

Bei den meisten (alle?) Linux-Systemen „Lex“ ist eigentlich ein symbolischer Link zu biegen. Im Grunde ist es nur ein anderer Name für die freie Version.

YACC ist unter Open-Source-Lizenzen von beiden Plänen 9 und Open Solaris zur Verfügung. Außerdem gibt es auch Berkeley YACC, die mit dem ursprünglichen YACC kompatibel ist, aber nicht Quellcode teilen. Berkeley YACC kann auf einen der Open-Source BSD-Betriebssysteme gefunden werden.

Bison in einem Teil des GNU-Projektes. Und yacc ist als Dienstprogramm auf Berkeley Software Distribution (BSD) .Though seine kompatibel mit yacc verwendet, aber Lex und Yacc ist eine Sache der Vergangenheit. Flex und Bison heute weit verbreitet sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top