|
|
1
24
既然还没人提起,我想 ATS language 是一个很好的C候选人!特别是因为您喜欢Haskell,因此函数式编程具有强类型。请注意,ATS似乎是专门为系统编程和硬实时应用程序设计的,因为大多数ATS都可以在没有垃圾收集的情况下完成。
the shootout
你会发现它的性能基本上与C相当。我认为这是相当令人印象深刻的
|
|
|
2
22
|
|
|
3
15
另一个(真正的)更好的C的候选人是 The Rust Programming Language
区别生锈的是它有 safe manual memory management . (链接指向pc walton的博客,这是Rusts的主要贡献者之一,通常值得一读;)除此之外,这意味着它修复了 billion dollar mistake 空指针的数目。此处建议的许多其他语言都需要垃圾回收(GO)或垃圾收集在默认情况下打开,并且不提供超出C++提供的安全手动内存管理的设施(NimLod,D)。 虽然Rust有一颗命令式的心,但它确实从函数式语言中借用了很多好东西,例如sum类型或标记的unions。它还真正关心的是如何成为一种安全的、面向性能的语言。 [1] 现在有两种主要的指针类型 拥有的指针 (类似于STD::UNIQUIGPTR在C++中,但从Type检查器得到更好的支持) 托管指针 . 顾名思义,后者确实需要任务本地垃圾收集,但是 there are thoughts 将它们从语言中删除并仅作为库提供。
|
|
|
4
13
我不太了解Haskell,但如果你想要一个强大的类型系统,可以看看Ada。它被广泛应用于航空航天领域的嵌入式系统中。SIGADA moto是“我们信任的强类型”的,但是如果你必须使用Windows/Linux类型的设备驱动程序,它就没有多大用处了。 它不那么受欢迎的几个原因:
我认为事实是大多数程序员不喜欢强类型系统。 |
|
|
5
13
Nim (前Nimrod)有一个强大的类型系统,有概念和简单的泛型。它还具有广泛的宏编译时机制。它还具有简单的cfi和系统编程语言的所有底层特性,因此您可以编写 your own kernel ,例如。
目前它编译成C,所以你可以在GCC运行的任何地方使用它。如果您只想将Nim用作更好的C,那么可以通过
例如,要编译为AVR微控制器,可以使用:
Nim有一个软实时GC,您可以在其中指定它何时运行以及以微秒为单位的最大暂停时间。如果你真的负担不起GC,你可以完全禁用它(
另外,标记指针是一个计划好的特性,它可以确保您不会将内核级指针与用户级指针混合在一起。 |
|
|
6
9
D 可能会提供你想要的。它有一个非常丰富的类型系统,但是如果需要,您仍然可以控制内存布局。它有不受限制的指针,比如C。它的垃圾被收集,但是你不必使用垃圾收集器,如果你真的想的话,你可以编写你自己的内存管理代码。 然而,我不确定你能在多大程度上将类型丰富性与你想要使用的低级方法结合起来。 如果你需要的话就告诉我们。 |
|
|
7
7
我不知道是什么状态
我选择的“更好的C”语言是
OOC
. 它还年轻,但很有趣。它给你的OO没有
另一条评论提到了我忘记的艾达,但这提醒了我:有
|
|
|
8
5
你可能还想看看 BitC . 这是一种严肃的语言,不是一个玩具,但它还没有准备好,可能不会准备好,在时间上对你有任何用处。
|
|
|
9
0
克服这种态度。只使用C++。你可以从C++中的C开始,并逐渐地移动到更好的样式。 |
|
jlandercy · PostgreSQL参数化窗口大小 8 年前 |