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.99place 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.