2010-04-02 3 views
1

루비가 잠시 동안 있었기 때문에 컴파일러에서 수행중인 작업이 있는지 궁금합니다. 나는 컴파일러 디자인이 Eval()과 같은 것들에 의해 방해 받는다는 것을 알고 있으므로 구현이 100 % 정확할 것이라고 기대하지 않을 것이다. 내 자신의 검색 결과가 희소하게 나타났습니다.Ruby의 컴파일 언어로의 상태는 어떻습니까?

+1

나쁜 컴파일러는 나쁜 JITer만큼 느린 프로그램을 만듭니다. 이것은 사람들이 노력해야하는 것이 아닙니다. –

+0

@Unicorn ~ 나쁜 컴파일러조차 기본적인 난독 화기를 작동시킵니다. 순수한 학자와 같은 실행 속도 외에 컴파일러를 만들 수있는 많은 이유가 있습니다. – QueueHammer

답변

3

MacRuby은 v0.5부터 Ahead-of-Time Compilation을 제공합니다. LLVM을 사용하여 Objective-C 런타임에서 실행되는 바이너리를 컴파일합니다.

+0

Windows에서 실행 중이지만, 선호하는 플랫폼 응답 OSX를 더 좋아합니다. – QueueHammer

0

Rubinius은 Ruby 용 JIT 컴파일러입니다. 루비는 정적 컴파일러가 작동하기에는 언어가 너무 동적이기 때문에 결코 순수 컴파일러가 존재하지 않는다. 그들이 내부적으로 수행 한 것은 어쨌든 엄청나게 추악 할 것이며 어쨌든 최적화하려고 할 때 JIT로 진화 할 것입니다.

+1

저는 Ruby에 익숙하지 않습니다. Common Lisp보다 동적 인 것인가? 일반적으로 컴파일 되는가? –

+0

컴파일 된 언어가 무엇인지 또는 아닌지에 대한 아이디어를 잘 살펴보십시오. http://stackoverflow.com/questions/376611/why-interpreted-langs-are-mostly-ducktyped-while-compiled-have-strong-typing/376828#376828 – QueueHammer

0

미라는 자바 바이트 코드로 루비 코드를 컴파일,있다 :

http://www.mirah.org/

난 당신이 이런 식으로 코드를 당황하게 수 있으리라 생각합니다.

관련 문제