是否存在允许对对象进行低级访问的面向对象语言?

Is there an object-oriented language that allows low-level access to objects?

我在这个问题中寻找的语言应该具有以下特征:

斜体的三点发生在幕后的 C++ 中,试图干扰它们会导致未定义的行为,尽管在常见的实现中它们非常简单。还有一些人反对它的原则。当然,这是有充分理由的,但总而言之,这只是一种设计选择。为什么我对一种不会在设计上掩盖它们的语言感兴趣:

当然,可以只使用 C,但我的观点是 语言 实际上是面向对象的,默认情况下会完成所有 "magic"除非实际上需要额外的灵活性,否则对用户来说是正确的。用户有责任处理因玩得不好而造成的情况。

是否存在任何此类语言(可能晦涩难懂)?如果不是,最接近的匹配项是什么?它们满足哪些条件?

大多数现代语言都刻意避免赋予程序员过多的底层权力,因为这往往会创建昂贵且难以维护的代码。

话虽这么说,虽然我不知道有什么语言可以精确匹配您正在寻找的东西,但我能想到的最接近的是一种古老但非常强大的语言,叫做 Forth。虽然它的原始设计不包括面向对象的结构,但已经对语言进行了扩展以支持这一点。与大多数语言不同,Forth 可以毫无问题地赋予程序员汇编语言级别的能力,让他们自由地混合高级开发概念,例如函数式编程和面向对象的继承。但是,它与 C 语言家族有很大不同,因此除非您已经熟悉它,否则在您能够有效地使用它之前需要进行一些学习。

Forth 是一种如此强大的语言,您可以从字面上在语言本身中设计自己的面向对象机制,设计任何继承、封装或您想要拥有的任何其他面向对象的原则。您也可以根据需要将其设置为自动或手动,例如,选择是否自动调用超级 class 构造函数。

这可能对您帮助不大,因为您可能正在寻找更多类似 C 的语言。我唯一能想到的另一件事是高级汇编语言,可能是一种类似于 nasm 的语言,在预处理器中内置了大量语法糖。