我正在研究OOP语言的编译器设计与传统命令式语言有何不同。 我希望一些话题可以带我上路,如果您愿意,可以向他们解释。
例如。 我发现类型表的构建方式有所不同。
我正在研究OOP语言的编译器设计与传统命令式语言有何不同。 我希望一些话题可以带我上路,如果您愿意,可以向他们解释。
例如。 我发现类型表的构建方式有所不同。
在探讨“编译器设计”之前,我认为需要解决“语言设计”这一更基本的问题。
语言应该是静态键入吗? 动态输入? 早/晚绑定或组合? 支持泛型? 推论是目标吗? 类型应该是封闭的还是开放的? 子类型应该如何工作? (是否应该完全允许隐式子类型?)协方差? 矛盾? 单继承? MI? 具有特质的SI? 显式成员选择? 原型(也就是说,甚至应该有“类”和“实例”的概念吗?)是否应使用主格或基于成员签名键入? 单派还是多派? 成员是作为头等公民或通过消息传递吗? 类型与类相同吗? “值”和“引用”类型之间有区别吗? 等等等等,而这只是一个很大的冰山的一角。