Re: Was ist Software? - Schweizer Linux-User gegen Software-Pate…

softwarermuliert werden. Dies kann die natürliche Sprache sein
>
> Nein. Die ist eben nicht eindeutig und widerspruchsfrei. Sie kann
> es
> sein, muss es aber nicht. Gilt insbesondere bei groesseren
> Algorithmen.
Da steht ja auch “kann”. ;-) Die wesentliche Eigenschaft einer Algorithmus-Sprache ist ihre strenge
Definiertheit. Dafür gibt es glaube ich den Begriff “deterministisch”.
Gleiche Eingabe erzeugt gleiche Ausgabe. Genau das ist das Problem bei
Zufallsgeneratoren…
Der verbal formulierte Algorithmus “Summe zweier Zahlen” ist so nicht
lauffähig. Die Algorithmus-Sprache an sich muß erst mal definiert
werden:
Was ist eine Zahl?
Was ist eine Summe, wie berechnet sie sich?
Wieviel ist zwei?
Ein formulierter Algorithmus (Software) ist immer für einen
Algorithmus-Anwender geschrieben. Der Anwender muß die Regeln
implementiert haben, und der Algorithmus muss diesen Regeln
entsprechend formuliert sein. Ein C-Programm läuft nicht in einem
Basic-Interpreter.
Das beste Beispiel dafür ist die Mathematik, in der alles und jedes
exakt definiert und mit bereits bewiesenen Aussagen ebenfalls bewiesen
wird. Was nicht beweisbar ist, weil es ganz vorne am Anfang der
Beweiskette steht, nimmt man als gegeben hin und nennt es “Axiom”.
Aber man stelle sich einen Prozessor vor, der seine Maschinenbefehle je
nach Tageszeit und Mondphase mal so und mal so ausführt.
Zudem reicht es ja aus, wenn der algorithmisch verwendete Teil der
Sprache diese exakten Eigenschaften hat. Der Prozessor darf durchaus
solche nicht-deterministischen Befehle haben, oder Befehle, die etwas
anderes machen, als es ihrer Definition entspricht, wenn sie in einem
Programm niemals benutzt werden. Peinlich wird’s erst, wenn das doch
passiert (Pentium FDIV).

Leave a Reply

You must be logged in to post a comment.