Search Results for '바이트코드'

1 POSTS

  1. 2008.04.03 Da Vinci Machine

Da Vinci Machine

Posted 2008. 4. 3. 03:12
JVM에서 돌아가는 프로그래밍 언어가 무려 200개가 넘는다는 사실을 알고 있으세요? Programming Languages for the Java Virtual Machine 보시면 JVM 상에서 동작하는 언어의 목록이 나와있습니다.

OpenJDK에서는 다빈치 머신(Da Vinci Machine)이라는 프로젝트를 하고 있습니다. 자바 가상 머신(JVM)을 자바 뿐만 아니라 여러 언어에서 쉽게 사용할 수 있도록 개선하는 것을 목표로 하고 있습니다.

특히 Groovy, Jython, Jruby 등 JVM을 타겟으로 하는 스크립트 언어 사용이 늘면서 전략적으로 동적 스크립트 언어 지원을 가장 큰 목표로 삼고 있습니다.

Microsoft 2008 Lang.NET Symposium에서 발표한 New Languages on the JVM: Pain Points and Remedies를 보면 JVM에서 다중 언어를 지원하면서 겪은 문제점과 해결책들을 잘 요약해서 보여주고 있습니다.

동적 스크립트 언어 구현에서 가장 골머리를 앓는 부분이 동적 메서드 호출입니다. 파이썬이나 루비는 런타임에 존재하지 않는 함수를 호출할 수 있지만 자바는 컴파일할 때 다 확인을 합니다. 자바를 구현한 JVM은 동적으로 메서드를 호출할 방법이 없기 때문에 복잡한 트릭을 사용해야 합니다.

다빈치 머신은 JSR 292 Supporting Dynamically Typed Languages on the JavaTM Platform 와도 관련이 있는데, invokedynamic이라는 바이트코드 명령을 추가하자는 제안이 된 상태입니다. 2008년에 JVM 확장을 확정하고 자바 7에는 추가하려는 생각인 것 같은데 관련된 내용을 좀 더 파악해야겠습니다.