2016-06-12 4 views
3

필자는 사람이 읽을 수있는 수학 표현식의 문자열에서 함수를 생성하는 기능이있는 JavaScript 용 복합 수학 라이브러리를 작성했습니다. C++에서 런타임 생성 함수를 구현하는 방법이 있습니까?런타임 중에 C++ 코드를 컴파일하는 방법이 있습니까?

+0

C 또는 C++로 제한하십시오. 그렇지 않으면 약간 넓습니다. – fuz

+0

@FUZxxl 거기, 고쳐졌습니다. –

+0

컴파일러를 호출 할 수 있습니다;). 진심으로, 나는 LLVM 남자들이 어떤 시점에서 C++ JIT 작업을 한 것으로 생각한다. (나는 잘못 생각할 수도있다.) –

답변

3

FUZxxl 님의 답변은 정확하며 Clang/LLVM 시설물을 살펴 보는 것이 좋습니다.

(유용하지 않음) 자습서 file here이 있습니다. Language on LLVM 작성에 대한 광범위한 자습서. C++ 응용 프로그램에서 생성 된 라이브러리를로드 할 수 있습니다. 당신이 성능에 중요한 구성 요소가없는 한

, 당신은 ChaiScript의 사용을 사용할 수있다 (NB를 : 나는 그것을 제휴 어떠한 방식으로 또는 저자에서 오전)

+0

유용한 링크를 제공해 주셔서 감사합니다. 그렇습니다. 구성 요소는 성능에 결정적인 요소입니다. 라이브러리를 포팅하는 이유는 프랙탈 생성 프로그램의 속도를 높이기 위해서입니다. –

3

C++ 컴파일러를 실행하여 공유 라이브러리를 생성하고이를 프로그램에로드하여 런타임에 C++ 코드를 실행할 수 있습니다. 세부 사항은 Windows와 POSIX가 공유 라이브러리를로드하는 메커니즘이 서로 다르기 때문에 작업중인 플랫폼에 따라 달라집니다.

0

'컴파일 된 언어 방법은'정의하는 것입니다 문법, 구문 분석기, AST (추상 구문 트리) 작성 및 해석/컴파일. 이것을 할 때, 당신은 본질적으로 자신 만의 컴파일러/인터프리터를 작성하고 있으며 많은 재미가 있습니다. 쉽게 작동하게하려면 부스트 정신을 살펴보십시오.

+0

권장 사항을 보내 주셔서 감사합니다.하지만 유감스럽게도 컴파일 할 문자열은 런타임 전까지는 알 수 없으므로 사용자 입력을 통해 알 수 있습니다. 나는 통역사가 나의 요구에 충분히 높은 성과를 낼 것이라고 생각하지 않는다. –

관련 문제