문맥 (context)
자바CC (JavaCC, 자바 컴파일러 컴파일러, Java Compiler Compiler)는 자바 프로그래밍 언어로 작성된 오픈 소스 구문 분석기이자 낱말 분석기 발생기이다. 자바CC는 EBNF 표기법으로 작성된 형식 문법의 파서를 생성한다는 점에서 yacc과 비슷하다. yacc과 달리 자바CC는 하향식 파서를 생성한다. 자바CC는 다음 'k' 입력 토큰에 기반한 선택을 해결할 수 있으므로 LL('k') 문법을 자동으로 처리할 수 있다. 또, 자바CC는 Lex와 비슷한 방식의 구문 분석기를 생성한다. 이를 동반하는 트리 빌더인 JJTree는 처음부터 트리를 구성한다.
자바CC는 BSD 라이선스로 배포된다.
<heading>역사 </heading>
1996년, 썬 마이크로시스템즈는 잭(Jack)이라는 이름의 구문 분석기를 출시하였다. "잭"을 담당한 개발자들은 개발자들은 메타마타(Metamata)라는 이름의 회사를 설립하였고 잭이라는 이름을 자바CC로 변경하였다. 메타마타는 마침내 웹게인(WebGain)의 일부로 되었다. 웹게인의 운영을 종료한 다음 자바CC는 원래 위치로 이동되었다.
지시문 (instruction)
주어진 원문을 읽고 필요한 정보를 파악하여, 원문에 근거해 질문에 답하라.
질문 (question)
자바CC가 yacc과 비교했을 때 가지는 파서 생성 방식의 차이점과 처리 가능한 문법의 특징은 무엇인가?
추론 과정 (compact_reasoning)
-
1과제 해석
task_interpretation자바CC와 yacc의 파서 생성 방식 차이 및 자바CC의 문법 처리 특징을 묻는 질문이다.
-
2정보 추출
information_extraction자바CC와 yacc의 비교 정보와 자바CC의 문법 처리 능력을 추출한다.
- yacc과 달리 자바CC는 하향식 파서를 생성한다.
- 자바CC는 다음 'k' 입력 토큰에 기반한 선택을 해결할 수 있으므로 LL('k') 문법을 자동으로 처리할 수 있다.
-
3근거 선택
evidence_selection비교 대상인 yacc과의 차이점(하향식 파서)과 자바CC의 속성(LL('k') 문법 처리)을 선별한다.
- yacc과 달리 자바CC는 하향식 파서를 생성한다.
- LL('k') 문법을 자동으로 처리할 수 있다.
-
4논리 통합
logical_integrationyacc은 언급되지 않았으나 자바CC는 하향식 파서를 생성한다는 차이점과 LL('k') 문법 처리가 가능하다는 속성을 결합한다.
-
5결론 도출
conclusion_formulation자바CC는 yacc과 달리 하향식 파서를 생성하며, LL('k') 문법을 자동으로 처리할 수 있다는 결론을 도출한다.
- yacc과 달리 자바CC는 하향식 파서를 생성한다.
- LL('k') 문법을 자동으로 처리할 수 있다.
-
6답변 생성
answer_generation질문에 요구된 두 가지 핵심 속성을 포함하여 답변을 작성한다.
- yacc과 달리 자바CC는 하향식 파서를 생성한다.
- LL('k') 문법을 자동으로 처리할 수 있다.
최종 답변 (final_answer)
자바CC는 yacc과 달리 하향식 파서를 생성하며, 다음 'k' 입력 토큰에 기반한 선택을 해결할 수 있어 LL('k') 문법을 자동으로 처리할 수 있다는 특징이 있다.
핵심 해석 (core_interpretation)
자바CC는 yacc과 달리 하향식 파서를 생성하며, 다음 'k' 입력 토큰에 기반한 선택을 해결하여 LL('k') 문법을 자동으로 처리할 수 있다.