Mein erstes programm



  • Aber warum soll ich neh neue programmiersprache anfangen? Ich lerne doch grade c und hab schon die grundlagen hinter mir!!! Oder verstehe ih da was falsch?



  • Du sollst keine neue Programmiersprache anfangen ;), du sollst Prolog-Code mit (d)einem *C-Programm* parsen. Das heißt du erkennst den Prolog-Code und kannst ihn in irgendeiner Form auswerten (zB auf richtige Sytnax prüfen).

    MfG SideWinder



  • Jedes gute Buch bietet weiterführende Aufgaben!



  • Du sollst keine neue Programmiersprache anfangen ;), du sollst Prolog-Code mit (d)einem *C-Programm* parsen. Das heißt du erkennst den Prolog-Code und kannst ihn in irgendeiner Form auswerten (zB auf richtige Sytnax prüfen).

    ?? Verstehe ich das richtig ... prolog ist eine programmiersprach in einer programmiersprache - sowie PHP in HTML ?

    Kann man mir villeicht auch ein beispiel zeigen?



  • Nein ist es nicht. Setzen wir statt Prolog mal C ein: Du schreibst C-Code, jetzt soll dieser C-Code in ein Programm umgewandelt werden. Dazu benötigt es einen Compiler welcher wiederrum zuerst einmal einen Parser hat. Der Parser geht den Code Schritt für Schritt durch und prüft auf korrekte Syntax. Er baut dazu einen Syntaxbaum weil ihm das später einiges an Arbeit abnimmt, aber das kannst du erstmal vergessen *g*

    Und weil C so schwer zu parsen ist nehmen wir eine von der Grundstruktur einfachere Sprache: Prolog.

    Deine Aufgabe ist es den ersten Teil dieses Compilers zu bauen: Den Parser.

    MfG SideWinder



  • Ich bin nicht doof, aber ihrgendwie hab ich´s immer noch nicht verstanden.

    Du schreibst C-Code, jetzt soll dieser C-Code in ein Programm umgewandelt werden.

    Das macht doch schon der compiler. Was hab ich damit zu tun?

    Dazu benötigt es einen Compiler welcher wiederrum zuerst einmal einen Parser hat
    

    was ist ein parser?

    Der Parser geht den Code Schritt für Schritt durch und prüft auf korrekte Syntax.

    du meinst die fehler im programm finden? das macht doch auch der compiler!

    Deine Aufgabe ist es den ersten Teil dieses Compilers zu bauen: Den Parser.

    WARUM SOLL ICH EIN NEUEN MACHEN, WENN ER IM JEDENCOMPILER SCHON VORHANDEN IST??? OH HAB AUSVERSEHEN AUF CAPS LOCK GEDRÜCKT 🙂

    Ich hoffe mir kann jemand die fragen beantworten.



  • Klar gibts schon Compiler für Prolog die natürlich auch einen Parser enthalten. Und ja, du sollst den nochmal schreiben, wo ist dein Problem? Telefonbücher gibts doch auch schon? 😉

    BTW: Wird Prolog überhaupt compiliert? Wird das nicht interpretiert? Naja egal, Parser braucht man so oder so.

    MfG SideWinder



  • Klar gibts schon Compiler für Prolog die natürlich auch einen Parser enthalten.
    

    nein, du hast mich falsch verstanden. es hörte sich so an als wäre prolog dafür da ein compiler für c zu schreiben! .... Ich weis immernoch nicht was diese sprache macht / bringen soll. 😞



  • Was diese Sprache macht findest du bei Wikipedia, wie sie funktioniert in unzähligen Tutorials im Internet. Aber wenn du keine Ahnung von Prolog hast könnte es uU schwer werden einen Parser dafür zu schreiben.

    Lass dir am besten eine einfache Minimal-Sprache selbst einfallen. Basic-Like, sth like that:

    OUT Hello World
    FOR %i FROM 1 TO 10
        OUT Ich bin in Schleifendurchgang %i
    

    Lies eine solche Datei mit deiner Sprache ein, parse sie und übersetze sie in ein C-Programm. Das heißt dein Programm soll aus dem obrigen Code eine Datei mit folgendem Inhalt erstellen:

    printf("Hello World\n");
    for(int i = 1; i <= 10; ++i)
        printf("Ich bin in Schleifendurchgang %d\n",i);
    

    Je nachdem wie umfangreich du deine Mini-Sprache machst wird dein Programm schwerer.

    MfG SideWinder





  • Also kann man mit prolog:

    1. Eine eigenen kleine sprache entwickeln ?
    2. Eine art übersetzer entwickeln ( wie ein disammbler ) ??

    PS: Könnt ihr mal bitte aufhören euch immer so kompliziert auszudrücken *trän* ?? ..... 🙂
    PPS: Mein kopf tut schon weh 😞 ..... 😃



  • Nein, Prolog ist wie C eine Sprache.
    Für Prolog gibts genauso wie für C Compiler.
    Für Prolog schreiben genauso Leute Source-Code wie für C.

    Deine Aufgabe ist es nun mit Hilfe eines C-Programms Prolog-Source-Code zu verwerten. Aber vergiss das. Mach lieber eine kleine eigene Sprache und parse diese 🙂

    MfG SideWinder



  • Kann ich damit meine eigene kleine sprache "bauen"?



  • eine Aufgabe ist es nun mit Hilfe eines C-Programms Prolog-Source-Code zu verwerten.

    Achso. Ich soll mit c ein programm schreiben, der die prolog code ...
    a) zu einem programm macht.
    b) auf c übersetzt.
    ???

    für b) : Also auf der basic anweisung PRINT "ada" -> printf ("ada"); macht ?



  • Richtig :D, aber Prolog ist für den Anfang da imho etwas ungeeignet. Vor allem a).

    Also bastel dir statt Prolog eine eigene Mini-Sprache und übersetz von der den Code nach C.

    Also aus "OUT Hello World" -> printf("Hello World\n") etc. 🙂

    MfG SideWinder



  • Sag mal ehrlich. Glaubstdu nicht es ist ein bisschen schwer eine geigene sprache zu entwickeln?

    Wie würdest du es den machen? Mit if anweisungen? Ich schetz mal du hast auch ma so eine eigenen kleine sprache entwickelt. Kannst du mir mal dein grundgerüst zeigen?



  • Ich frag mich auch, wie man sowas verwirklichen kann. Ich warte mal auf neh antwort.
    @SideWinder: Würde es mit if (eingabe== adh) { sdsdasdasd } gehen



  • Habe ich ihrgendwas falsch verstanden/gesagt, oder warum antwortet niehmand mehr?



  • neh ich will doch lieber ganz bei c und den c headern bleiben. Hat jemand noch andere idden?



  • ausserdem wird er bei einem parser wohl eher stdio maltretieren :-))


Anmelden zum Antworten