C언어와 다른 오브젝트 모듈과의 링크

gurumong의 이미지

C언어의 컴파일러에 의해서 생성된 오브젝트 모듈과
다른 언어의 컴파일러에 의해서 성생된 오브젝트 모듈을 링크해서
프로그램 전체에서 사용가능한 외부연결을 가지는 명칭(변수)을 다룰때
하나의 메모리 공간을 같이 사용하게 되는것이될텐데

각 언어별로 데이터 타입이 달라서 전혀 엉뚱한 값의 해석이 나올수 있을꺼 같은데
이것은 해결할수 있는 방법이 있나요?

전웅의 이미지

있습니다.

추상적으로 질문하신 것을 보니 특정 환경 아래에서 특정 언어들을 다루는
경우가 아닌 일반적인 설명(그런 문제가 존재하며 이를 해결하기 위한
방법이 존재한다는 사실)을 원하시는 것으로 판단됩니다.

말씀하신 경우와 같은 프로그래밍 방식을 흔히 multilingual programming
혹은 multi-language programming 이라고 부릅니다.

예전 제 홈페이지에 올라와 있던 세미나 자료 중 하나가 C 언어와 FORTRAN
77 (??? 77 이 맞는지는 역시나 가물가물) 사이의 interoperability 를
위해 유의할 사항을 정리한 것이었습니다. (당시가 90년대 후반이라 당시
진행중이던 FORTRAN 200x 표준화에 대한 내용도 담고 살짝 담고 있던 것
으로 기억합니다)

한동한 FORTRAN 볼 일이 없어 잊고 있었는데, 님 질문을 보고 생각나
찾아보니 2000년 이후 표준 C 언어와의 binding 을 위해 다양한 편의가
제공되고 있군요.

http://www.fortran.bcs.org/2002/interop.htm
http://portal.acm.org/ft_gateway.cfm?id=1124710&type=pdf&coll=GUIDE&dl=GUIDE&CFID=15151515&CFTOKEN=6184618

interoperability 와 함께 원하는 언어를 검색어로 사용하시면 다른
언어를 다루는 경우에 발생하는 문제나 해결 방법 등도 찾으실 수
있습니다.

불현듯 (스크립트 언어를 포함해) 7개의 언어로 작성됐던 IOCCC 코드가
생각나는군요. :-)

--
Jun, Woong (woong at icu.ac.kr)
Web: http://www.woong.org (서버 공사중)

--
Jun, Woong (woong at gmail.com)
http://www.woong.org

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.