인터프리터
-
인터프리터...10일지 2020. 11. 2. 21:17
토큰 추출 단어를 추출하고 해당 단어를 표현할 수 있도록 토큰에 정보를 저장한다. 이때 실제 값으로 저장할 변수 외에 텍스트로 입력된 값을 저장해 둘 변수를 따로 두면 오류 메시지 등에 사용할 수 있다. 가령 "1 + 3"이라는 문자가 들어왔을 때 이를 토큰으로 추출하면 다음과 같이 표현할 수 있다. 1 + 3 종류 Number Plus Number 텍스트 '1' '+' '3' 값 1 0 3 토큰 추출 시 여러 정보를 추출하게 되며 그 종류와 추출 방법은 다음과 같다. 식별자 문자열이 문자로 시작된 경우 문자열의 끝 혹은 공백이 나타날 때까지 문자를 읽은 뒤 해당 문자들이 예약어에 존재하는지 확인 후 존재하면 해당 예약어로 아니면 식별자로 저장한다. 수치 상수 문자열이 숫자로 시작된 경우 숫자가 아닌 문..
-
인터프리터...8일지 2020. 10. 27. 20:43
구문 분석 인터프리터는 소스 프로그램을 읽은 뒤 의미가 있는 최소 단위로 분할한다. 이때 의미가 있는 최소 단위를 토큰이라고 한다. 토큰의 종류는 다음과 같다. 키워드 식별자 상수 문자열 리터럴 연산자 분리자 의미가 있는 최소 단위를 토큰과 단어로 구분해 부르기도 하며 각각의 의미는 다음과 같다. 토큰 생성된 종류별 정보 전체 단어 규칙과 일치하는 문자열 값 어휘 분석 루틴의 역할 일반적으로 어휘 분석 루틴은 구문 분석 루틴에서 호출되며 다음의 기능을 담당한다. 주석 제거 라인 넘버 관리 구분 문자 제거 토큰 추출 및 정보 설정 문을 실행할 때마다 소스 프로그램을 어휘 분석하는 것은 효율적이지 않으므로 다음과 같이 구성한다. 소스 프로그램을 읽는다. 어휘 분석을 하고 단축 기호화한 내부 코드로 변환한다...
-
인터프리터...7일지 2020. 10. 26. 08:56
BNF 표기법 백커스 표기법이라고도 하며 구문 도표 표현과 달리 문자로만 이론을 표기하는 방법이다. BNF 표기법의 규칙은 다음과 같다. A ::= B A는 B다 혹은 A는 B로 치환된다. C D C 뒤에 D가 이어진다. E | F E 또는 F 싸여있으면 비종료 기호 아니면 종료 기호를 나타낸다. ※ BNF 표기법은 엄밀하게 정해져 있는 것이 아니며 쉽게 보기 위해 변형되기도 한다. 가령 ::= 대신 → 가 사용되기도 하며 비종료 기호를 로 감싸는 대신 이탤릭체로 표현하기도 한다. BNF 표기법 예제 영어 소문자와 숫자로 구성되고 영어로 시작하는 식별자가 주어지는 경우를 BNF 표기법으로 나타내면 다음과 같다. ::= | | ::= a | b | c | d | e | f | g | h | i..
-
인터프리터...5일지 2020. 10. 24. 12:28
모델 인터프리터 처리계 개발 목표 인터프리터의 기본 기능을 직접 구현한다. 어휘 분석 루틴 구문 분석 루틴 프로그래밍 언어에 필요한 기능을 구현한다. 변수 처리 배열 처리 제어문 처리 함수 처리 코드의 가독성을 최우선으로 한다. BBI 인터프리터의 언어 사양 책에서는 Basic과 Ruby를 닮은 Interpreter라는 의미를 담은 BBI 인터프리터를 개발한다. 변수 선언하지 않고 이용할 수 있으며 최초 대입 시 형과 초기값이 결정된다. 초기화되지 않은 변수 사용 시 에러가 발생한다. 글로벌 변수를 설정할 수 있다. 1차원 배열을 지원한다. 변수를 선언 후 사용하도록 옵션을 지원한다. 함수 함수를 생성해 사용할 수 있도록 한다. return 문을 사용해 값을 반환한다. return 문이 없는 경우 기본 ..
-
인터프리터...4일지 2020. 10. 22. 21:29
인터프리터 구현 시 실행 환경 결정 데이터 저장 위치 일반 적으로 CPU의 레지스터를 사용하며 오퍼랜드 스택을 사용하기도 한다. 프로그램 저장 방법 작성한 프로그램을 어떤 자료구조로 저장하고 사용 할지 결정해야 한다. 지원할 자료 형 자신이 지원하고자 하는 자료형에 맞는 오퍼랜드 스택을 준비해야 한다. 레지스터 구성 연산에 따라 필요한 메모리 영역을 적절하게 가리킬 수 있어야 한다. 심볼 테이블 영역 변수명과 함수명을 저장하기 위한 공간이 필요하다. 참고문헌 참고문헌 만들면서 배우는 인터프리터하야시 하루히코 상세보기
-
인터프리터...3일지 2020. 10. 19. 22:43
인터프리터 구성 컴파일러와 달리 인터프리터는 목적 코드를 생성하지 않는다. 인터프리터 구성은 다음과 같다. 소스 프로그램 어휘 분석 토큰 추출 토큰 소스 프로그램을 분해하여 해석하기 위한 단위 내부 코드 생성 코드 기호화 토큰을 해석하여 미리 정의한 1바이트 기호 혹은 1바이트 기호와 수치의 조합으로 표현된 내부 코드로 변환한다. 소스 코드의 길이를 줄이고 정형화된 처리를 할 수 있다. 구문 분석과 실행 토큰열이 구문 정의와 일치하는지 확인하고 실행한다. 수치 상수 계산 혹은 간단한 최적화를 수행한다. 참고문헌 참고문헌 만들면서 배우는 인터프리터하야시 하루히코 상세보기 위키백과.낱말 분석