Yacc

컴퓨터 소프트웨어인 Yacc는 유닉스 시스템의 표준 파서 생성기이다.  이름은 "또다른 컴파일러 컴파일러"란 재귀적인 뜻의 영어 Yet Another Compiler Compiler 의 약자에서 왔다. 파서(parser)란 컴파일러의 일부분으로 입력의 의미부를 구분해 주는 역할을 하며, Yacc는 배커스-나우르 표기법(BNF)으로 표기된 문법을 주면 그것에 따르는 파서를 만들 수 있는 C언어 코드를 만들어 준다.

Yacc는 AT&T의 스티븐 C. 존슨이 유닉스 운영체제 용으로 개발했다. 후에 버클리 Yacc, GNU bison, MKS yacc, Abraxas yacc 등의 호환 클론들이 만들어졌다. 이들은 성능이 향상되고, 부가 기능이 덧붙여 졌지만 기본적인 기능은 동일했다.

Yacc가 만들어내는 파서와 더불어 어휘 분석기(lexical analyzer)가 필요하기 때문에 Lex나 flex 같은 어휘 분석기 생성기가 같이 쓰인다. IEEE POSIX P1003.2 표준은 Lex와 Yacc의 기능과 요구사항을 정의하고 있다.

 같이 보기 
 GNU bison
 Flex (어휘분석기)

 외부 링크 
 버클리 Yacc : 특정 C 컴파일러에의 종속성을 피하기 위해 만들어진 yacc
 Essence, 스킴 프로그래밍 언어용 LR(1) 파서
 Parser-tools for DrScheme.
 ML-Yacc 표준 ML 용 yacc

분류:컴파일러
분류:구문 분석기