코코/R
Coco/R원본 작성자 | 한스페터 뫼센보크 등 |
---|---|
초기 릴리즈 | 2005 |
플랫폼 | 크로스 플랫폼 |
유형 | 파서/스캐너 제너레이터 |
면허증 | GPL2 |
웹사이트 | ssw |
Coco/R은 소스 언어의 구문 표기법[1]: 6 [note 1] 그래머를 사용하고 해당 언어의 스캐너와 파서를 생성하는 컴파일러 생성기다.[1]
스캐너는 결정론적 유한 자동화로 작동한다.UTF-8 인코딩에서 유니코드 문자를 지원하며 대소문자를 구분하거나 대소문자를 구분하지 않도록 할 수 있다.또한 오른쪽 측면의 문맥에 따라 토큰을 인식할 수 있다.단자 기호 외에도 스캐너는 구문의 일부는 아니지만 입력 스트림의 어느 곳에서나 발생할 수 있는 토큰(예: 컴파일러 지시어 또는 줄 끝 문자)인 실용주의도 인식할 수 있다.
파서는 재귀 강하를 사용한다. LL(1) 충돌은 다중 심볼 룩어헤드 또는 의미론적 점검으로 해결할 수 있다.따라서 허용된 그래머의 등급은 임의의 k에 대한 LL(k)이다.퍼지 구문 분석은 보완적인 토큰 집합과 일치하는 이른바 ANY 기호에 의해 지원된다.의미 작용은 생성된 스캐너 및 파서와 동일한 언어로 작성된다.파서의 오류 처리는 문법에 동기화 포인트와 "취약 기호"를 명시하여 조정할 수 있다.Coco/R은 LL(1) 충돌뿐만 아니라 문법에서 완전성, 일관성, 비재분산성을 확인한다.
Java, C#, C+++, Pascal, Modula-2, Modula-3, Delphi, VB용 Coco/R 버전이 있다.NET, Python, Ruby 및 기타 프로그래밍 언어.린츠 대학의 최신 버전은 C#, 자바, C++용이다.자바 버전에는 Eclipse 플러그인과 Visual Studio 플러그인인 C#용 플러그인이 있다.자바와 C#를 위한 샘플 그래머도 있다.
코코/R은 원래 ETHZ에서 개발되었으며, 한스페터 뫼센뵈크와 함께 린츠 대학교로 발령받으면서 이사했다.Coco/R은 약간 완화된 GNU General Public License의 조건에 따라 배포된다.
참고 항목
참조
- ^ 그러나 설명서에서는 L-속성 확장 백커스-나우르 양식 구문(EBNF)이라고 한다.
- ^ a b Mössenböck, Hanspeter; Kepler, Johannes. "The Compiler Generator Coco/R User Manual" (PDF). Johannes Kepler University Linz, Institute of System Software. Archived (PDF) from the original on 2012-06-19.
참고 문헌 목록
- Terry, Pat (2005). Compiling with C# and Java. Addison Wesley. (컴파일러 구성에 Coco/R을 사용하는 방법에 대한 책)
- Rechenberg, Peter; Mössenböck, Hanspeter (1985). Ein Compiler-Generator für Mikrocomputer - Grundlagen, Anwendungen, Programmierung in Modula-2 (in German) (1 ed.). Munich, Germany: Carl Hanser Verlag. ISBN 3-446-14495-1. (NB. 이 책은 모둘라-2의 코코 건설에 대해 기술하고 있다.)