C'est en grande partie un choix arbitraire. Certaines langues ont fait d'autres choix. COBOL termine les instructions avec le .
caractère. FORTRAN, BASIC et Python terminent généralement les instructions avec des nouvelles lignes (avec une syntaxe spéciale pour les instructions multilignes). Et Lisp met ses déclarations entre parenthèses.
La raison principale ;
est si populaire en tant que séparateur / terminateur d'instruction, c'est que la plupart des langages populaires actuels sont basés sur ALGOL , qui utilisait cette convention.
au lieu d'un autre symbole?
Quel autre symbole pourriez-vous choisir?
Les caractères ASCII # $ @ [] ^ _ `{|} ~ n'étaient pas toujours présents dans les encodages de caractères précédents tels que ISO 646 .
Les caractères ()*+-/<=>
sont généralement utilisés en tant qu’opérateurs mathématiques et créeraient des ambiguïtés lorsqu’ils seraient utilisés comme terminateurs d’instruction.
product = a * b * // If '*' were a statement terminator,
c * d * // Are there two factors, or four?
Des problèmes similaires s'appliqueraient à '
et "
, qui sont généralement utilisés comme délimiteurs de chaîne; ,
, qui est généralement utilisé pour séparer les arguments de la fonction, et .
, qui est généralement utilisé comme un point décimal (ou comme un délimiteur dans des constructions similaires some_struct.some_field
).
Ça part !%&:;?
.
Choisir !
ou ?
ne causerait probablement pas de difficultés techniques, mais leur signification en anglais donnerait une mauvaise ambiance au programme.
print(x)? # Yes, you should.
# It's an IMPERATIVE language; stop questioning my commands.
print(x)! # OK! You don't have to shout!
Le &
serait un choix plus judicieux en tant que séparateur d'instructions (pas de terminateur), car
do_thing_a() &
do_thing_b()
peut être lu comme une commande permettant de faire la chose A , puis la chose B. Mais la plupart des langages avec un &
opérateur l’utilisent comme un AND logique ou binaire .
Le %
signe peut causer de la confusion dans des énoncés tels que interest_rate = 2.99%
(ce qui affecterait la variable à la 2.99
place de celle attendue 0.0299
). Bien sûr, la signification mathématique bien connue de %
n'a pas empêché C de l'utiliser comme opérateur restant.
Alors ça part :
et ;
.
:
est un choix judicieux, et est en effet utilisé comme séparateur d'instruction intra-ligne dans la plupart des dialectes de BASIC.
Mais ;
a la grammaire anglaise de son côté; il peut être utilisé pour séparer des clauses dans une phrase.