내 프로그래밍 언어 용 인터프리터를 구현할 때 먼저 사용자가 쉘로 독립 실행 형 프로그램으로 실행되는 코드를 입력 할 수있는 간단한 콘솔 창을 고려했습니다.Ruby와 Python은 어떻게 대화 형 콘솔을 구현합니까?
그러나 심각한 문제가 있습니다. 사용자가 입력 한 모든 코드 줄이 독립 실행 형 프로그램으로 처리되는 경우 토큰 화기와 구문 분석기를 거쳐 통역사가 실행해야합니다. 그러면 함수는 어떻게됩니까?
- 어떻게 파이썬/루비 대화 형 콘솔 (IDLE, irb)이 코드를 "공유"할 수 있습니까? 입력 된 코드는 어떻게 처리됩니까?
예 :
가 다시 언제든지 호출 할 수 있도록 기능이 저장되어>> def x:
>> print("Blah")
>>
>> x()
?
대화 형 콘솔은 모든 것을 반복 실행하지 않고 분명히 하나의 프로그램으로 입력 된 모든 것을 취할 수 있습니까?