Hi, ich spiele mit dem Gedanken einen eigenen kleinen Compiler zu schreiben um ein paar Sachen auszuprobieren. Dafür könnte ich, wenn ich keine eigene Benutzeroberfläche entwickeln will, als IDE einfach einen Texteditor mit Syntax Highlighting nehmen und den Compiler-Aufruf dort irgendwo als Werkzeug hinterlegen. Nun haben moderne IDEs schon seit Jahren nette Features wie Code Completion (nach "Klasse." werden alle möglichen Members der Klasse aufgelistet), Debugging samt Variable Inspection (Maus über Variable bei angehaltenem Programm zeigt den aktuellen Wert der Variable). Dafür muss natürlich mehr Information fliessen als "Compiliere mal Datei xyz", aber dafür haben diese IDEs ja ihren eigenen Compiler/Debugger mit dem sie eng verzahnt sind. Eigentliche Frage: Gibt es fertige IDEs, die solche Features auch für "fremde" Compiler anbieten und wie werden da die notwendigen Informationen übertragen? (Bevorzugt FOS für Windows, notfalls geht auch Linux) danke, Andreas
Die IDE muss ja erst mal deine Sprache (ich schätze mal Fortran) verstehen, um da etwas zu Highlighen etc. Also müßtest du die IDE mit der Sprachdefinition erweitern können. Und Klassen bei Fortran? Gibt es die schon?
Echt noch nichts von Visual Studio Code gehört? Oder Eclipse/Eclipse Theia?
Diese Sachen werden von LSP (language server protocol) angeboten. Für C / C++ ist es z.B. clangd. Da kann auch ein Editor eine Abfrage an diesen Server schicken und bekommt die gleichen Infos wie eine IDE. Wenn es den Server für die Sprache schon gibt, dann musst du einen Client schreiben (sonst beides). Aber das ist die beste Variante. Irgendwelche Eigenschaften direkt in die IDE einbinden geht auch (ist aber nicht optimal).
> Die IDE muss ja erst mal deine Sprache (ich schätze mal Fortran) > verstehen, um da etwas zu Highlighen etc. > Also müßtest du die IDE mit der Sprachdefinition erweitern können. > > Und Klassen bei Fortran? Gibt es die schon? Nein, kein Fortran :-) Richtung C#/C/Pascal/Java, werde also das Syntax-Highlighting anpassen müssen, aber das ist in den mir bekannten Editoren (z.B. Ultraedit) im wesentlichen Anpassung eines Config-Files, sollte also kein Problem sein. >Echt noch nichts von Visual Studio Code gehört? Oder Eclipse/Eclipse >Theia? >Diese Sachen werden von LSP (language server protocol) angeboten. Für C >/ C++ ist es z.B. clangd. Visual Studio Code hatte ich geistig als irgend eine Edition von Visual Studio eingeordnet, also für MS Compiler. Nach etwas Lektüre sieht es aber aus als könnte das genau das sein was ich suche (Stichwort Language Extensions mit eigenem Language Server). Eclipse hatte ich bisher ausschließlich im Java-Umfeld wahrgenommen, scheint aber mit ähnlichen Language Servern zu arbeiten. Danke, Language Server waren wohl das Stichwort das mir gefehlt hat!
VSC und seine Extensions laufen in JavaScript und sind einfacher zu durchschauen als das alte Java Eclipse. Theia ist die neue Eclipse Version und auch in JS, weniger MS lastig aber es dürfen die VS Extensions nicht benutzt werden, daher bisher deutlich geringer verbreitet. Man kann einen Compiler in VSC auch ohne Extensions benutzen, es gibt die 'Tasks' die man in einer JSON Datei beschreibt und die einfach einen Compiler direkt oder per CLI (wenn vorhanden) aufrufen. Der Output wird eingefangen und durch einen Parser, der per regex konfiguriert wird, gejagt und dann Warnungen und Fehler übrig lassen kann. https://code.visualstudio.com/docs/editor/tasks Die Debug Anbindung läuft wohl hauptsächlich über den gdb, das wird die meiste Anpassung benötigen. Syntax Hightlighting gibt es für alle möglichen Sprachen, sicher auch anpassbar.
:
Bearbeitet durch User
Klaus W. schrieb: > Emacs ...ist ein halbwegs brauchbares Betriebssystem, aber ein ziemlich lausiger Editor.
Danke für den sinnvollen Beitrag, vielleicht gibt es sogar jemanden der den Witz noch nicht kennt. Trotzdem kann man sich den gdb oder ähnliches recht brauchbar dranflanschen und sinnvoll damit arbeiten.
Klaus W. schrieb: > Trotzdem kann man sich den gdb oder ähnliches recht brauchbar > dranflanschen und sinnvoll damit arbeiten. Aber nur unter heftigen Schmerzen. DAS ist sicher nicht, was man unter einer ergonomischen Software versteht...
Sagt einer, der Assembler für alles toll findet.
Klaus W. schrieb: > Sagt einer, der Assembler für alles toll findet. Ob du es glaubst oder nicht: Man kann auch mittels purem Assemblercode ergonomische Anwendungen schreiben. Ist nur eine Frage der Zeit, die man zu investieren bereit ist. Wenn man es kann. Also sowohl Assembler als auch ergonomische Anwendungen. Die Emacs-Schöpfer konnten wohl weder das eine noch das andere. Naja, so sehr viele brauchbare GUIs gab es damals(tm) ja auch noch nicht. Aber klar: natürlich wird man eine GUI-Anwendung heute sehr wahrscheinlich nicht in Assembler schreiben, höchstens kleine Teile davon. Allerdings auch nicht in C. Auch hier wieder nur: höchstens kleine Teile davon.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.