Warum benutzen Informatiker besondere Sprachen, wenn sie Problemlösungen beschreiben, die von einem Computer ausgeführt werden sollen?
Wodurch zeichnen sich diese Sprachen aus?
Danke im voraus :)
5 Antworten
Sie sind formal und ihre Bedeutung (Semantik) ist klar definiert.
"Mach diesen Knopf hier bunt, so dass er etwas heller ist als das Kleid von meiner Tante, das sie auf der Hochzeit vom Karl getragen hat!"
Ist halt nicht so klar definiert wie
button-color: 0x3f3fef
zusammen mit den relevanten Standards.
Der Grund ist schlicht und einfach:
Auch der Computer muss die Sprache verstehen, in der man ihm Algorithmen (d.h. Handlungsanweisungen) beschreibt.
Zu diesem Zweck muss die Sprache nach Syntax und Semantik formal definiert sein (da man sie ihm ja stets auch erst mal beizubringen hat). Sie ihm beizubringen bedeutet, für sie - in einer durch ihn schon beherrschten Sprache - einen Compiler oder Interpreter zu schreiben.
Naja, ohne Programmiersprache kein Programm 🤣 Leider kann man nicht einfach sagen "Mach mal nen Liferando Klon" und dann ist es so, oder "Beheb doch mal diesen Fehler".
Ein Computer rechnet mit 1 und 0 und um ihn direkt anzusprechen muss man ihm sagen, was er mit diesen 1 und 0 machen soll. Das geht, nennt sich Assembler. Das ist aber sehr komplex und oft wenig intuitiv.
Also schafft man eine Abstraktionsschicht. Eine Software, der Du sagst (programmierst) was sie tun soll und die dann ihrerseits das in Maschinencode umwandelt.
Programmiersprachen sind also eine Zwischenschicht. Und da es unterschiedliche herangehensweisen gibt, wie man Probleme in Software beschreibt, gibt es auch unterschiedliche Sprachen - das ist im Grunde wie mit Deutsch und Englisch.
(Stark vereinfacht!)
Weil es viel leichter verständlich ist in Programmiersprachen Probleme zu formulieren als mit Binärzahlen.