回覆列表
  • 1 # Java進階架構師
    語言是什麼?

    無非就是一套自己的關鍵字,語法,語義....這玩意根本不存在所謂的互相呼叫的說法,需要呼叫(應該說是協作配合的)是業務邏輯。由於種種原因,有些業務功能我們需要用不同的語言編寫對應軟體,然後讓他們寫作。所以承載業務邏輯的工作單元,才是呼叫的主語。這個工作單元有時是程序,有時只是一個記憶體中的資料結構。

    當工作單元是程序時

    其實本質就是各種程序間通訊的方案。

    當工作單元是記憶體中資料結構時

    本質就是如何進行動態連結庫的呼叫

    當然,工作單元內部間的協作也是可以的

    比如說,執行程式碼直接解釋某些指令碼語言

    這麼說,懂得不?

  • 2 # 蟲蟲安全

    語言互相呼叫的問題,到程式執行層就是程序間通訊的問題,因為一個程式執行的時候,對os來說就是一個或者多個程序。

    linux間程序通訊的方法

    linux間程序通訊的方法主要有管道、命名管道、網路套介面socket以及unix system v ipc通訊機制訊息佇列、訊號量和共享記憶體。詳細原理就不多贅述。

    管道

    命名管道fifo

    訊息佇列

    windos下程序通訊的方法

    windows有自己一些特有的通訊機制,我們也列一下:

    剪貼簿、動態資料交換dde

    物件連結於嵌入ole

    動態連結庫dll、win32 rpc呼叫

    netbios函式和wm_copydata訊息

    語言嵌入

    除了以上方法外,有些語言還支援用一定的方法嵌入其他語言,比如在perl、python、ruby等教本語言中嵌入部分c語言以提高演算法效能。

    這類方法很多,我們簡單舉個python呼叫c的例子把。

    一個累加程式

    我們編譯為sum.so,然後透過python呼叫執行。

  • 中秋節和大豐收的關聯?
  • 描寫傳統節日的古詩句?