나는 C는 문맥 자유 언어, 유명한 예는 아니라고 알고 typedef
.C 언어를 문맥 자유롭게 만드는 방법은 무엇입니까? 3 라인 <code>foo</code>은, 식별자, 또는 여부, 렉서 모르는이 경우</p> <pre><code>int foo; typedef int foo; foo x; </code></pre> <p>:
내 질문이 C상황에 맞는 언어를 만드는 유일한 이유는, 무엇입니까?
즉, typedef
을 제거하면 문맥이없는 언어가됩니까? 아니면 그렇게하지 못하게하는 다른 이유 (예)가 있습니까?
그런 것들을 제거하면 더 이상 C가 없지만 C와 비슷한 (그러나 호환되지는 않음) 완전히 새로운 언어가됩니다. –
'+'는 컨텍스트에 따라 다릅니다 :'40 + 2'에서 의미합니다 정수 추가; '40 + 2.0'에서는 부동 소수점 덧셈을 의미합니다. – pmg
@pmg 파서는 어떤 종류의 것들이 중요하지 않습니다. – sepp2k