자바 코드를 자신의 응용프로그램에 임베딩하는 VM 구현?
글쓴이: 체스맨 / 작성시간: 수, 2004/07/14 - 4:09오후
질문이 두 개 입니다.
파이썬이나,
http://docs.python.org/ext/ext.html
EiC 같은 인터프리터 C 인 경우,
http://eic.sourceforge.net/overview/#SECTION00060000000000000000
각자의 소스 코드를 C로 만든 응용프로그램에서 실행할 수 있는 함수들을 제공하는데요.
첫번째 질문은,
이런것을 지원하는 자바 VM 이 있을까요? kaffe 는 잠깐 훑어봤습니다만, 지원된다는 문서를 읽지 못했습니다.
실은 이런 자바 VM 이 필요하다기 보다는, 특정 언어 (일단, C 를 생각하고 있습니다.) 를 인터프리트 (또는 자바 바이트 코드나, 새로 정의한 바이트코드로 변환해서 실행) 하는 기능들을 필요에 의해 구현해보려는데,일단 사전 조사 중이구요.
두번째 질문은,
자바 말고 다른 언어들 중에서 이런 임베딩 기능을 지원하는 것들은 어떤 것이 있을 까요? 일단 위에 제시한 파이썬과 EiC 말구요. 운영체제에 구애받지 않고 말씀해주셨으면 합니다. 참고 링크를 알려주시면 더욱 좋겠습니다.
Forums:
음, JNI를 말씀하시는 건가요? -_-;;C에서 Java Nat
음, JNI를 말씀하시는 건가요? -_-;;
C에서 Java Native Interface를 이용해 프로그래밍 하면 자바에서 메쏘드 호출하듯이 불러 쓸 수 있습니다.
ruby도 가능한 것으로 알고...
C와의 연동은 가능한 언어가 많은 것으로 아는데 자세히는 모르겠군요.
노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5
임베딩 기능에 TCL을 빼 놓으면 TCL이 섭섭해할겁니다. if마저 임베
임베딩 기능에 TCL을 빼 놓으면 TCL이 섭섭해할겁니다. if마저 임베딩으로 구현한 언어인데...
guile도 빼놓을 수 없겠지요. ;-)
guile도 빼놓을 수 없겠지요. ;-)
[quote="eminency"]음, JNI를 말씀하시는 건가요? -_-
그런게 있었군요. 자바 공부한지가 오래돼서... -_-;;;;
찾아보니 자바 1.1 부터 C 에서 자바 메소드를 호출할 수 있었던 것 같은데, 제가 공부한 책은 1.0 이군요. 제가 해봤던 건 자바에서 C 함수를 호출하는 것이었습니다. 이 책엔 JNI 라고 나와있지도 않고 그냥 native 메소드라고 돼 있네요.
일단 원하는 기능 중 하나는 된 것 같은데, 다른 하나는, 파이썬 메뉴얼에 "Very High Level Embedding" 이라고 나와있는 소스 문자열을 입력받아 그대로 실행하는 것입니다. JNI 는 소스 문자열이 아니라 컴파일된 바이트 코드를 실행하는 것 같네요.
파이썬은
PyRun_SimpleString("from time import time,ctime\n"
"print 'Today is',ctime(time())\n");
EiC 에서는
EiC_parseString("#include <stdio.h>");
EiC_parseString("int a = 10,i;");
EiC_parseString("for(i=0;i<a;i++)"
" printf(\"%%d\\n\",i);");
이런 식으로 하는군요. 아마도 JNI 가 Invoking Java "Virtual Machine" 이라는 제목으로 되어있는 것으로 보아 위와 같이 소스 라인을 입력받지는 못할 것 같고, 그렇다면 현재로서는 Interactive 모드로 자바 명령을 실행하기는 어려운 것 아닌가요?
말씀해주신 언어들이 이러한 High Level Embedding 이 가능한지 모르겠네요.
Orion Project : http://orionids.org
인터렉티브 하게 실행도 가능합니다jsp 가 그러한 방식이 아닙니까?
인터렉티브 하게 실행도 가능합니다
jsp 가 그러한 방식이 아닙니까?
그러한 특별한 인터페이스가 없으니까
따로 만들어야 겠죠
-- 아쉬운 하루 되세요 --
[quote="voider"]인터렉티브 하게 실행도 가능합니다jsp
방식이야 그렇다지만, 그것을 일반적인 응용 프로그램에서 실행한다는데에는 감이 잘 안오는데 (일단, 제가 jsp 를 잘 알지 못합니다. ) 일례로 다음과 같은 기능을 만드는 경우에 힌트를 주실 수 있나요?
Orion Project : http://orionids.org
댓글 달기