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.
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Ö
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.
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).
Danke schön, ich werde mich umsehen.
Christel
Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.
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.
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.
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
...
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!
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.