프로그래밍 언어간 접목이 가능한가요?

kjhkjh724의 이미지

예를 들면 C++하고 Haskell 하고 같은 컴파일러로 같은 소스내에서 사용할수 있을까요?

가끔 OS나 뭘 만들었 다면서 프로그래밍 언어 뭐뭐뭐로 만들었다.

이런 글을 보는대 이해가 잘 안되기도 하고 또 개인적으로 위의 두 언어를 석어서 써보고 싶기도 해서 질문올립니다.

감사합니다.

tyhan의 이미지

같은 컴파일러로 같은 소스내에서는 하기 어려울것으로 보입니다.
대부분 다른 언어 지원하는것은 각각의 컴파일러로 컴파일후
링킹할때 연결해주는 것으로 알고 있습니다.

Haskell에서 다른 언어 지원모듈입니다.
https://wiki.haskell.org/Foreign_Function_Interface
https://wiki.haskell.org/FFI_Introduction

익명 사용자의 이미지

보통은
----------------------------------------------------------------
언어1 | 언어2 | 언어 3 | ....... | 언어-n
----------------------------------------------------------------
공통된 언어(표현) 인터페이스(Assembly Language, API, ABI, VM등 )
----------------------------------------------------------------
기계(CPU) 언어
----------------------------------------------------------------

Haskell 같은 경우에는 FFI(Foreign Function Interface)가 있군요.
대략, C/C++ 로 어떤 모듈 개발하고, 이를 Haskell에서 호출하거나,
반대로 C/C++에서 Haskell 을 호출하거나말입니다.

이러한 혼합(mixed programming)은 아주 오랜 역사를 가지고 있습니다.
거의 컴퓨터의 태동부터 있었다고 봐도 과언이 아닙니다.

화려함보다는 '적재적소'가 권고됩니다.ㅎ