Frage zum Compilerbau.



  • Ja hej, vielen Dank für die Antworten.

    Also praktisch eine Art Vorübersetzer. Das sehe ich auch als minimalinvasiv an.

    Wo gibt es denn eine vollständige normkonforme C-Grammatik? Bei Herauskopieren der Grammatik aus z.B. "G.C.C" ist dann nur diese "G.C.C."-Version "kompatibel".

    Die Vorübersetzung sollte möglichst weit kompatibel (Norm- oder Standardkonform z.B. C-Norm) mit eventuell einigen Änderungen / Feinheiten für den jeweiligen Compiler sein.

    Oder sollte man gleich für jede Compilerversion einen eigenen Vorübersetzer einsetzen? Dann sollte man, wenn möglich auch direkt aus den Compilerquellen der jeweiligen Version die Schlüßelwörter (z.B. im Y.A.C.C.-Format) herauskopieren, oder?

    Wo gibt es denn diese "standard- oder G.C.C-kompatiblen" "Y.A.C.C.-Schlüßelwortkarteien"?

    (Allerdings wird beim Vorübersetzer der weitere Textverlauf bei Compilierung und Debuggen weiterhin im jetzigen C-Schlüßelwortsatz angezeigt, was ja für eine "ganz runde Entwicklung" eventuell störend wirken könnte.)

    Noch eine Frage an den vorvorigen Beitragsschreiber:
    Zitat: "Im einfachsten Fall kannst du einfach Funktionen schreiben wie z.B.: if -> my_if( bool, call funktion 1, call funktion 2) ..." Wo sollen denn diese Texte stehen? Im Quelltext selber?

    M.f.G.

    Deckname



  • Schreib doch einfach eine Headerdatei, in der du alle deine Schlüsselwörter mittels #define definiertst.

    #define Falls if
    #define Solange while
    #define Struktur struct
    #define Weitermachen continue
    #define Aufhoeren break
    

    Die includest du dann in allen deinen Programmen.

    Aber ich halte das ganze für eine ziemlich blöde Idee.



  • Wie gesagt die Textersetzung sollte, wenn möglich auch in Compiler und Debugger vorhanden sein.

    Weiterhin könnte eventuell ja auch noch eine "Grammatikänderung" von z.B. Funktionsaufrufen von "Datentyp Funktionsname (Datentypen) auf Eingangsdatentypen (Funktionsname) Ausgangsdatentyp oder Funktionsname (Eingang) (Ausgang) durchführen.

    Auch Kommentarübersetzung und Variablennamenübersetzung für mehrere Sprachen wären hilfreich.

    ----
    Beispiel 1. Schritt Schlüßelwortübersetzung:

    //DE//Massenvergleich
    //EN//Masscomparisation
    GanzeZahl Verzweigung(GanzeZahl Masse1, GanzeZahl Masse2)
    {
    Falls (Masse1 > Masse2)
    {
    Ausgang Masse1;
    }
    Andernfalls
    {
    Ausgang Masse2;
    }
    }
    ----

    Vielen Dank für technische Anregungen.

    M.f.G.

    Deckname



  • Sorry aber das ist einfach bescheuert!
    Wer nicht fähig ist sich evtl ~30 englische Wörter zu merken, solle lieber nicht programmieren.
    Falls du vor hast irgendwelchen Kindern <11 (mit 10 englisch lernen und vllt 1 jahr bis man so Sachen wie if kennt) Jahren c beizubringen, lass es. Geh mit den lieber auf den Spielplatz. Das ist für alle Beteiligten besser!



  • Hallo,

    beim Threadersteller handelt es sich um einen sogenannten T.r.o.l.l.



  • Hallo (auch an die Spekulanten),

    schon technische Durchführungspläne überlegt?

    M.f.G.

    Deckname



  • der Witz mit dem eingedeutschten C ist aber auch nicht mehr ganz frisch...



  • Beispiel für Rechentext mit Übersetzungsmöglichkeit von Formel-, Parameter-, und Formelvariablennamen.

    Beispiel 1.1.
    -Teilweise Grammatikänderungen (ähnlich umgekehrter polnischer Notation). (Diese bei Diskussion bitte außen vor lassen.)

    Achtung der folgende Rechentext steht unübersetzt und ungeprüft in diesem Dokument. (Keine Gewähr oder Haftung auf den Rechentext.)
    ----

    ///Formelsammlungen zitieren
    Formelsammlung <Übertragungen.Textzeile>
    Formelsammlung <Zeichenfolgen>
    
    ///Beginn
    /// (Eingangsnamen) Formelname (Ausgangsname) 
    //DE/Einsprung zur Formelrechnung.
    //EN/Begin of Formulacomputation
    ///Weitere Übersetzungen
    //DE/Beginn()/Textzeilenparameter/EN/Textrowparameter
    //Formel 1
    (Ordnung Textzeilenparameter) Beginn() (GanzZahl Formelwert)
    {
      Formelwert = Konstanten.Abschaltung.unterrechnet.;
    
      (Textzeilenparameter.Anzahl) > ((2)GanzZahl) Falls
      {
        (GrößereZahl) GanzZahl;
        (Textzeilenparameter.Inhalt[1], Textzeilenparameter.Inhalt[2]) Größenvergleichsformel() (GrößereZahl);
        (GrößereZahl) Textzeile();
        Formelwert = Konstanten.Abschalten.abgerechnet;
      }
      Andernfalls
      {
        ("Textzeilenparameter erhöhen.") Textzeile();
      }
      //Abschaltung während Rechnung: Formelwert = Konstanten.Abschaltung.verrechnet.;
      Ausgang = Formelwert;
      (Formelwert)Abschalten();
    }
    
    //DE/Größenvergleich
    //EN/Size Comparison
    ///Weitere Übersetzungen
    //DE/Größenvergleichsformel().Zähler/EN/Counter
    /// (Eingangsnamen) Formelname (Ausgangsname) 
    //Formel 1.1
    (Ordnung Parameter) Größenvergleichsformel() (GanzZahl GrößteZahl)
    {
      (Parameter.Anzahl) > ((2)GanzZahl)) Falls
      {
        (Zähler)GanzZahl;
        (GrößteZahl)GanzZahl;
        Wiederholung bis(Parameter.Anzahl > Zaehler){
           Zaehler+=1;
           //DE/Größenvergleich
           (Parameter.Inhalt[Zaehler] >= Parameter.Inhalt[Zaehler+1]) Falls
           {
             GrößteZahl = Inhalt[Zaehler];
           }
           Andernfalls
           {
             GrößteZahl = Inhalt[Zaehler+1];
           }
        } 
        Ausgang = GrößteZahl;    
        (Asugang)Abschalten();
      }
    }
    

    ----

    Bitte auf technische Machbarkeit diskutieren.

    M.f.G.

    Deckname



  • Ein Vorübersetzer würde dann auf folgende Produktreihe hinauslaufen? (1. Ergebnis einer Netzsuche)

    Netzverweis: http://www.semanticdesigns.com/Products/FrontEnds/CFrontEnd.html?Google=CFrontEnd&gclid=CLq5_pqDzZkCFc0B4wodWXFvtg

    Am besten wäre vielleicht doch ein Zusatz ("Addon") oder Einstecker ("Plugin") für den C-Compiler "G.C.C.". Ein Zusatz in die Richtung der "möglichen Übersetzung" von "Schlüßelwörtern".

    Solch ein Zusatz würde dann aber Grammatikänderungen und Operatoränderungen außen vor lassen und auf einen Übersetzer und Nummer (Version) (z.B. G.C.C.) beschränkt bleiben. Dafür aber den Vorteil haben, daß Schlüßelwörter auch in Übersetzer ("Compiler") und Prüfer ("Debugger") den gleichen Namen hätten.

    Wenn es eine Möglichkeit gibt den Rechentext auch von Compiler und Prüfer anzeigen zu lassen, ohne direkt den Übersetzer oder Prüfer zu ändern, scheint die flexibelste Möglichkeit ein Vorübersetzer ("Precompiler") für allerlei Übersetzungen darzustellen und dieser könnte auch Rechentexte für verschiedene Übersetzer vorübersetzen.

    Solch eine "Übersetzung" ist eventuell zu vergleichen mit Bemühungen um ein ergonomische Tastenanordnung auf der Tastatur. Netzverweis: http://de.wikipedia.org/wiki/Neo-Tastaturbelegung

    Nur stammt die "QWERTZ"-Tastenanordnung von ungefähr 1876 und der C-Formelsatz von 1972. (laut dem Freilexikon Wikipedia).

    M.f.G.

    Deckname



  • lol, bist du autoexec.bat

    Autoexec.bat
    (dies ist nur einer meiner Decknamen, da ich mich in höchster Gefahr sehe)



  • Bist du von der Fraktion, die zu Internet, Internetz, zu Ampel, Lichtsignal, zu Homepage, Heimseite sagt?



  • mazal schrieb:

    Lichtsignal

    Lichtzeichenanlage bitte, soviel Zeit muss sein.



  • Vielleicht handelt es sich bei Deckname um den Ersteller dieser beiden Threads...

    http://www.linuxforen.de/forums/showthread.php?t=253383
    http://www.linuxforen.de/forums/showthread.php?t=258979

    Von dem stammte auch http://verdeutschen.de/ ...



  • Stimmt, das ist ohne Zweifel die selbe Person. Und er scheint es tatsächlich ernst zu meinen 😮

    Einige Höhepunkte aus den Linuxforen-Threads:

    Wir wollen starke Deutsche und darum auch eine starke Sprache.
    Und vor allen Dingen: "Eine _gesunde_ Sprache.".
    Eine Sprache die das Mundwerk festigt und dem Gedanken Kraft verleiht.
    Deshalb: Deutsch sprechen!

    (http://www.linuxforen.de/forums/showpost.php?p=1693006&postcount=169)

    Weiterhin kann jede vernünftige Person erkennen, daß so lange die Demokratie (von griechisch "Pöbelherrschaft" herrscht, der deutschen Kultur Fesseln gebunden sind. (Zumindest in öffentlichen Diskussionforen.) Auch Freidenker sollen durch die Herrschaft des Pöbels in den Massenkonsum gedrückt werden. Ob mit lauteren Mitteln oder nicht. Zweck ist hier doch nur den Untergang der deutschen Kultur herbeizuführen.

    (http://www.linuxforen.de/forums/showpost.php?p=1695552&postcount=50)


Anmelden zum Antworten