나는 컴파일러와 인터프리터의 주제를 집중적으로 연구합니다. 내 기본 이해가 올바른지 확인하고 싶으므로 다음을 가정 해 봅시다.
"Foobish"라는 언어가 있으며 키워드는
<OUTPUT> 'TEXT', <Number_of_Repeats>;
콘솔에 10 번 인쇄하고 싶다면
OUTPUT 'Hello World', 10;
안녕하세요 World.foobish-file.
이제 선택한 언어로 통역사를 작성합니다.이 경우 C # :
using System;
namespace FoobishInterpreter
{
internal class Program
{
private static void Main(string[] args)
{
analyseAndTokenize(Hello World.foobish-file)//Pseudocode
int repeats = Token[1];
string outputString = Token[0];
for (var i = 0; i < repeats; i++)
{
Console.WriteLine(outputString);
}
}
}
}
인터프리터는 매우 쉬운 인터프리터 수준에서 스크립트 파일 등을 분석하고 인터프리터 구현 방식으로 foobish-language를 실행합니다.
컴파일러가 실제 하드웨어에서 직접 실행되는 기계어를 작성합니까?
따라서 인터프리터는 기계 언어를 생산하지 않지만 컴파일러가 입력을 위해 그것을 수행합니까?
컴파일러와 인터프리터의 기본 작동 방식에 대한 오해가 있습니까?