This document's encoding type is UTF-8. If you can't see this document correctly, Change you viewer's encoding. +-----------------------------------------------------------------------+ | ROVM Compiler 에 대한 매우 간단한 설명서 | +-----------------------------------------------------------------------+ == 한계 == ROVM Compiler 는 오직 ROVM Server 의 ``ENVLANG File Format'' 지원을 위해 제작되었으며, *매우 지저분*하고, *매우 비효율*적인 코드들입니다. 개발자는 이 프로그램을 진지하게 개발할 의도가 없으며, 유지보수 계획도 없습니다. (``ENVLANG File Format'' 에 대한 테스트 바이너리를 만들 때만 업데이트하게 될 것입니다.) == 전체 활용 코드 == 현재 버전 (v0.0.1a) 에서 지원하는 코드는 아래와 같은 코드가 모두이다. .package test .class ABCDEF .def __init__ (T)V nop .defend .def abc (TII)I iload 1 iload 2 iadd ireturn .defend .classend == Directive 단어들 == 아래와 같은 directive 들이 존재합니다. .package .class .classend .def .defend 각각에 대해서 설명을 한다면 아래와 같습니다. .package 디렉토리 분류를 넣고 싶을 때 사용하는 directive 입니다. Java 의 개념과 거의 같으나, 현재 단계로써는 쓸모없습니다. .class <이름> 클래스의 시작을 나타냅니다. .classend 클래스의 끝을 나타냅니다. .def <이름> <타입> 메쏘드의 시작을 나타냅니다. <타입>에 대한 정보는 아래 절을 참고하시기 바랍니다. .defend 메쏘드의 끝을 나타냅니다. == Method Type 에 대한 설명 == Method 의 타입에 대한 설명을 한다면, 현재 아래와 같은 type 들이 존재하며 각 문자에 대한 의미는 다음과 같습니다. 'T' This 를 의미하며, C++ 에서의 self 혹은 this 와 같은 의미입니다. 'I' Integer 를 의미합니다. 'V' Void 를 의미합니다. 예를 들어 설명한다면, (T)V 의 경우 Argument 로써 `T' 이며, return 값으로 Void 타입임을 의미합니다. (TII)I 의 경우, Argument 로써 `TII' 이며, return 값 타입이 Integer 타입임을 의미합니다. `TII' 는 첫번째 인자는 This, 두번째 인자는 Integer, 세번째 인자는 Integer 를 가르킵니다. == 지원하는 opcode 들 == 현재 총 4 개의 opcode 를 지원할 수 있도록 구성되어 있습니다. nop iload iadd ireturn 각 opcode 에 대한 자세한 설명은 ``ROVM 문서'' (http://envlang.kldp.net/docs/rovm.pdf) 에서 구할 수 있습니다.