NOP 0 im strukturierten Text

Zuviel Werbung?
-> Hier kostenlos registrieren
Was der Threadersteller möchte lässt sich, meiner Meinung nach, in SCL am einfachsten mit "RETURN" erreichen. Der Baustein wird direkt beendet (wie "BEA" in AWL), und man benötigt keinen Sprung.

Grüße
Dominik
 
Mit GOTO hinter das Ende einer Schleife zu springen, um sie einfach und elegant zu verlassen, ist sicher keine Sünde.

Doch da es schon einmal aussagt, das man sich über den Abbruch und deren Kriterien keine Gedanken gemacht hat.
Eine Schleif über GOTO (in C, Pascal usw.) zu verlassen stellt ein Sünde dar ;) (schreibt glaube ich Petzold in all seinen Büchern *ROFL*)

Alleine die Bedingung um das GOTO auszuführen oder dort hin zu kommen, ist schon mal ein Kritterium was man für den Schleifen Abbruch ansetzen kann!

Somit macht es das ganze leserlicher ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Doch da es schon einmal aussagt, das man sich über den Abbruch und deren Kriterien keine Gedanken gemacht hat.
Eine Schleif über GOTO (in C, Pascal usw.) zu verlassen stellt ein Sünde dar ;) (schreibt glaube ich Petzold in all seinen Büchern *ROFL*)

Alleine die Bedingung um das GOTO auszuführen oder dort hin zu kommen, ist schon mal ein Kritterium was man für den Schleifen Abbruch ansetzen kann!

Somit macht es das ganze leserlicher ;)

Sicherlich sollte man auf Sprünge innerhalb einer Schleife möglichst verzichten. Aber die Leserlichkeit des Codes ist ja nicht immer das einzige Kriterium für eine Anwendung. Manchmal kommt es auch auf die Performance an und dann kann es durchaus sinnvoll sein aus einer Schleife zuspringen.

Ein generellen Verzicht halte ich für schwachsinn.
 
Doch da es schon einmal aussagt, das man sich über den Abbruch und deren Kriterien keine Gedanken gemacht hat.
Ich mache mir schon Gedanken, bevor ich springe, denn ich versuche, das möglichst zu vermeiden.

Eine Schleif über GOTO (in C, Pascal usw.) zu verlassen stellt ein Sünde dar ;) (schreibt glaube ich Petzold in all seinen Büchern *ROFL*)
Wer ist Petzold? Ein religiöser Fanatiker?;)

Alleine die Bedingung um das GOTO auszuführen oder dort hin zu kommen, ist schon mal ein Kritterium was man für den Schleifen Abbruch ansetzen kann!
Es geht ja nicht darum, einen Schleifenabbruch vorwegzunehmen, der genausogut bei der normalen Überprüfung der Schleifenbedingung am Anfang bzw. Ende der Schleife stattfinden kann. Sondern darum, dass eine Abbruchbedingung wahr wird und gleichzeitig die weitere Bearbeitung des Schleifencodes verbietet. Da kann man sich, je nachdem wie komplex der Schleifencode ohnehin schon ist, überlegen, ob man ein weiteres IF THEN einfügt oder lieber springt.
 
Wir sind doch alle kleine Sünderlein, war immer so, war immer so... :p

Wenn jemand schreibt es geht ohne Sprung beim Programmieren, dann hat er vermutlich noch nicht echt programmiert.
Viel schlimmer und oft tödlicher für die Lesbarkeit und Funktion des Programmes sind in meinen Augen sogenannte "Sprungleisten".
Aber das ist ein anderes Thema, denke ich :confused:


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Maschinencode

Aber die Leserlichkeit des Codes ist ja nicht immer das einzige Kriterium für eine Anwendung. Manchmal kommt es auch auf die Performance an und dann kann es durchaus sinnvoll sein aus einer Schleife zuspringen.

Ein generellen Verzicht halte ich für schwachsinn.

Was die Performance betrifft, da irrt der Schreiber. Wenn ich in ST "well bahaved" programmiere, wird es nicht schlechter von der Performance!

Aus dem gut strukturierten Programm macht der Compiler optimierten Maschinen Code und der ist in der Regel ausgefuchster als alles, was der Anwendungs Programmierer so zuwege bringt.
 
Aus dem gut strukturierten Programm macht der Compiler optimierten Maschinen Code und der ist in der Regel ausgefuchster als alles, was der Anwendungs Programmierer so zuwege bringt.

Was zu beweisen wäre.
Solch einen hyperintelligenten Compiler gibt es nicht.

Noch ist der Programmierer für das Programm und der Performance verantwortlich.


bike
 
... Wenn jemand schreibt es geht ohne Sprung beim Programmieren, dann hat er vermutlich noch nicht echt programmiert.
Viel schlimmer und oft tödlicher für die Lesbarkeit und Funktion des Programmes sind in meinen Augen sogenannte "Sprungleisten".
Aber das ist ein anderes Thema, denke ich :confused:
bike

[FONT=Arial, sans-serif]Hallo Bike,[/FONT]

[FONT=Arial, sans-serif]Die „sogenannte Sprungleiste“ ist eine Möglichkeit in AWL etwas ähnliches wie eine CASE- Anweisung umzusetzen. Ich bin auch immer verunsichert, wenn mir ein Befehl unbekannt ist...[/FONT] :rolleyes:
Noch ist der Programmierer für das Programm und der Performance verantwortlich.
[FONT=Arial, sans-serif]Für das Programm ja, aber welchen Einfluss hast du auf die Performance?[/FONT]
[FONT=Arial, sans-serif]Mit einer Gurken-CPU bist du gearscht, auch wenn du noch ein paar ms rausleiern kannst. [/FONT]
[FONT=Arial, sans-serif]Wenn du ein vernünftiges Gerät zur Verfügung hast, kommt es auf etwas umständlichen oder nicht optimalen Code nicht an. Wichtiger fände ich, dass das Programm übersichtlich und gut zu warten ist.[/FONT]
[FONT=Arial, sans-serif]Na ja, zum Glück gibt es auch noch hyperintelligente Programmierer. Dann kann nichts mehr schiefgehen...[/FONT]

[FONT=Arial, sans-serif]LG Cassandra[/FONT]
 
Zuviel Werbung?
-> Hier kostenlos registrieren
[FONT=Arial, sans-serif]Die „sogenannte Sprungleiste“ ist eine Möglichkeit in AWL etwas ähnliches wie eine CASE- Anweisung umzusetzen. Ich bin auch immer verunsichert, wenn mir ein Befehl unbekannt ist...[/FONT] :rolleyes:

Bin ich verunsichert?
Nicht wirklich, denn ich weiß was eine Sprungleiste auch was Case ist und nutze es wenn es sinnvoll ist.
Aber wenn um einen Motor von rechts nach links mit verschieden Geschwindigkeiten zu fahren zwei verschachtelte Sprungleisten programmiert werden ich krieg ich das kotzen.

[FONT=Arial, sans-serif]Für das Programm ja, aber welchen Einfluss hast du auf die Performance?[/FONT]
[FONT=Arial, sans-serif]Mit einer Gurken-CPU bist du gearscht, auch wenn du noch ein paar ms rausleiern kannst. [/FONT]
[FONT=Arial, sans-serif]Wenn du ein vernünftiges Gerät zur Verfügung hast, kommt es auf etwas umständlichen oder nicht optimalen Code nicht an. Wichtiger fände ich, dass das Programm übersichtlich und gut zu warten ist.[/FONT]

Durch den Programmcode kann man die ms finden, die oftmals den Unterschied in der Perfomance zum Mitbewerber ausmachen.
Was hilft mir ein sauber strukturiertes, gut wartbares Programm, wenn mein Werkzeugwechsler auf einmal 500ms langsamer ist?
Das bringt mir nur Probleme, daher muss ab und an auch die Lesebarkeit hinten anstehen.


bike
 
Hallo,
ich glaube nicht, dass das Herauskitzeln von Mikrosekunden heute noch wirklich etwas bringt. Ich würde da ganz grundsätzlich den lesbararen Code immer über 2 oder 3 Anweisungen weniger stellen.

Und was den Compiler angeht:
Da habe ich schon solche und solche Überraschungen erlebt - hier speziell bei SCL. Der Compiler abeitet aber in jedem Fall nach den Vorgaben dessen, der ihn programmiert hat - er hat keine eigene Intelligenz und auch nicht wirklich die Fähigkeit der Code-Optimierung.

Gruß
Larry
 
Hallo,
ich glaube nicht, dass das Herauskitzeln von Mikrosekunden heute noch wirklich etwas bringt. Ich würde da ganz grundsätzlich den lesbararen Code immer über 2 oder 3 Anweisungen weniger stellen.

Du hast Recht, wenn es nicht um zeitkritische Anwendungen geht und man nicht die Möglichkeit hat einfach die CPU zu tauschen.

Es ist wie schon geschrieben habe abhängig von der Aufgabe des Programms.


bike
 
Zurück
Oben