那些不使用分号的编程语言
大多数的编程语言都使用分号。大家最熟悉的,比如C语言和其衍生语言,使用分号作为语句的结束符号。但实际上这种使用分号的传统要更久远。ALGOL语言用分号作为程序语句的分隔符,它的大多数继承语言也是这么用的。在70年代,支持用分号做分隔符的人和用分号作为结束符的用户者之间发生过激烈的论战。另一种编程语言,OCaml,走的却是一条完全不同的道路,它把双分号(;;
)作为一个标记——虽然它只是对解释器有意义。
大多数编程语言都是在程序句子中使用分号,但有些语言却用它做其它用途,比如这种 F# 和 Matlab 这两种编程语言,它们在集合里使用分号来分隔元素,而Lisp语言用分号来做注释用。
有一个有趣的问题:哪些编程语言不使用分号?下面我们列了一个清单,虽然里面刨去了一些很小众或奇葩的语言,像Brainfuck这样知名度比较高的我们还是列了进去。
清单
- BASIC (有些特殊写法可能例外)
- Brainfuck
- COBOL (它把分号当成空格)
- E
- Elm
- FORTRAN (老版本)
- Futhark
- MoonScript
- Plasma
- RPG II
- TeX (有些宏可能给分号做特殊定义)
- Vimscript
值得一提的事情
有些编程语言在语法上是有分号的使用,但实际使用中很少使用。这些语言通常是在分析编译过程中由某种“自动化”的机制将分号插入代码中。
- Go语言使用自动插入,这是广泛使用的做法。然而,在一些语法结构中仍然使用分号,比如
for
循环。 - Haskell 通常不属于分号,除非当遇到某些缩进布局时,是一种习惯用法。
- 非文本编程语言,比如 Scratch 或 Piet,显然不会使用 分号。
- Prolog 在标准运行环境里预定义了一个用分号做首字符的操作符,但在语言语义里每个赋予分号任何实际的用途。
- Scala 使用自动化插入分号做换行符,但有一种不算罕见的用法时,在单行上用分号分隔多个语句。
- Transact-SQL (SQL Server 和 Sybase 使用的一种SQL方言) 支持使用分号,但只在少见的情形中使用。
不值得一提的事情
- Javascript 也是自动插入分号(跟 Go语言一样),这种用法很有争议。
你也许感兴趣的:
- 【程序员搞笑图片】数据类型简明指导
- 33 种编程语言的 UUIDv7 实现
- 【外评】Rust,你错了
- 【外评】为什么人们对 Go 1.23 的迭代器设计感到愤怒?
- 华为自研编程语言“仓颉”来了!鸿蒙应用开发新语言,性能优于 Java、Go、Swift
- 【外评】JavaScript 变得很好
- 【外评】华为发布自己的编程语言 “仓颉”
- VBScript 废弃:时间表和后续步骤
- 【外评】BASIC 编程语言 60 岁了
- 【外评】为什么 ALGOL 是一种重要的编程语言?
你对本文的反应是: