2011-06-10 3 views

답변

11

출처에서 해석하는 모든 단계에 대한 아이디어가 있습니까? 매우 첫 번째 인 어휘 분석만이 공백을 처리해야하고, 공백의 경우 "처리"는 "무시"를 의미합니다. 이 단계는 전체 시간 중 아주 작은 부분만을 차지합니다. 일반적으로 정규 표현식을 사용하고 거의 선형 복잡성이 있습니다. 비교에서 연령대가 걸릴 수있는 구문 분석과 비교합니다. 바이트 코드를 사용하는 구현에서 두 번째 단계 (바이트 코드 생성)는 중요하지 않은 프로그램의 실제 실행보다 훨씬 적게 걸리기 때문에 해석은 다소 실용적입니다.

걱정하지 마십시오. 아무도 눈치 채지 못할 차이는 없습니다. 솔직히 말해서, time을 사용하여 차이를 측정 할 수 있고 실제로 작동하지 않는 작은 프로그램에 놀랄 것입니다.

8

성능 영향은 ε, 즉 0보다 큰 매우 작은 수이다. 공백은 한 번만 읽히고 구문 분석되며, Ruby 코드는 중간 형식으로 변환됩니다.

+0

공백은 한 번 읽히고 전혀 구문 분석되지 않습니다. – EJP

+0

난센스. 렉싱 단계는 구문 분석의 일부입니다. –

+0

난센스. 공백은 선별됩니다. 결과가 스캔됩니다. 그 결과가 파싱됩니다. – EJP

9

파서가 탭이있는 들여 쓰기에서 1 바이트를 읽는 것과 스페이스를 4 바이트에서 읽는 사이에 미미한 영향이 있으면 코드를 읽고 탭/간격을 수정해야하는 다음 사람이 상쇄하게됩니다.

공백을 사용하십시오. 서명 한 다음에 코드를 읽을 사람.

+0

아멘, 형제! [] (http://stackoverflow.com/questions/646032) –

관련 문제