{"id":5797,"date":"2026-04-02T16:12:36","date_gmt":"2026-04-02T07:12:36","guid":{"rendered":"https:\/\/jore2.com\/community-3441-a-new-c-back-end-for-ocamlc\/"},"modified":"2026-04-05T11:46:18","modified_gmt":"2026-04-05T02:46:18","slug":"community-3441-a-new-c-back-end-for-ocamlc","status":"publish","type":"post","link":"https:\/\/jore2.com\/?p=5797","title":{"rendered":"OCaml \ucef4\ud30c\uc77c\ub7ec\uc758 C++ \ubc31\uc5d4\ub4dc \ub4f1\ud310: \uc65c \uac1c\ubc1c\uc790\ub4e4\uc774 \uc8fc\ubaa9\ud558\ub294\uac00"},"content":{"rendered":"<div class=\"jore2-editor-byline\">\n<p><strong>\ubc30\uc18c\ub77c<\/strong><\/p>\n<\/div>\n<p>\ucd5c\uadfc \uc624\ud508\uc18c\uc2a4 \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0\ub97c \uc911\uc2ec\uc73c\ub85c OCaml \ucef4\ud30c\uc77c\ub7ec\uc778 ocamlc \uc5d0 \uc0c8\ub85c\uc6b4 C++ \ubc31\uc5d4\ub4dc\uac00 \ub3c4\uc785\ub41c \uc0ac\uc2e4\uc774 \ud070 \ud654\uc81c\ub97c \ubaa8\uc73c\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uae30\uc874 OCaml \uc740 C \uc5b8\uc5b4 \uae30\ubc18\uc758 \ub7f0\ud0c0\uc784\uacfc FFI(\uc678\ubd80 \ud568\uc218 \uc778\ud130\ud398\uc774\uc2a4) \ub97c \uc0ac\uc6a9\ud574 \uc654\uc73c\ub098, \uc774\ubc88 \uc5c5\ub370\uc774\ud2b8\ub97c \ud1b5\ud574 C++ \ud658\uacbd\uc5d0 \ucd5c\uc801\ud654\ub41c \ubc31\uc5d4\ub4dc\uac00 \ucd94\uac00\ub418\uba74\uc11c \uc5b8\uc5b4\uc758 \ud65c\uc6a9 \ubc94\uc704\uac00 \ud55c\uce35 \ub113\uc5b4\uc84c\uc2b5\ub2c8\ub2e4. \uc774 \ubcc0\ud654\ub294 \ub2e8\uc21c\ud788 \ucef4\ud30c\uc77c\ub7ec\uc758 \uae30\uc220\uc801 \uc5c5\uadf8\ub808\uc774\ub4dc\ub97c \ub118\uc5b4, \ud604\ub300\uc801\uc778 C++ \uc0dd\ud0dc\uacc4\uc640\uc758 \uae34\ubc00\ud55c \uc5f0\uacc4\ub97c \uac00\ub2a5\ud558\uac8c \ud558\ub294 \uc911\uc694\ud55c \uc804\ud658\uc810\uc73c\ub85c \ud574\uc11d\ub429\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uc8fc\uc81c\uac00 \ud604\uc7ac \ub728\uac70\uc6b4 \uad00\uc2ec\uc744 \ubc1b\ub294 \uc774\uc720\ub294 OCaml \uc758 \ud575\uc2ec \uac1c\ubc1c\uc790 \uc911 \ud55c \uba85\uc778 \uc2a4\ud2f0\ube10 \ub3cc\ub780\uc774 \uc8fc\ub3c4\ud55c \uc774\ubc88 \ud328\uce58\uac00 \uae30\uc874 C \ubc31\uc5d4\ub4dc\uc758 \ud55c\uacc4\ub97c \uba85\ud655\ud788 \ud574\uacb0\ud588\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. \ud2b9\ud788 C++ \uc778\ud130\ud504\ub9ac\ud130\uac00 \uaf2c\ub9ac \ud638\ucd9c \ucd5c\uc801\ud654(Tail Call Optimization) \ub97c \uc644\uc804\ud788 \uc9c0\uc6d0\ud558\uc9c0 \ubabb\ud574 \ubc1c\uc0dd\ud558\ub294 \uc2a4\ud0dd \uc624\ubc84\ud50c\ub85c\uc6b0 \ubb38\uc81c\ub97c \uc6b0\ud68c\ud560 \uc218 \uc788\ub294 \uc0c8\ub85c\uc6b4 \uad6c\uc870\ub97c \uc81c\uc2dc\ud588\ub2e4\ub294 \uc810\uc774 \uac1c\ubc1c\uc790\ub4e4\uc758 \uacf5\uac10\uc744 \uc5bb\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uae30\uc874\uc758 C++ \ucf54\ub4dc\uc5d0\uc11c \uc7ac\uadc0 \ud638\ucd9c \uc2dc \uc2a4\ud0dd\uc774 \ud3ed\ubc1c\ud558\uc9c0 \uc54a\ub3c4\ub85d \ud558\ub824\uba74 \uc5ed\uc21c \uc815\ub82c\uc774\ub098 \ud544\ud130\ub9c1 \uac19\uc740 \ud568\uc218\ub97c \ud2b9\uc774\ud55c \ubc29\uc2dd\uc73c\ub85c \uad6c\ud604\ud574\uc57c \ud588\ub358 \ubc88\uac70\ub85c\uc6c0\uc774, \uc0c8\ub85c\uc6b4 \ubc31\uc5d4\ub4dc\ub97c \ud1b5\ud574 \ubcf4\ub2e4 \uc790\uc5f0\uc2a4\ub7fd\uace0 \ud6a8\uc728\uc801\uc778 \ucf54\ub4dc\ub85c \uc791\uc131\ub420 \uc218 \uc788\uac8c \ub41c \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\uac1c\ubc1c\uc790\ub4e4\uc758 \ubc18\uc751\uc740 \ub9e4\uc6b0 \uae0d\uc815\uc801\uc785\ub2c8\ub2e4. \ucee4\ubba4\ub2c8\ud2f0\uc5d0\uc11c\ub294 \uc774 \uc5c5\ub370\uc774\ud2b8\uac00 \uc7a5\uae30\uc801\uc73c\ub85c \uc720\uc9c0\ubcf4\uc218\ud574\uc57c \ud558\ub294 \ucf54\ub4dc\ubca0\uc774\uc2a4\uc5d0 \ud070 \ub3c4\uc6c0\uc744 \uc904 \uac83\uc774\ub77c\uace0 \ud3c9\uac00\ud558\uba70, \uba85\ub839\uc904 \ud50c\ub798\uadf8\uc5d0 \uc758\uc874\ud558\uae30\ubcf4\ub2e4 \uc774\uc2dd\uc131 \uc788\ub294 \uad00\uc6a9\uc801 \uc811\uadfc\ubc95\uc744 \uc0ac\uc6a9\ud55c \uc810\uc744 \uce6d\ucc2c\ud588\uc2b5\ub2c8\ub2e4. \uc2e4\uc81c\ub85c \uc0c8\ub85c\uc6b4 \ub370\uc774\ud130 \uad6c\uc870\ub97c \ud65c\uc6a9\ud558\uc5ec 10000 \ubbf8\ub9cc\uc758 \uc18c\uc218\ub97c \uacc4\uc0b0\ud558\ub294 \ud14c\uc2a4\ud2b8\uc5d0\uc11c g++ \uac00 8 \ucd08\ub77c\ub294 \uc9e7\uc740 \uc2dc\uac04\uacfc 3.1 \uae30\uac00\ubc14\uc774\ud2b8\uc758 modest \ud55c \uba54\ubaa8\ub9ac\ub9cc\uc73c\ub85c \uc5f0\uc0b0\uc5d0 \uc131\uacf5\ud55c \uc0ac\ub840\ub294 \uc774 \uae30\uc220\uc758 \uc2e4\uc6a9\uc131\uc744 \uc785\uc99d\ud558\ub294 \uacb0\uc815\uc801\uc778 \uadfc\uac70\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774\ub294 \ub2e8\uc21c\ud788 \uc774\ub860\uc801\uc778 \uac1c\uc120\uc774 \uc544\ub2c8\ub77c \uc2e4\uc81c \uc131\ub2a5 \ud5a5\uc0c1\uc744 \uccb4\uac10\ud560 \uc218 \uc788\ub294 \uc218\uc900\uc784\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc55e\uc73c\ub85c \uc8fc\ubaa9\ud574\uc57c \ud560 \uc810\uc740 \uc774 C++ \ubc31\uc5d4\ub4dc\uac00 OCaml \uc758 FFI \uae30\ub2a5\uc744 \uc5b4\ub5bb\uac8c \ub354 \uc815\uad50\ud558\uac8c \ud655\uc7a5\ud560 \uac83\uc778\uc9c0\uc785\ub2c8\ub2e4. \uc2a4\ud2f0\ube10 \ub3cc\ub780\uc774 \uc774\uc804\uc5d0\ub3c4 &#8216;mov \uba85\ub839\uc5b4\uac00 \ud29c\ub9c1 \uc644\uc804\ud558\ub2e4&#8217;\ub294 \ub180\ub77c\uc6b4 \uc774\ub860\uc744 \uc99d\uba85\ud588\ub358 \uac1c\ubc1c\uc790\uc784\uc744 \uace0\ub824\ud560 \ub54c, \uc774\ubc88 \uc5c5\ub370\uc774\ud2b8\ub294 OCaml \uc774 \uc2dc\uc2a4\ud15c \ud504\ub85c\uadf8\ub798\ubc0d \ubd84\uc57c\uc5d0\uc11c \ub354\uc6b1 \uac15\ub825\ud55c \uc704\uce58\ub97c \ucc28\uc9c0\ud558\ub294 \uacc4\uae30\uac00 \ub420 \uac00\ub2a5\uc131\uc774 \ub192\uc2b5\ub2c8\ub2e4. \uac1c\ubc1c\uc790\ub4e4\uc740 \uc774\uc81c C++ \uae30\ubc18\uc758 \uace0\uc131\ub2a5 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c OCaml \ud504\ub85c\uc81d\ud2b8\uc5d0 \ub354 \uc27d\uac8c \ud1b5\ud569\ud560 \uc218 \uc788\uac8c \ub418\uc5c8\uc73c\uba70, \uc774\ub294 \ud5a5\ud6c4 \uc5b8\uc5b4 \uac04 \uc0c1\ud638 \uc6b4\uc6a9\uc131 \ud45c\uc900\uc744 \uc7ac\uc815\uc758\ud558\ub294 \uc2dc\ubc1c\uc810\uc774 \ub420 \uac83\uc73c\ub85c \uc608\uc0c1\ub429\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>OCaml \ucef4\ud30c\uc77c\ub7ec\uc5d0 C++ \ubc31\uc5d4\ub4dc\uac00 \ub3c4\uc785\ub418\uba74\uc11c \uae30\uc874 C \uae30\ubc18 \ub7f0\ud0c0\uc784\uc758 \ud55c\uacc4\ub97c \ub118\uc5b4\uc120 \uc131\ub2a5\uacfc \ud638\ud658\uc131 \uac1c\uc120\uc774 \uac00\ub2a5\ud574\uc84c\ub2e4. \uc2a4\ud2f0\ube10 \ub3cc\ub780\uc758 \uc774\ubc88 \uc5c5\ub370\uc774\ud2b8\ub294 \ub2e8\uc21c\ud55c \uae30\ub2a5 \ucd94\uac00\ub97c \ub118\uc5b4 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4 \uc0dd\ud0dc\uacc4\uc758 \uc9c4\ud654\ub97c \ubcf4\uc5ec\uc8fc\ub294 \uc2e0\ud638\ud0c4\uc73c\ub85c \ud3c9\uac00\ubc1b\uace0 \uc788\ub2e4.<\/p>\n","protected":false},"author":11,"featured_media":8332,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[406],"tags":[3054,3005,3056,210,3055,2089],"class_list":["post-5797","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-406","tag-ocaml","tag-3005","tag-3056","tag-210","tag-3055","tag-c"],"featured_image_urls":{"full":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/04\/community-3441-a-new-c-back-end-for-ocamlc-1.png",1200,630,false],"thumbnail":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/04\/community-3441-a-new-c-back-end-for-ocamlc-1-150x150.png",150,150,true],"medium":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/04\/community-3441-a-new-c-back-end-for-ocamlc-1-300x158.png",300,158,true],"medium_large":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/04\/community-3441-a-new-c-back-end-for-ocamlc-1-768x403.png",640,336,true],"large":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/04\/community-3441-a-new-c-back-end-for-ocamlc-1-1024x538.png",640,336,true],"1536x1536":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/04\/community-3441-a-new-c-back-end-for-ocamlc-1.png",1200,630,false],"2048x2048":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/04\/community-3441-a-new-c-back-end-for-ocamlc-1.png",1200,630,false],"morenews-large":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/04\/community-3441-a-new-c-back-end-for-ocamlc-1-825x575.png",825,575,true],"morenews-medium":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/04\/community-3441-a-new-c-back-end-for-ocamlc-1-590x410.png",590,410,true]},"author_info":{"info":["\ubc30\uc18c\ub77c"]},"category_info":"<a href=\"https:\/\/jore2.com\/?cat=406\" rel=\"category\">\uc694\uc998\ub728\ub294\uc18c\uc2dd<\/a>","tag_info":"\uc694\uc998\ub728\ub294\uc18c\uc2dd","comment_count":"0","_links":{"self":[{"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/posts\/5797","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/jore2.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5797"}],"version-history":[{"count":4,"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/posts\/5797\/revisions"}],"predecessor-version":[{"id":10231,"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/posts\/5797\/revisions\/10231"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/media\/8332"}],"wp:attachment":[{"href":"https:\/\/jore2.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5797"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jore2.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5797"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jore2.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}