那些不使用分号的编程语言

大多数的编程语言都使用分号。大家最熟悉的,比如C语言和其衍生语言,使用分号作为语句的结束符号。但实际上这种使用分号的传统要更久远。ALGOL语言用分号作为程序语句的分隔符,它的大多数继承语言也是这么用的。在70年代,支持用分号做分隔符的人和用分号作为结束符的用户者之间发生过激烈的论战。另一种编程语言,OCaml,走的却是一条完全不同的道路,它把双分号(;;)作为一个标记——虽然它只是对解释器有意义

大多数编程语言都是在程序句子中使用分号,但有些语言却用它做其它用途,比如这种 F# 和 Matlab 这两种编程语言,它们在集合里使用分号来分隔元素,而Lisp语言用分号来做注释用。

有一个有趣的问题:哪些编程语言不使用分号?下面我们列了一个清单,虽然里面刨去了一些很小众或奇葩的语言,像Brainfuck这样知名度比较高的我们还是列了进去。

如果有漏掉的语言,请在评论里提醒我,谢谢。

清单

值得一提的事情

有些编程语言在语法上是有分号的使用,但实际使用中很少使用。这些语言通常是在分析编译过程中由某种“自动化”的机制将分号插入代码中。

  • Go语言使用自动插入,这是广泛使用的做法。然而,在一些语法结构中仍然使用分号,比如for循环。
  • Haskell 通常不属于分号,除非当遇到某些缩进布局时,是一种习惯用法。
  • 非文本编程语言,比如 ScratchPiet,显然不会使用 分号。
  • Prolog 在标准运行环境里预定义了一个用分号做首字符的操作符,但在语言语义里每个赋予分号任何实际的用途。
  • Scala 使用自动化插入分号做换行符,但有一种不算罕见的用法时,在单行上用分号分隔多个语句。
  • Transact-SQL (SQL Server 和 Sybase 使用的一种SQL方言) 支持使用分号,但只在少见的情形中使用。

不值得一提的事情

你也许感兴趣的:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注