Flex / Lex와 Yacc / Bison의 차이점은 무엇입니까?
Flex & Lex와 Yacc & Bison의 차이점은 무엇입니까? 인터넷을 열렬히 검색했는데 확실한 답을 찾지 못했습니다.
Ubuntu에 순수 Lex 및 Yacc를 설치하거나 flex 및 bison 만 설치할 수 있습니까? 혼란 스러워요.
- Lex 또는 Yacc가 여전히 누군가에 의해 유지 관리되고 있습니까?
- 모두 무료입니까?
Lex가 무료가 아닌 경우 왜 Ubuntu 배포판에 설치해야합니까?
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"는 실제로 유연하게 연결되는 심볼릭 링크입니다. 기본적으로 무료 버전과 이름이 다릅니다.
YACC는 Plan 9 및 Open Solaris의 오픈 소스 라이센스로 제공됩니다. 또한 원래 YACC와 호환되지만 소스 코드를 공유하지 않는 Berkeley YACC도 있습니다. Berkeley YACC는 모든 오픈 소스 BSD 운영 체제에서 찾을 수 있습니다.
GNU 프로젝트의 일부인 들소. yacc는 Berkeley Software Distribution (BSD)의 유틸리티로 사용되지만 yacc와 호환되지만 Lex와 Yacc는 과거의 일입니다. Flex와 들소는 오늘날 널리 사용됩니다.
참고 URL : https://stackoverflow.com/questions/623503/what-is-the-difference-between-flex-lex-and-yacc-bison
'Programing' 카테고리의 다른 글
SSH 키를 제거하는 방법? (0) | 2020.07.22 |
---|---|
R 프로세스가 사용할 수있는 메모리를 늘리거나 줄입니다. (0) | 2020.07.22 |
“잠금 대기 시간 초과를 초과했습니다. (0) | 2020.07.22 |
const는 C ++ 11에서 스레드 안전을 의미합니까? (0) | 2020.07.22 |
Go에서 슬라이스를 어떻게 지우나요? (0) | 2020.07.21 |