Laden...

Compilerbau - was gibt es schon für Tools? Compiler für Programmiersprache ST (Strukturierter Text)

Erstellt von Christel vor 13 Jahren Letzter Beitrag vor 13 Jahren 4.735 Views
C
Christel Themenstarter:in
448 Beiträge seit 2007
vor 13 Jahren
Compilerbau - was gibt es schon für Tools? Compiler für Programmiersprache ST (Strukturierter Text)

Liebes Forum,
meine Firma hat an mich die Aufgabe herangetragen, einen sehr speziellen Compiler zu programmieren. Die Programmiersprache, in der ich programmiere, soll Visual C# sein.

Im Ergebnis soll der Compiler Quellen der Programmiersprache ST (Strukturierter Text, wird in der SPS angewandt) übersetzen können und daraus eine Datei erzeugen, die lediglichlich aus einer Reihe von Wertzuweisungen besteht, die wiederum einen sehr speziellen Ablauf in einerm Servoverstärker beschreiben.

OK, dass ich bei der Erzeugung der Zieldatei aufgrund deren einzigartiger Syntax keine Hilfe finden werde, ist mir klar. Jetzt hoffe ich aber, dass es wenigstens Bausteine gibt, die mir die Interpretation der ST Sprache übernehmen oder diese wenigstens erleichtern (beispielsweise Syntaxprüfung). Habe ich eine Chance, so etwas zu finden? Alles selbst in C# zu programmieren scheint mir sehr kompliziert ... und hoffentlich auch überflüssig.

Vielen Dank im Voraus,
Christel

Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.

2.891 Beiträge seit 2004
vor 13 Jahren

Hm, relativ einfach wäre es, wenn du eine Grammatik von ST hast. Die kannst du dann in einen Parsergenerator (z.B. ANTLR oder CoCo/R) werfen und dir einen Parser für ST in (z.B.) C# generieren lassen. Damit kannst du dann einfach die ST-Quellen parsen lassen und kannst dann den entstandenen Syntaxbaum weiterverarbeiten.

Du hast noch beiläufig "die Interpretation der ST-Sprache" erwähnt. Meinst du das im Sinne von "das Programm ausführen" oder einfach nur "Syntax verstehen".

Gruß,
dN!3Ö

C
Christel Themenstarter:in
448 Beiträge seit 2007
vor 13 Jahren

Hi dN!3L,
ich danke Dir für Deine Antwort.

Die beiden von Dir genannten Tools klingen interessant und sind genau das, was ich suche. Sag mal, gibt es solche Tools eigentlich auch als Freeware?

Auf Deine Frage: unter Interpretation der ST-Sprache" erwähne ich lediglich "Syntax verstehen".

Gruß, Christel

Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.

656 Beiträge seit 2008
vor 13 Jahren

ANTLR ist frei erhältlich, wenn mich nicht alles täuscht.
Eine weitere Alternative, die dN!3L nicht genannt hat, ist M von Microsoft (Teil des Oslo SDK) - funktioniert aber ähnlich (bisschen andere Syntax in der DSL).

C
Christel Themenstarter:in
448 Beiträge seit 2007
vor 13 Jahren

Danke schön, ich werde mich umsehen.
Christel

Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.

2.891 Beiträge seit 2004
vor 13 Jahren

Sag mal, gibt es solche Tools eigentlich auch als Freeware?

Was genau verstehst du unter "Freeware"? ANTLR steht unter BSD-Lizenz, CoCo/R unter GPL.

C
Christel Themenstarter:in
448 Beiträge seit 2007
vor 13 Jahren

Unter Freeware verstehe ich, dass ich das Tool downloaden kann, ohne dafür bezahlen zu müssen. Christel

Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.

2.891 Beiträge seit 2004
vor 13 Jahren

Unter Freeware verstehe ich, dass ich das Tool downloaden kann, ohne dafür bezahlen zu müssen. Christel

Geht ja mit ANTLR und CoCo/R.

Zum Thema "was gibt es schon":

Zitat von: Integration of the ST Language in a Model-Based Engineering Environment for Control Systems – An Approach for Compiler Implementation
To assist the implementation of the ST Parser we used ANTLR. [...]
Since the IEC 61131-3 defines a context free grammar for ST language, to
build the ST Parser it was necessary to adapt the standard grammar to fit the ANTLR
syntax.

Gruß,
dN!3L

V
162 Beiträge seit 2010
vor 13 Jahren

...
Eine weitere Alternative, ... ist M von Microsoft (Teil des Oslo SDK) ....

Oslo wird von Microsoft nicht weiter getrieben.

Das CoCo/R sieht doch gut aus.
Viele Beispiele auch in C# da sollte doch was gehen.

Das Leben ist schön!

C
Christel Themenstarter:in
448 Beiträge seit 2007
vor 13 Jahren

Das CoCo/R sieht doch gut aus.
Viele Beispiele auch in C# da sollte doch was gehen.

Ja, find ich auch.
Ich werde mich mal reinarbeiten.
Gruß, Christel

Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.