문제

Flex & Lex와 Yacc & Bison의 차이점은 무엇입니까?인터넷을 열심히 검색했는데 확실한 답을 찾지 못했습니다.

Ubuntu에 순수 Lex 및 Yacc를 설치할 수 있습니까, 아니면 flex 및 bison만 설치할 수 있습니까?나는 혼란스럽다.

  • Lex나 Yacc가 아직도 누군가에 의해 관리되고 있나요?
  • 모두 무료인가요?
  • Lex가 무료가 아닌 경우 Ubuntu 배포판에 Lex를 설치해야 하는 이유는 무엇입니까?

    lex --version
    lex 2.5.35
    
도움이 되었습니까?

해결책

Lex와 Flex 사이에는 몇 가지 차이점이 있지만 Flex에서 문제가 발생하려면 Lex를 남용해야 합니다.(나는 Lex를 남용하는 프로그램을 가지고 있으므로 Flex에서는 작동하지 않습니다.) 이것은 주로 입력 미리보기 영역에 있습니다.Lex에서는 자신만의 입력 코드를 제공하고 문자 스트림을 수정할 수 있습니다.Flex에서는 그렇게 할 수 없습니다.

Yacc와 Bison은 매우 밀접하게 호환되지만 Bison에는 몇 가지 추가 기능이 있습니다.

Ubuntu에 설치할 Lex 및 Yacc의 합법적인 복사본(원래 AT&T 버전)을 찾을 수 없을 수도 있습니다.반드시 불가능하다고 말할 수는 없지만 그런 점을 알지 못합니다.Flex와 Bison은 쉽게 사용할 수 있으며 대부분의 목적에 동일합니다.BSD 세계에서 다양한 대체 프로그램과 거의 동등한 프로그램을 찾을 수도 있습니다.

Lex 및 Yacc는 Unix SVRx 라이센스 사용자가 관리합니다. IBM(AIX), HP(HP-UX) 및 Sun(Solaris)과 같은 회사는 명령에 따라 Lex 및 Yacc의 수정된 버전을 가지고 있습니다.MKS는 MKS Lex 및 MKS Yacc도 제공합니다.그러나 Yacc에는 최소한 비표준 확장 기능이 있습니다.

Flex와 Bison은 무료입니다.(AT&T) Lex와 Yacc는 그렇지 않습니다.

다른 팁

Bison은 YACC의 GNU 구현/확장이며 Flex는 Lex의 후계자입니다. 두 경우 모두 Bison / Flex를 사용하는 것이 좋습니다.

대부분의 (모두?) Linux 시스템에서 "Lex"는 실제로 Flex와의 상징적 링크입니다. 기본적으로 무료 버전과는 다른 이름 일뿐입니다.

YACC는 Plan 9 및 Open Solaris의 오픈 소스 라이센스에 따라 제공됩니다. 또한 원래 YACC와 호환되는 Berkeley YACC도 있습니다. Berkeley YACC는 오픈 소스 BSD 운영 체제에서 찾을 수 있습니다.

GNU 프로젝트의 일부에서 들소. YACC는 Berkeley 소프트웨어 배포 (BSD)의 유틸리티로 사용되지만 YACC와 호환되지만 Lex와 YACC는 과거의 일입니다. Flex와 Bison은 오늘날 널리 사용됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top