2010-04-16 4 views
3

나는 Ruby를 배우고 있으며 C 언어로 건물을 확장하기 시작했습니다. 저는 Ruby를 프로그래밍하고 있습니다. Pragmatic Programmer 's Guide 그래서 기본 견과류와 볼트를 따라 할 수 있습니다. 내가 궁금해 한 것은 Ruby와 다른 언어 사이의 상호 운용성을 돕기 위해 C/++가 가장 중요한 부분 인 이미 멋진 프레임 워크가 있다면 말이야. 나는 인터넷 검색을 시도했지만 결과는 언어 상호 운용성보다 언어 비교에 초점을 맞 춥니 다.Ruby와 다른 언어를 혼합하는 가장 좋은 방법은 무엇입니까? (특히 C++)

TIA,

앤디

+0

유용한 정보를 심도있게 말할 수는 없지만 cplus2ruby (http://rubyforge.org/projects/cplus2ruby/)가 있습니다. 루비 전문가에게 맡기겠습니다. – ChristopheD

+0

매우 흥미 롭습니다. 확실히 그걸 가지고 놀아야 만합니다. 고마워요! (SWIG는 다양한 스크립팅 언어를 사용하는 장점이 있습니다 ... 우, 결정, 결정!) – Andy

답변

1

SWIG를 살펴 보자. C 및 C++ 프로그램을 상위 레벨 언어로 작성된 다른 프로그램과 통합하기위한 훌륭한 프레임 워크입니다. 원래 Python, TCL 및 Perl을 지원하기 위해 작성되었지만 Ruby도 지원하도록 확장되었습니다.

+0

감사합니다. 매우 유용합니다. – Andy

+0

추신 : 귀하의 답변에 투표 할 수 없습니다. 나는 RPG와 XP와 같은이 평판의 일을 정말 웃기는 것을 발견했습니다! 이제 언제 마법의 미사일을 얻을 수 있습니까? – Andy

0

Java에서 Ruby를 사용하려면 JRuby를 살펴보십시오. 이것은 Ruby의 Java 구현이며 Ruby를 통해 Java 라이브러리/코드를 호출 할 수있게 해줍니다.

http://jruby.org/

+0

감사. 나는 그것을 들어 봤지만 그것을 들여다 보지 못했습니다. 루비 코드 (pros vs cons를 조사해야 함)를 실행하는 데 사용할 수 있다고 생각하지만, 자바에서 내 확장 기능을 사용하고 싶지는 않습니다. 주로 다른 언어 확장을 수행 할 성능상의 이유로, 어쨌든 C++에 가장 익숙합니다 ... – Andy

0

FFI는 루비 C 라이브러리까지 구현 후크 권장되는 방법이지만, 인터넷 검색의 비트는이 아마 C++로 그대로 작동하므로 꿀꺽 꿀꺽을 시도하지 않습니다 제안합니다. FFI-SWIG가 있습니다 here.

+0

감사합니다. 재미 있습니다. 언뜻보기에 큰 장점은 루비에 묶여 있지 않은 C 라이브러리 (ruby.h, rb_define_class 등 없음)와이를 사용하는 인터페이스를 만들 수 있다는 것입니다. 이 사건에서 내가 뭘 찾고 있었는지는 정확히 알 수는 없지만. 다시 한번 감사드립니다. – Andy

관련 문제