Oberon真的是“更好的Pascal”吗?[关闭]


12

阅读Niklaus Wirth时,您可能会注意到,尽管Pascal颇受欢迎,但他对Oberon(作为Pascal和Modula的“抛光”继承者)没有得到太多欢迎感到不高兴。我从未在Oberon中做任何事情,但是阅读Paerscal Developers的Oberon页面我确实不喜欢像Delphi / pascal开发人员那样的许多更改。

  • 强制保留字始终为大写
  • 使语言区分大小写
  • 摆脱枚举类型

您如何看待Oberon,从您的角度来看,这真的是“更好的Pascal”吗?


3
Oberon似乎在编程中遥遥呼应了Ada / Pascal时代。它可能比Wirth最初的Pascal语言稍好,但显然不如Turbo Pascal / Delphi。
mojuba

2
@mojuba,这似乎是我的答案……
glenatron

这不是已经关闭一次了吗?编辑历史记录发生了什么?
罗伯特·哈维

在大学期间,我对Oberon有一个短暂的迷恋。我希望我对此有更多的了解并发表意见。
巴里·布朗

1
要求使用大写保留字对我来说是个难题。我发现小写字母更容易阅读。
GrandmasterB 2010年

Answers:


8

是的,我称Oberon为更好的Pascal。与Oberon一起,Wirth教授通过类型扩展和过程变量进入了面向对象编程的核心。我觉得Oberon是比Pascal更小的语言并且功能强大得多,这很优雅。

Oberon 2通过将方法绑定到记录使语言更进一步。

我不喜欢大写保留字。我发现语法有了改进,消除了许多开始和结尾。

Oberon被用来编写Project Oberon:操作系统和编译器的设计中描述的非常有趣的操作系统。


同意,Oberon更好。Oberon的问题是来不及了。在Fortran,Basic,Pascal和C方面,还有许多其他方面有所改进,因此Oberon拥有强大的竞争对手。然后,该语言只是解决方案的一部分。“最好的”语言具有良好的库或基础结构。Javascript之所以出色,是因为它与Web应用程序息息相关。然后,在JS的基础上,react更大。谁在乎语言的简单性?我们希望像React组件这样的简单对象来构建Web应用程序。
罗兰

6

在各种方面,它是好是坏:

有垃圾收集,以及用于模块化和面向对象编程的设施,这是很好的。这是一种相对较小的语言;易于解析和实施。

缺少枚举是一种痛苦(实际上,在我们使用的扩展的Oberon方言中,我们将其重新添加了)。

相对于更现代的语言,其极简主义有点残酷,并且将字符串视为任何语言中的字符数组都是可怕的。

当然,Pascal也已经发展了很多,例如,参见Component Pascal。


如何在扩展的Oberon方言中对枚举类型键入扩展名?我问的原因:维尔斯教授说,他看不到这样做的好方法,这就是为什么他从语言中删除了枚举类型。
约翰·R·斯特罗姆

2
实际上,我相信,尽管它的名字叫Component Pascal,它是Oberon的继承者,而不是Pascal的继承人(当然是间接的除外)。它类似于Algol-X(从未实现)-> Algol-W-> Pascal-> Modula(从未实现)-> Modula-2-> Oberon->(Oberon的某些修订版)->组件Pascal。
约尔格W¯¯米塔格

2
沃思是一位纯粹主义者;他认为最好不要因为扩展性和正交性而丢失枚举的类型安全性。我们编写了许多受益于枚举类型检查的代码,否则,偶然的值冲突会引入细微的错误。简而言之,由于我们既控制着整个Oberon代码库,也控制着编译器,所以我们在枚举上不进行类型扩展,以防止出现一类极度恼人的程序错误。
grrussel
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.