Es ist größtenteils eine willkürliche Wahl. Einige Sprachen haben andere Entscheidungen getroffen. COBOL beendet Anweisungen mit dem .
Zeichen. FORTRAN, BASIC und Python beenden Anweisungen im Allgemeinen mit Zeilenumbrüchen (mit spezieller Syntax für mehrzeilige Anweisungen). Und Lisp setzt seine Aussagen in Klammern.
Der Hauptgrund ;
, der als Trennzeichen / Abschlusszeichen für Anweisungen so beliebt ist, ist, dass die meisten der heute gängigen Sprachen auf ALGOL basieren , das diese Konvention verwendet.
anstelle eines anderen Symbols?
Welches andere Symbol könntest du wählen?
Die ASCII-Zeichen # $ @ [] ^ _ `{|} ~ waren in frühen Zeichenkodierungen wie ISO 646 nicht immer vorhanden .
Die Zeichen ()*+-/<=>
werden normalerweise als mathematische Operatoren verwendet und würden bei Verwendung als Anweisungsabschlusszeichen zu mehrdeutigen Syntaxanalysen führen.
product = a * b * // If '*' were a statement terminator,
c * d * // Are there two factors, or four?
Ähnliche Probleme würden bei '
und auftreten "
, die typischerweise als Zeichenkettenbegrenzer verwendet werden. ,
, das normalerweise zum Trennen von Funktionsargumenten verwendet wird, und .
das normalerweise als Dezimalpunkt (oder als Begrenzer in Konstrukten wie some_struct.some_field
) verwendet wird.
Das geht !%&:;?
.
Die Wahl von !
oder ?
würde wahrscheinlich keine technischen Schwierigkeiten verursachen, aber ihre englische Bedeutung würde dem Programm die falsche Stimmung verleihen.
print(x)? # Yes, you should.
# It's an IMPERATIVE language; stop questioning my commands.
print(x)! # OK! You don't have to shout!
Das &
wäre eine vernünftigere Wahl als Anweisungstrennzeichen (nicht als Abschlusszeichen), weil
do_thing_a() &
do_thing_b()
kann als Befehl gelesen werden, um etwas A und dann etwas B zu tun. Die meisten Sprachen mit einem &
Operator verwenden es jedoch als logisches oder bitweises UND .
Das %
Vorzeichen kann in Anweisungen wie verwirrend sein interest_rate = 2.99%
(die die Variable auf 2.99
anstelle der erwarteten setzen würden 0.0299
). Natürlich hat die bekannte mathematische Bedeutung von %
C nicht daran gehindert, sie als Restoperator zu verwenden.
Also das geht :
und ;
.
:
ist eine vernünftige Wahl und wird in der Tat in den meisten Dialekten von BASIC als Trennzeichen zwischen Zeilen verwendet.
Hat ;
aber die englische Grammatik auf seiner Seite; Es kann verwendet werden, um Klauseln innerhalb eines Satzes zu trennen.