Programming languages 为C或C+编写库代码+;使用其他编程语言更容易

Programming languages 为C或C+编写库代码+;使用其他编程语言更容易,programming-languages,Programming Languages,是否有任何编程语言可以实现以下功能 用C++或C.编写现代语言代码 编译到可与Visual C/C++或GCC一起使用的静态(非共享或动态)库 AFAIK、Golang是允许的,但它仅适用于与GCC共享的库。(注意:即使这可能是不正确的!如果我知道有什么错误,请告诉我。)Go语言(自1.8版起)具有插件功能。我不知道他们是否能帮助你 你真正的问题是关于C语言和其他语言的。特别是关于(和;查看哪个是C友好的)和可能的多线程 请注意,编程语言是一种规范(用某些文档编写,例如C)。C友好是某些实现(软

是否有任何编程语言可以实现以下功能

  • 用C++或C.</LI>编写现代语言代码
  • 编译到可与Visual C/C++或GCC一起使用的静态(非共享或动态)库
  • AFAIK、Golang是允许的,但它仅适用于与GCC共享的库。(注意:即使这可能是不正确的!如果我知道有什么错误,请告诉我。)

    Go语言(自1.8版起)具有插件功能。我不知道他们是否能帮助你

    你真正的问题是关于C语言和其他语言的。特别是关于(和;查看哪个是C友好的)和可能的多线程

    请注意,编程语言是一种规范(用某些文档编写,例如C)。C友好是某些实现(软件)的特性

    许多语言实现都很复杂。大多数实现(例如Ocaml和SBCL,都是编译器)都很好地记录了如何与C(通常称为“外部函数接口”)交互

    你可能会对它感兴趣

    您可能应该研究易于嵌入的脚本语言。特别是Guile、Lua和Python。但它们的实现通常是一个解释器(可能使用一些字节码技术)

    主要问题是内存管理。请注意,这对于C库也是一个问题,它们必须定义一些关于这一点的约定(在细节中,这些约定的样式差异很大,即使对于不同的C库也是如此)

    再看看

    读斯科特的书和他的书

    顺便说一句,以增量方式将大型C代码库迁移到其他语言(C++除外)是非常困难的。在一个新项目上启动另一种编程语言要容易得多

    (您的问题不清楚,并显示出一些重大误解;您需要确定需要遵守的整个程序属性,如内存管理)

    您需要一个能够创建对象文件的编译器;我认为有几种,其中一种是freepascal,如果它对您来说足够“现代”的话(Pascal在概念上与C非常相似,但IMHO的语法更好/更清晰)。对于C++,它也适用,但是不同的对象模型不允许(我认为)直接输出对象/类——它们可以在库内使用,但是访问它们必须通过经典函数来完成。Freepascal可以为许多系统编译,比如gcc,并且它有一组用于不同任务的库。Lazarus(用于freepascal)是一个完整的IDE,可以通过其统一的LCL轻松地使用不同的图形系统,为各种平台生成GUI应用程序