프로그래밍 언어 개발자가 어떻게 문법이 올바른지 검증하고 증명하는지 궁금합니다. 새로운 언어에 대한 새로운 문법을 만들었다 고 가정 해 봅시다. 여러 종류의 테스트 프로그램을 제공함으로써 단위 테스트 도구로 문법을 테스트 할 수 있습니다. 그러나, 나는 결코 나의 문법이 정확하다는 것을 100 % 보장하지 않을 것이다. 언어 개발자는 실제 문법이 올바른지 어떻게 확인합니까?주어진 문법의 정확성을 증명하는 방법은 무엇입니까?
연필과 종이를 사용하여 새로운 언어의 문법을 만들었습니다. 그러나 실수를했고 문법은 2 + 2 +와 같이 끝나는 표현을 허용합니다. 실수를 발견하지 못하면이 잘못된 문법을 사용하여 제 언어를 구현할 것입니다. 구현 및 단위 테스트 후에 오류를 찾을 수 있습니다. 구현을 시작하기 전에 찾을 수 있습니까?
필자는 연필과 종이 (파생 등)를 사용하여 샘플 입력으로 문법을 시험해 볼 수는 있지만 일부 모서리의 경우가 누락 될 수 있습니다. 실제 언어 개발자가 문법을 테스트하는 방법이 더 좋은가?
문법이 "정확하다"는 것은 무엇을 의미합니까? 또는 파서가 예상 문법을 올바르게 인식하는지 확인하는 방법을 묻는 것이 었습니까? – rici
이론 상으로는 정확성을 증명할 수 있습니다. 이것이 현실 세계에서 이루어 졌는지는 모르겠지만 의심 스럽습니다. 그러나 정확성 증명이 없다면 문법이 정확한지 알 수 없습니다. 그래서 아마도 사람들은 자신의 문법이 맞는지 알지 못합니다. 오히려 문법은 정확하다고 정의되어 있습니다. 아무도 실제로 어떤 언어를 사용하는지 알지 못합니다! – Patrick87
질문이 업데이트되었습니다. 문법의 정확성을 어떻게 증명할 수 있습니까? 어떤 링크 또는 설명? –