Rakudo Perl6을 보면 언어 구문을 변경/확장 할 수 있고 구현하기가 효율적이고 어렵지 않은 구문 분석 및 어휘 분석 기술이 있는지 궁금합니다.런타임 언어 변경을위한 구문 분석 기술
답변
"아니요" [편집 : 질문이있는 시점에서] 질문이 Perl을 렉싱/파싱하는 것에 관한 것이라면 꽤 어렵습니다. 우리는 (우리의 "우리"를위한 나의 바이오 참조) Perl5 렉서를 가지고있다. 우리는 실제로 좋은 lexer-generator 도구 (유니 코드, 다중 상태, "regexp"이 내장 된 regexps)을 가지고 있습니다. Perl 렉서는 왕실의 두통 거리였습니다. 우리는 렉싱 (lexing) 부분을 처리하기 위해 50 개의 렉시 컬 모드 (각 자체 토큰 정의 세트가있는)와 같은 것으로 끝 맺었습니다.
우리는 파싱 부분을보고 있으며 오늘은 운이 좋고 직접 할 필요가 없으므로 지금까지 회피했습니다. Apparently 다양한 언어의 동적 정의에 따라 언어가 모호합니다. 한 순간에 구문을 해석 (구문 분석)하는 방법은 정적으로 결정할 수 없습니다. 우리는 모호성을 처리하는 GLR 파서를 사용하여이를 수행 할 수 있다고 생각하며 가능한 모호한 대안으로 단순히 모호성을 유지합니다. 몇 달 후에 알려 드리겠습니다.
PEG를 살펴보십시오. 확장 있습니다 PEG를 (http://en.wikipedia.org/wiki/Parsing_expression_grammar)을 기반으로 언어, 예를 들어, 다음과 같습니다
http://www.chrisseaton.com/katahdin/
http://www.meta-alternative.net/mbase.html
Perl5에와 Perl6 문법은 쉽게 PEG 형태로 정의 될 수있다 (그리고 제가 틀릴 수도 하지만 현재 Perl6이 이런 식으로 구현 될 가능성이 가장 높습니다).
- 1. 언어 문자열 구문 분석
- 2. NLP : 언어 분석 기술 및 알고리즘
- 3. R 언어 XML 구문 분석
- 4. 파이썬 docstring 구문 분석 (일반적으로 파이썬에서 언어 구문 분석)
- 5. 자바 런타임 런타임 분석
- 6. 제목 포맷을위한 간단한 언어 구문 분석
- 7. 언어 변경을위한 PHP 코드 작성 방법
- 8. 파이썬의 금융 기술 분석
- 9. 런타임 언어 변경 안드로이드
- 10. 어셈블리 언어 프로그래밍 기술 얻기
- 11. 일반 데이터 구조 기술 언어
- 12. R : 기술 분석 연간 결과
- 13. TSQL 오류를 확인하는 방법은 런타임 오류 또는 구문 분석 오류입니까?
- 14. IIS7 구문 분석 오류
- 15. 웹 사이트 구문 분석
- 16. HTML 페이지 (모든 언어)에서 멀티미디어 파일 구문 분석
- 17. XML 구문 분석 - 작업에 적합한 스크립팅 언어/패키지?
- 18. 솔라로 자유 텍스트 (자연 언어) 쿼리 구문 분석
- 19. 프로그래밍 방식의 구문 분석 및 언어 이해 (영어)
- 20. Xtext의 문자열 구문 분석
- 21. 런타임 쿼리 분석 및 최적화
- 22. 구문 오류가있는 코드 구문 분석
- 23. 구문 분석/구문 분석이란 무엇입니까?
- 24. 구문 분석 오류 : 구문 오류
- 25. 언어 번역 사전 기술 관련 내용
- 26. 언어, 기술 및 솔루션 간 괴리
- 27. JQueryMobile - AJAX - JSON 구문 분석
- 28. VB6 : HTML 구문 분석 용 (HTML 구문 분석 용)
- 29. libxml2를의 HTML 구문 분석 내가 HTML을 구문 분석 libxml2를 사용하고
- 30. PHP를 구문 분석 한 다음 asp.net을 구문 분석
이 대답은 Perl 5에 관한 것입니다. 질문은 Perl 6에 관한 것이 었습니다. 후자에 대한 대답은 찬성 예입니다. 이 최근 블로그 게시물에서 P6 구문을 구부리는 것에 대해 논의 해 보겠습니다. [P6 안에 HTML을 P6 안에 SQL을 간단히 포함시킬 수 있습니다.] (http://strangelyconsistent.org/blog/macros-define-your- 자기 - 리터럴 - 하루). – raiph
@raiph : 네, 맞습니다. 이 글이 쓰여지 자마자, Perl6은 더 불투명 해 보였으므로 그 대답은 "외부 Perl6"관점에서 작성되었습니다. 대답으로 의견을 추가 하시길 권합니다. [이것은 SO에 대한 대답이 영구적이지 않다는 것을 증명합니다. 그들은 썩어진다.] –