루비에서 C의 어셈블리에서 떨어지는 것?
-
20-12-2019 - |
문제
루비는 성능이 중요하고 일반적인 루비가 작업에 달려 있지 않은 비트에 대해 C로 내려 놓을 수 있으며, C는 동일한 종류의 상황을 위해 조립에 빠질 수있게 해줍니다. Ruby 코드 내부에 C 코드를 삭제 한 다음 C 코드 내에서 Assembly까지 아래로 떨어지면 어셈블리 언어를 삽입 할 수 있습니다.
나는 항상 가능하다는 것을 희망하지만 지금까지는 결코 그것을 확인하거나 부인할 수있는 것을 발견하지 못했습니다. 측면 프로젝트의 Qt (그리고 따라서 C ++)에 대한 연구 때문에 Ruby-LANG.com의 C & C ++로 루비 비교
- 조립
를 삭제할 수 없습니다.
이것은 단순히 직접 을 어셈블리로 가거나, C를 전혀 그것을 할 수 없도록 할 수 없다는 것을 의미합니까? C : C (루비에 내장되어 있지 않은) 그냥 조립품을 사용할 수 있으므로 루비는 여전히 조립품으로 C로 사용할 수있는 것으로 가정 할 수 있습니다.
해결책
맥락을 감안할 때 ruby 에서 의미가 꽤 분명 해지는 것처럼 보입니다.
def func1(arr)
arr.map { |v| func2(v) }
end
def func2(val)
asm do
mov ax, 1234h
mov bx, ax
end
end
.
루비는 연결된 C 객체에서 그런 것을 사용하지 못하게 할 수 없습니다.
그러나 예를 들어 누군가가 그것을 만들면 꽤 멋진 도서관이 될 것입니다.:)
제휴하지 않습니다 StackOverflow