2014-11-23 5 views
1

작은 계산 집약적 인 프로그램을 기계 코드 실행 파일로 컴파일하는 방법을 찾고 있습니다.기계 코드로 컴파일하는 C C++ C# 컴파일러가 있습니까

이 프로그램은 현재 Microsoft Visual Studio C# 환경에서 작성되었지만 C, C++ 또는 이와 유사한 변형으로 컴퓨터 코드를 실행할 수있게되면 기쁘게 생각합니다.

내가이 (가) 런타임 JIT 컴파일러를 사용하여 발생되는 기대 런타임 오버 헤드를 피하기 위해 원하는

(나는 또한 SharpDevelop 환경이).

필자는 프로그램을 사용하고 아마도 내 컴퓨터에서만 사용할 것으로 예상하므로 배포 고려 사항에 대해 걱정할 필요가 없습니다.

+1

무엇을 의미합니까? 물론 C와 C++은 코드를 기계어로 컴파일합니다. – OldProgrammer

+0

보고 싶은 어셈블러 출력을 요청하는 경우 이전에 질문/대답했습니다. http://stackoverflow.com/questions/840321/how-can-i-see-the-assembly-code-for-a-c-program –

+2

언급 한 모든 컴파일러는 기계어 코드를 실행하는 프로그램을 만듭니다. 기계 코드가 생성되는 정확한 순간은 완전히 다릅니다. C#에서 여러 옵션을 사용하여 정확히 언제 결정할 수 있습니다. 지터를 사용하는 것이 가장 빠를 수 있습니다. 그리고 그렇지 않다면 ngen.exe를 사용하여 미리 기계 코드를 생성하십시오. 또는 공유하지 않으려는 카드에서 C++ 컴파일러의 백엔드를 사용하는 .NET Native를 사용하십시오. 따라서 중요한 것은 아니며 기계주기에 소비하는 시간을 신경 써야합니다. 귀 사이의 것들. –

답변

0

모든 C/C++ 컴파일러는 네이티브 컴퓨터 코드로 컴파일되므로 컴파일 할 시스템에서 메모리를 직접 주소 지정하고 인라인 어셈블러를 사용하며 sizeof (int)를 신경 쓸 수 있습니다.

+1

간헐적 인 C++ 인터프리터가 존재합니다. –

+0

실험 완구 이외에 C++ 인터 피터가 가지고있는 목적은 무엇입니까? 그게 투표의 가치가 있다고 생각하니? –

+0

(내 downvote 아님) 명백하게, MSVC++는 .Net에 일반적인 C++ 코드 (예 : Hello, World)를 컴파일하는 기능이있는 것 같습니다. 이 경우 메모리를 직접 주소 지정하거나 인라인 어셈블러를 사용할 수 없습니다. (그리고 일반적으로 그것은 모두 정의되지 않은 동작입니다.) – MSalters