【发布时间】:2015-11-17 06:50:51
【问题描述】:
我试图了解绑定(端口)到另一种语言的一般工作原理,但为了帮助澄清我的问题,我将使用名为 libsass 的项目的直接示例(Sass 编译器的 AC/C++ 实现)。
还有一个项目node-sass
这是 Node.js 与 libsass 的绑定。
我假设这意味着node-sass 是一个在nodejs 上运行的javascript 程序,nodejs 充当libsass C++ 系统级程序的代理转发指令。
我的问题是:nodejs 解释器如何与 libsass C++ 应用程序“对话”? - 它使用套接字吗?
子问题:如果node-sass 通过初始化可用于您自己的节点脚本的对象、函数等在节点环境中公开 API - 根据定义,这是“绑定”吗?
【问题讨论】:
-
一个“程序”将作为它自己的进程运行;一个库通常被加载到同一个进程中。
-
啊,我看到这个特定的项目是一个库 - 但通常我会认为通常被移植到的程序 - 是一个程序或服务本身吗?
-
这个问题几乎没有 C++。 “C/C++”是两种语言。当然,C++ 具有与 C 的语言绑定,但正如这个问题所示,Node.js 也是如此。而且我们也不去谈论“C/Node.js”。