【问题标题】:C-Style Type Annotations vs Others [closed]C风格类型注释与其他[关闭]
【发布时间】:2013-10-13 13:09:56
【问题描述】:

因此,在我的编程经验中,我遇到了两种类型的静态类型语言类型注释:我称它们为“之前”和“之后”。 C-Style 语言使用格式

int i = 5

虽然大多数非 c 系列语言使用这种格式

var c:int = 5

前一类的例子是 C、C++、Java;后一类的例子是 Scala、Haxe、Go。

这在某些人看来可能是肤浅的,但我的问题是:每种风格的优点是什么?为什么要使用一个而不是另一个?为什么 C 一开始就采用这种风格?

【问题讨论】:

  • 你觉得哪一个简单?
  • C++:auto i = int { 5 }。从左到右的阅读顺序正在成为常态:-)
  • 没有一个比另一个有优势。这只是设计语言的问题,它只会修改编译器的不同部分。就是这样!

标签: c types static-typing type-annotation


【解决方案1】:

机器不在乎——只是设计某些语言的人觉得某些类型的语法比其他类型的语法更好或更容易阅读。现代编译器通常有几个处理阶段,并且在第一阶段之后通常会丢失几乎所有这些语法差异,该阶段解析文本并随后转换为编译器内部结构(AST - 抽象语法树)。

有一些历史优先级,例如“前缀”与“中缀”与“后缀”表示法(http://en.wikipedia.org/wiki/Polish_notationhttp://en.wikipedia.org/wiki/Infix_notationhttp://en.wikipedia.org/wiki/Reverse_Polish_notation)在计算机工程历史的上下文中用于边缘情况 - 例如“中缀”表示法通常比后缀/RPN 表示法更难解析,并且需要更多的内存,因此在资源真正稀缺的情况下(几 KiB 或更少的内存)不使用它,但大多数这些原因现在已经过时了,因为硬件是足够强大。

今天,在设计一种语言时,此类语法细节的选择会受到试图使该语言类似于其他一些流行语言或已经有程序员的语言组的影响,以避免制作“来自火星的语言” " 很少有人会使用。

tl;dr:取决于创建该语言的人以及他认为什么更具可读性或“正确的做法”)。

【讨论】:

    猜你喜欢
    • 2010-12-17
    • 2011-04-05
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 2021-05-13
    相关资源
    最近更新 更多