(09.01.2016 23:56 )Lucki schrieb: Die Funktion SAR gibt es in Labview nicht.
Es anders zu sehen, bringt viele Vorteile.
LabVIEW fällt unter "deklaratives Programmierparadigma", also nicht unter "imperatives Programmierparadigma". Imperativ heißt, die Programmiersprache kennt auf Programmierer-Ebene den Befehl SAR (zumindest manche).
Deklarativ heißt in diesem Falle nichts anders als "beschreiben": Der Programmierer platziert (irgendwohin) Elemente (ich will mal noch nicht sagen "Objekte"), die vom Menschen aus gesehen intuitiv sind, z.B. die Addition. Dann schließt der Mensch an die beiden Eingänge im Allgemeinen "Typ-identische", oft auch nur "Typ-verträgliche"(!) "Instanzen" an: Der Typ wäre z.B. Obst, Instanzen wären dann Birne und Apfel. Das Ergebnis wäre Marmelade. Man kann an Addition natürlich auch die Typen Integer, Float, Array of Zahl, etc. anschließen (warum man nicht Strings "addieren" kann, ist mir deklarativ gesehen noch immer ein Rätsel) Kaum einer wird Typ-unverträgliche Instanzen anschließen: Apfel und Fußabstreifer. Das Ergebnis wäre ein gebrochenes Herz, pardon Pfeil.
Die Addition, die ich ja nur wegen des guten Beispiels der Marmelade gewählt habe, ersetzen wir nun durch die 2er-Potenz-Multiplikation.
Das Problem, das LV jetzt hat, ist: Wie bekommt ich - eigentlich mein Kompiler - das "deklarative Format" in ein "imperatives Format", das der Prozessor versteht, der letztendlich die 2er-Potenz-Multiplikation durchführen soll. Der Kompiler wird also die Eingänge begutachten (vergleiche
http://www.ni.com/tutorial/11472/de/, siehe
http://www.labviewforum.de/Thread-Speich...n-LabView) und sich letztendlich überlegen, mit welchem Prozessorbefehl oder mit welcher Prozessorbefehl-Sequenz er dieses "Element" am besten abbilden kann. Der Kompiler wird sich also für einen SAR entscheiden genau in dem Falle, wenn x eine Ganzzahl ist.
Man kann eigentlich gar nicht sagen, LV kennt den Prozessorbefehl SAR oder kennt ihn nicht. Die Programmierer-Ebene, auf der deklariert wird, ist komplett abstrahiert von der imperativen Ausführungsebene.