gpt4 book ai didi

scala - 除了 Scala 之外,还有什么第二语言用于 LowLevel?

转载 作者:行者123 更新时间:2023-12-03 15:08:53 24 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

5年前关闭。




Improve this question




我对 Scala 非常满意,并且非常喜欢它 :)

但有时我真的想更“低级”,没有 JVM 并使用“酷”的 CPU 功能,如 SSE 等。

那么除了 Scala 之外,什么是好的第二语言呢?

它应该是:

  • 编译成机器码
  • 轻松使用 C 库
  • 可以在非常接近硬件的地方进行编程
  • 当我想要
  • 时,可以以非常高级的方式编程

    所以基本上我想要一个 Scala,我可以在我想要的时候放入内联汇编程序:) 我假设这样的语言不存在,但也许有一些接近。

    那么什么是一个不错的选择呢?
    C++?、D?、OCaml?

    我用 C++(15 年前)编程了一点,很少用 OCaml。在这两种情况下,我只解决了一些问题,并且从未非常“深入”地了解语言本身。

    最佳答案

    你几乎描述了D。

  • 编译成机器码:检查。有一个实验性的 .NET VM 实现,但所有三个主要实现(DMD、LDC、GDC)都直接编译为 native 代码,并且该语言旨在使 native 编译可行。
  • 轻松使用 C 库:D supports the C ABI and all C types .您所要做的几乎就是翻译头文件和 C 目标文件中的链接。这个can even be partially automated.
  • 可以在非常接近硬件的地方进行编程:检查。 D 是我所说的 C 的惯用超集。它不支持所有 C 语法,它的模块系统完全不同,静态数组是 D2 中的值类型,等等。但是,对于 C 语言中的任何构造来说(即不包括预处理器)在 D 或标准库中有一个等效的结构。对于任何一段 C 代码(不包括预处理器滥用),都有一个规范的 D 翻译,看起来大致相同,如果您使用相同的编译器后端,则应该生成相同的汇编语言指令。换句话说,每个 C 习语(不包括预处理器滥用)都可以直接翻译成 D。

    D的引用实现也支持inline ASM , 这样你就可以和 SSE 等搞混了。
  • 当我想以非常高级的方式编程时,可以:检查。 D 被设计为主要是垃圾收集语言(尽管如果您坚持并注意不要使用假定 GC 的库/运行时功能,您可以使用手动内存管理)。除此之外,高级编程主要是通过模板元编程实现的。在你逃跑之前,请了解 D 中的模板元编程与 C++ 相比有了很大的改进。在 D 与 C++ 中进行模板元编程就像在 C++ 与 C 中进行面向对象编程一样。在 D 中,模板元编程被设计到语言中,而在 C++ 中,只有足够的功能,您可以使用巧妙的 hackishness 使其几乎无法工作。 C++ 与 C 中的面向对象编程也是如此。std.algorithmstd.range Phobos 的模块是 D 的高级子集的好例子。
  • 关于scala - 除了 Scala 之外,还有什么第二语言用于 LowLevel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4060634/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com