2010-09-08 7 views
9

나는 내 마음에있는 개인 프로젝트를 위해 Forth을 공부하고있다. 그것은 작은 가상 머신에서 구현할 수있는 정말 멋지고 간단한 언어입니다.Forth가 사전을 어떻게 구현합니까? (논쟁)

특히 어휘 사용 가능성에 깊은 인상을받습니다. 다른 한편으로, 나는 사전이 작동하는 방식이 전체적으로 그렇게 단순한 언어에 비해 지나치게 복잡하다고 생각한다. 나는 그것에 대해 몇 가지 논문을 읽었 기 때문에 이것을 말하고, 많은 논란이 있다는 것을 알고있다.

지침에 Forth의 일부 기능을 구현하는 일부 마이크로 프로세서가 있으며 사전에 해당 기능과 어휘와 같은 기능을 구현하는 방법을 알고 싶습니다. 따라서 마이크로 프로세서처럼 보이는 가상 컴퓨터를 구현할 수 있습니다.

즉, 사전은 성장하는 단순한 힙이 아니며 단순히 색인을 생성 할 수있는 단순 선형 벡터가 아니므로 마이크로 프로세서의 마이크로 코드가 수행하기 쉬운 것은 아닙니다 (추측합니다) . 그 특수 프로세서가 여분의 코드 없이도 사전을 구현할 수 있다면 정말 감명을받을 것입니다. 나는 이것이 불가능하다고 생각한다.

내 프로젝트의 경우, 예를 들어 6852에서와 같이 해석기를 사용하여 인터프리터를 힙으로 코딩하려고합니다. 사전에 대한 코드는 인터프리터와 함께 컴파일되어야하며 Forth의 편집장. 나는 이것이 더 현실처럼 보일 것이라고 생각한다.

이 논란은 무엇입니까? 사전과 어휘 사용과 관련하여 이러한 특수 프로세서는 어떻게 작동합니까?

+0

@otkins 가상 컴퓨터를 어떻게 구현할 계획입니까? 어셈블러에서? ANSI C? 구현 언어 및 대상 아키텍처를 선택하면 사전을 구현하는 방법에 가장 큰 영향을 미칩니다. –

+0

다시 한번 더 정확히 말해서, 어떤 마이크로 프로세서를 사용하고 처음 시작할 때 어떤 구현을 사용합니까? –

답변

3

The Wikipedia article on Forth에는 사전의 원래 구현에 대한 간단한 설명이 포함되어 있습니다. The Evolution of Forth의 "Development and Dissemination"도 참조하십시오. 원래의 구현은 링크 된 목록을 사용했습니다. 그러나 해시 테이블 (지도)은 더 좋은 근사값 인 것 같습니다.

관련 문제