Ini sebagian besar pilihan yang sewenang-wenang. Beberapa bahasa telah membuat pilihan lain. COBOL mengakhiri pernyataan dengan .
karakter tersebut. FORTRAN, BASIC, dan Python umumnya mengakhiri pernyataan dengan baris baru (dengan sintaks khusus untuk pernyataan multi-baris). Dan Lisp mengurung pernyataannya dengan tanda kurung.
Alasan utama ;
sangat populer sebagai pemisah pernyataan / terminator adalah bahwa sebagian besar bahasa populer saat ini didasarkan pada ALGOL , yang menggunakan konvensi itu.
bukannya simbol yang berbeda?
Simbol apa lagi yang bisa Anda pilih?
Karakter ASCII # $ @ [] ^ _ `{|} ~ tidak selalu ada dalam pengkodean karakter awal seperti ISO 646 .
Karakter ()*+-/<=>
biasanya digunakan sebagai operator matematika dan akan membuat ambiguitas penguraian jika digunakan sebagai terminator pernyataan.
product = a * b * // If '*' were a statement terminator,
c * d * // Are there two factors, or four?
Masalah serupa akan berlaku untuk '
dan "
, yang biasanya digunakan sebagai pembatas string; ,
, yang biasanya digunakan untuk memisahkan argumen fungsi, dan .
, yang biasanya digunakan sebagai titik desimal (atau sebagai pembatas dalam konstruksi seperti some_struct.some_field
).
Daun itu !%&:;?
.
Memilih !
atau ?
mungkin tidak akan menyebabkan kesulitan teknis, tetapi makna bahasa Inggris mereka akan memberikan suasana yang salah untuk program ini.
print(x)? # Yes, you should.
# It's an IMPERATIVE language; stop questioning my commands.
print(x)! # OK! You don't have to shout!
Itu &
akan menjadi pilihan yang lebih masuk akal sebagai pemisah pernyataan (bukan terminator), karena
do_thing_a() &
do_thing_b()
dapat dibaca sebagai perintah untuk melakukan hal A dan kemudian melakukan hal B. Tetapi sebagian besar bahasa dengan &
operator menggunakannya sebagai logika atau bitwise DAN sebagai gantinya.
The %
tanda dapat menyebabkan kebingungan dalam pernyataan seperti interest_rate = 2.99%
(yang akan mengatur variabel 2.99
bukan yang diharapkan 0.0299
). Tentu saja, makna matematika yang terkenal dari %
tidak menghentikan C dari menggunakannya sebagai operator sisanya.
Sehingga pergi :
dan ;
.
:
adalah pilihan yang masuk akal, dan memang digunakan sebagai pemisah pernyataan intra-line di sebagian besar dialek BASIC.
Tetapi ;
memiliki tata bahasa Inggris di sisinya; dapat digunakan untuk memisahkan klausa dalam sebuah kalimat.