Was genau sind Schnittstellen

Zuviel Werbung?
-> Hier kostenlos registrieren
Halbherziger Schritt

Ach so, also könnte ich bspw. sowas machen:

if material = "erbsen" then
interfacevar := fberbsen;
else
interfacevar := fbbohnen;
end if
.
.
.
.
interfacevar.zaehlen();

Die Problematik besteht hauptsächlich darin, dass die Erweiterungen in ST nicht konsequent sind oder dass man nicht in der Lage war, Erkenntnisse, die man in der Entwicklung der Programmier Sprachen längst gewonnen hat, anzuwenden.

Das liegt einmal daran, dass man auf der Sprache PASCAL seinerzeit aufgebaut hat und das ist heute weitestgehend totes Terrain. Andrerseits ist eine IEC NORM eine brutale Bremse, wenn man viele Länder und Interessen überzeugen muss, dass die Welt sich weiter entwickelt hat.

Ich denke, der einzige Laden, der bisher daraus die Konsequenzen gezogen hat, ist Beckhoff, der das moderne Visual Studio mit ins Kalkül übernommen hat.

Ich hoffe, dass die Gremien sich irgendwann einmal durchringen und eine neue moderne Sprache für die SPS Welt zuwege bringen. Die Hoffnung ist allerdings gering, was die nächsten Jahre angeht.

Meine Vorstellungen zur Sprache:

Deklarationen von Variablen im Code Teil und nicht separat.
Parameter Übergabe wie in C, dh. fbTest (x :=xx, y := yy); wird fbTest (xx, yy);
Interfaces wie in C++ oder C#,
Einfache Vererbung wie in C#,
Übernahme von Konstrukten wie private, protected, public.
Garbage Collection wie in .NET,

und viele Erleichterungen beim "Tippen" wie:

Abkehr von der unsäglichen umständlichen GROSS_SCHREIBUNG,
Einzeilige Kommentare mit // eingeleitet
Blockstruktur mit { und } und nicht mit THEN und END_IF und END_CASE etc.
Verwendung von = anstelle von := (Zuweisung in Bedingungen nicht erlaubt, somit eindeutig),

ich hätte da noch viele Ideen aber ...

Das obige Beispiel sähe dann so aus:

if (interfacevar = null) // noch nie verwendet ?
{
interfacevar = ZaehlerFactory (material); // gib mir mal den Erbsen Zaehler
}
 
@Robi:
nur so nebenbei (du hast ja im grunde Recht) :
OOP und dessen Umsetzung hat nichts mit der verwendeten Programmiersprache zu tun ... das geht genauso auch in Basic und Pascal u.u.u.

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bezüglich der OOP und auch der einen oder anderen Vereinfachung beim Programmieren gebe ich Robi auch recht.

Aber was die "Verinfachung" beim Tippen angeht bin ich anderer Meinung. Pascal wurde nicht ohne Grund für ST als Vorlage genommen. Die Vereinfachungen beim Tippen in C gehen leider zu Lasten beim Lesen des Codes IF...END_IF, FOR...END_FOR geben direkt die Info um was es sich handelt im Vergleich zu {...}.

Was nützt einem die Zeit die man beim Programmieren spart wenn man diese um ein vielfaches beim Lesen von teilweise fremden Code investieren muss? Die Großschreibung z.B. übernimmt bei CoDeSys eh meist die IDE und aus end_if wird automatisch END_IF, aus bool wird BOOL usw. usw.
 
Ob man eine Syntax in Pascal- oder C-Art bevorzugt, ist wohl eine Frage des persönlichen Geschmacks und davon, womit man gross geworden ist. Die SPS-Welt ist allerdings bis heute stark vom "Learning by doing" geprägt, und gerade da halte ich den erzieherischen Effekt einer gewissen formalen Strenge, wie ihn Pascal und ST mitbringen, nicht für verkehrt.
Dass die OOP-Implementierung von CoDeSys V3 noch das eine oder andere vermissen lässt, wie z. B. private/public-Deklarationen, ist aber doch ein ganz anderes Thema.
 
Hicht meine Meinung

Aber was die "Verinfachung" beim Tippen angeht bin ich anderer Meinung. Pascal wurde nicht ohne Grund für ST als Vorlage genommen. Die Vereinfachungen beim Tippen in C gehen leider zu Lasten beim Lesen des Codes IF...END_IF, FOR...END_FOR geben direkt die Info um was es sich handelt im Vergleich zu {...}.

Die Vereinfachung war seinerzeit hauptsächlich wohl der Compilertechnik und den schwachen Programmiergeräten geschuldet. Wenn ich bei vernünftigem Einrücken keine Übersicht über meine Blockstruktur habe, dann sind meine Funktionen zu lang oder sonstwas falsch.

Hinzu kommt wohl der akademische Ansatz von Pascal, bei dem die Basis Erfahrung in der Ausbildung von Studenten zu Grunde lag: Ich zitiere Wikipedia:

Die Programmiersprache Pascal (benannt nach dem Mathematiker Blaise Pascal) wurde von Niklaus Wirth an der ETH Zürich im Jahr 1972 als Lehrsprache eingeführt, um die strukturierte Programmierung zu lehren.

Eine schöne Diskussion, warum PASCAL für das reale Leben nicht die erste Wahl ist, liefert Kernigham (mit Ritchie "Vater" von C).

http://www.lysator.liu.se/c/bwk-on-pascal.html


Das Tippen von ST Code ist zumindest bei mir die Produktionsbremse, wenn ich z.B. meine Produktivität mit C# und Visual Studio vergleiche.

Und da ich nicht Student bin, kann mir das Wohlwollen eines Professors schnurz und piepe sein, wenn es mich bei der realen Arbeit ausbremst.


Was ... Die Großschreibung z.B. übernimmt bei CoDeSys eh meist die IDE und aus end_if wird automatisch END_IF, aus bool wird BOOL usw. usw.

Wo stellt man das ein? Bei mir geht das jedenfalls nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe mal kurz überflogen und nicht alle Links gelesen. Also, bitte nicht schimpfen.

So weit ich es mitbekommen habe, ist Pascal die Vorlage für ST oder SCL, weil, diese Sprache für den Menschen (sollte er der englischen Sprache mächtig sein) direkt umsetzbar ist.

Also, wenn das, dann das, wenn nicht, dann anders. Oder wenn dies, eins von den Dingen ist, dann, das.

Natürlich, liegt es immer an der Disziplin des Programmierers. Wenn ich ein Programm unlesbar machen möchte, dann, bekomme ich das hin. Egal, in welcher Sprache.

Gruß, Voxe

PS: Gibt es in Pascal ein "GOTO" ???? oder einen "JUMP" ????
 
Zuletzt bearbeitet:
Zurück
Oben