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