Question

Quelle est la différence entre Flex & amp; Lex et Yacc & amp; Bison. J'ai fouillé sur Internet et je n'ai trouvé aucune réponse solide.

Puis-je installer des systèmes Lex et Yacc purs sur Ubuntu ou installer uniquement flex et bison. Je suis confus.

  • Lex ou Yacc sont-ils toujours entretenus par quelqu'un?
  • Sont-ils tous gratuits?
  • Si Lex n'est pas libre, pourquoi l'ai-je installé sur ma distribution Ubuntu?

    lex --version
    lex 2.5.35
    
Était-ce utile?

La solution

Il existe certaines différences entre Lex et Flex, mais vous devez abuser de Lex pour affronter les problèmes de Flex. (J'ai donc un programme qui abuse de Lex et ne fonctionne pas sous Flex, donc.) Ceci est principalement dans le domaine de l'entrée d'anticipation; dans Lex, vous pouvez fournir votre propre code d’entrée et modifier le flux de caractères; Flex ne vous laissera pas faire cela.

Yacc et Bison sont très proches l'un de l'autre, bien que Bison puisse faire quelques tours supplémentaires.

Vous ne pouvez probablement pas trouver de copies légitimes de (Lex) et de Yacc (versions originales, AT & T) à installer sur Ubuntu. Je ne dirais pas nécessairement que c'est impossible, mais je ne suis pas au courant. Flex et Bison sont facilement disponibles et sont équivalents dans la plupart des cas. Vous pouvez également trouver divers programmes alternatifs et à peu près équivalents du monde BSD.

Lex et Yacc sont gérés par les détenteurs de licence Unix SVRx. Des sociétés telles que IBM (AIX), HP (HP-UX) et Sun (Solaris) ont modifié les versions de Lex et Yacc à leur commande. MKS fournit également MKS Lex et MKS Yacc; cependant, le Yacc a au moins des extensions non standard.

Flex et Bison sont gratuits. (AT & T) Lex et Yacc ne le sont pas.

Autres conseils

Bison est l’implémentation / extension GNU de Yacc, Flex est le successeur de Lex. Dans les deux cas, il est recommandé (et recommandé) d’utiliser bison / flex.

Sur la plupart des systèmes Linux (tous?), " Lex " est en fait un lien symbolique à fléchir. Fondamentalement, ce n'est qu'un nom différent de la version gratuite.

YACC est disponible sous les licences open source de Plan 9 et de Open Solaris. Il existe également Berkeley YACC, qui est compatible avec le YACC d'origine, mais ne partage pas le code source. Berkeley YACC peut être trouvé sur n’importe quel système d’exploitation open source BSD.

Bison dans une partie du projet GNU. Et yacc est utilisé comme utilitaire sur Berkeley Software Distribution (BSD). Bien que ce soit compatible avec yacc, Lex et Yacc sont une chose du passé. Le flex et le bison sont largement utilisés aujourd'hui.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top