1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

compiler

Dieses Thema im Forum "OS X-Developer" wurde erstellt von Jacky13, 21.06.07.

  1. Jacky13

    Jacky13 Angelner Borsdorfer

    Dabei seit:
    04.02.07
    Beiträge:
    621
    Hy!
    Ich brauche mal eure hilfe:
    Ich suche ein Programm (unbedingt OS) mit dem ich mir einen compiler bauen kann!
    Natürlich gibt es im i-net viel über compilerbauen, aber leider nur in vorhandenen sprachen!
    Ich will zum spaß ne neue sprache schreiben, brauche aber ein prog oder tourtional (auf deutsch) wo es beschrieben ist.
    Ich habe als tipp das Buch Project Oberon bekommen, leieder verstehe ich kein wort, und es wird nicht (is auf englisch) erklärt wie mann einen compiler compiliert (hab von nem lehrer erfahren dass ich den ersten teil u.U händisch übersetzen muss :oops:)
    thx für eure hilfe

    edit: das prog oder was auch immer ihr mir da geben wollt muss auf allen drei systemen laufen: win/linux/OS X)
    und es MUSS OS sein
     
  2. KayHH

    KayHH Gast

    Damit meint Dein Lehrer vermutlich nur, dass wenn es noch keine Compiler geben würde man dies tun müsste. Früher hat man den ersten Compiler direkt als Maschinencode eingegeben, weil man sich ja noch keinen kompilieren konnte. Danach hat man dann einen Compiler den man verbessern und mit der alten Version kompilieren kann. So zieht man sich quasi Stück für Stück an den eigenen Haaren aus dem Sumpf. Wenn Dein Compiler in der Programmiersprache geschrieben sein soll, die Du zu entwickeln beabsichtigst, kannst Du das Szenario, sich selbst aus dem Sumpf zu ziehen natürlich nachleben, Du kannst aber auch einfach einen Compiler nehmen den es schon gibt. Der gcc, welcher bei OS X dabei ist, wäre dazu schon mal nicht schlecht geeignet, da er ja auch auf Linux und AFAIK auch Windows läuft.

    Ich hatte früher mal den Quellcode zum ELAN-Compilder. Musst Du mal nach googeln. Dieser Compiler ist ebenfalls in ELAN geschrieben. ELAN war früher mal einen schöne Sprache welche vorwiegend im Lehrbereich eingesetzt wurde.

    Bevor Du damit anfängst solltest Du Dich aber erst mal mit den grundlegenden Dingen der Datenverarbeitung vertraut machen. Z.B. was ist ein Stack, …. Bücher über Compilerbau (Ich hatte mal eines von Zima oder so ähnlich) sind extrem theoretisch und kaum zu empfehlen.


    KayHH


    Nachtrag: Den Zima scheint es tatsächlich noch zu geben, zumindest wird er sogar bei Wikipedia erwähnt, http://de.wikipedia.org/wiki/Compilerbau
     
  3. Jacky13

    Jacky13 Angelner Borsdorfer

    Dabei seit:
    04.02.07
    Beiträge:
    621
    naja, meinst du dass so dass ich einen compiler in ner vorhandenen sprache für ne neue sprache schreiben soll?
    und dass mit den büchern brauch ich net, da ich jetzt nur ein hellow wörld programm plane.
    ich möchte dass folgendermaßen schreiben (deutsche c++ übersetzung):

    Code:
    #bib (wasweissich.h) // hier wird eine bibliothek eingefügt (include)
    ini hauptprogramm() // initialisiere hauptprogramm
    starte()
    {
    lb(); // lösche den bildschirm (bei dos nötig)
    schreibe("hallo welt"); // hier wird was ausgegeben
    warte() //selbsterklärend
    }
    beende()
    
    so ungefähr will ichs machen also ne übersetzung, wenns klappt und spaß macht veröffentliche ich es vl, wer weis
    hasst du jetzt vl ne tipp?
    thx trodzdem
     
  4. Hobbes_

    Hobbes_ Gast

    Einen Compiler bauen: Da hast Du Dir wirklich etwas vorgenommen und wie Du in einem anderen Thread schon fragtest, eine wirkliche grosse Herausforderung auserwählt.

    Dier Lernkurve ist dabei wirklich steil. Auch musst Du Dir bewusst sein, dass die Konzeption einer neuen Programmiersprache sehr viel Vorarbeit der Konzepterstellung braucht, bevor Du auch nur das erste Zeichen tipst. Daneben gibt es schon recht ausgereifte Programmiersprachen. Da muss man sich überlegen, ob man die Zeit nicht sinnvoller investiert. Dennoch: Eine wunderbare Art, sich mit der Programamierung und verschiedenen Maschinen / OS / Assembler / Konzepten auseinanderzusetzen. enjoy it!

    ------

    Aus eigener Erfahrung habe ich früher selbst etwas an einem Pascal-Compiler weitergearbeitet (PCQ auf Amiga, siehe Fish-Disk 503, zB. hier), den Du weiter brauchen kannst, insofern Du einen Emulator hast. Du kannst natürlich auch mit der GNU compiler collection starten (gcc, die auf dem Mac sowieso mit dabei ist, insofern Du das development package installiert hast, DVD oder von Online ADC). So könntest Du beispielsweise einen cross-compiler für Win/Mac/Linux bauen. Cross-Compiler können Dir helfen, dass Du bereits initial nicht so viel händisch übersetzen musst.

    -----

    Als wirkliche Challange könnte ich Dir da eine der esoterischen Programmiersprachen (zB. Brainfuck) empfehlen. Da hast Du wirklich etwas zu knobeln. Du solltest darauf achten, dass sie Turing-vollständig ist. Damit hast Du Gewähr, dass Du im Prinzip damit alles programmieren kannst. Wenn Du möchtest kriegst Du gar eine Mac OS Emulation in Brainfuck hin. Das möchte ich selbst jedoch nicht probieren, denn dann kannst Du Dich gleich von allen anderen Verpflichtungen abmelden :)

    esoterische Programmiersprachen (Wikipedia)
    Brainfuck (Wikipedia)

    Links in apfeltalk:
    - hello world
    - rev Algorithmus mit nur 13 Zeichen (sic!)
    - Compiler nur 171 Bytes gross (sic!)

    -----

    Als weitere Alternative könntest Du den Interpreter, den der Apollo-Guidance-Computer bei sich führte implementieren. Nur schon das lesen der Geschichte der Entstehung dieses Computers hat seinen Reiz. Die Jungs waren echt genial: Multitasking bereits damals. Von Hand gewobene Speichernetze.... Ein eigener Interpreter mit eigener Programmiersprache implementiert, damit Speicherplatz gespart werden kann. Schlicht genial.

    Alles Gute für Dein Projekt.
     
  5. Jacky13

    Jacky13 Angelner Borsdorfer

    Dabei seit:
    04.02.07
    Beiträge:
    621
    wenn der code einen bug hat, übernehme ich keine haftung *gg*
     
  6. KayHH

    KayHH Gast

    Wenn die Programmiersprache nur das könnte, wäre es keine. Bibliothek einbinden ist ja nett, aber wo bitte kommt die her? Irgendeine Headerdatei für C kann es ja nicht sein, sonst wäre es ja nichts neues. Das Einbinden setzt außerdem eine Art Präprozessor voraus.

    Evtl. solltest Du Dich erst mal auch mit der Backus-Naur-Form beschäftigen.


    KayHH
     
  7. Jacky13

    Jacky13 Angelner Borsdorfer

    Dabei seit:
    04.02.07
    Beiträge:
    621
    ähm langer beitrag*gg* aber ich habe oben weiter beschrieben was ich fürn anfang machen will, werd mir aber dass da durchlesen.
    achaj der compiler soll nur dass oben beschriebene können (anfangs)
     
  8. Hobbes_

    Hobbes_ Gast

    Also wenn Du "nur" eine deutsche Version von C oder C++ machen willst, so würde ich Dir einen simplen Parser empfehlen, der auch nur die Übersetzung nach C vornimmt. Dann kannst Du Dir den Rest sparen. Ich würde auch mal googeln. Ich könnte mir vorstellen, dass es so etwas schon gibt. Das hat dann jedoch nicht viel mit einer eigenen Programmiersprache zu tun.

    Und: Den Literaturtipp von KayHH würde ich nicht so einfach in den Wind schiessen. Wenn Du wirklich einen Compiler bauen willst, so wirst Du um die Lektüre einiger Buchseiten nicht herumkommen!

    Ach ja: Linus hat für Linux auch mal begonnen, dass er nur ein kleines Programm schreiben wollte... Wer weiss, was aus Deinem kleinen Programm mal entstehen kann... :)
     
  9. Jacky13

    Jacky13 Angelner Borsdorfer

    Dabei seit:
    04.02.07
    Beiträge:
    621
    bibliothek muss niht unbedingt sein, das prog soll nur funktionieren (am besten man braucht überhaupt keine bibliotheken)
     
  10. KayHH

    KayHH Gast

  11. Jacky13

    Jacky13 Angelner Borsdorfer

    Dabei seit:
    04.02.07
    Beiträge:
    621
    achja träumen is ja schön;)
    aber wirklich: wer weiss:eek:
     
  12. Jacky13

    Jacky13 Angelner Borsdorfer

    Dabei seit:
    04.02.07
    Beiträge:
    621
    die seite kenn ich aber dasslied leider nich (als musik):(
     
  13. Hobbes_

    Hobbes_ Gast

    Schade, dass Du nur eine quick & dirty Lösung für eines der einfachsten Programme der Welt suchst. Nun denn: you are the king of your kingdom :)

    Nur für ein Hello World würde ich Dir nach wie vor simpel dieses Programm
    Code:
    ++++++++++[>++++++++++<-]>++++.---.+++++++..+++.>++++[>+++++++++++<-]>.---¦---¦---¦---.[-]<<++++++++.---¦---¦--.+++.---¦---.---¦---¦--.[-]<+[>++++++++++<-]>.[-]<
    
    mit diesem Compiler
    Code:
    ->+>+++>>+>++>+>+++>>+>++>>>+>+>+>++>+>>>>+++>+>>++>+>+++>>++>++>>+>>+>++>++>+>>>>+++>+>>>>++>++>>>>+>>++>+>+++>>>++>>++++++>>+>>++>+>>>>+++>>+++++>>+>+++>>>++>>++>>+>>++>+>+++>>>++>>+++++++++++++>>+>>++>+>+++>+>+++>>>++>>++++>>+>>++>+>>>>+++>>+++++>>>>++>>>>+>+>++>>+++>+>>>>+++>+>>>>+++>+>>>>+++>>++>++>+>+++>+>++>++>>>>>>++>+>+++>>>>>+++>>>++>+>+++>+>+>++>>>>>>++>>>+>>>++>+>>>>+++>+>>>+>>++>+>++++++++++++++++++>>>>+>+>>>+>>++>+>+++>>>++>>++++++++>>+>>++>+>>>>+++>>++++++>>>+>++>>+++>+>+>++>+>+++>>>>>+++>>>+>+>>++>+>+++>>>++>>++++++++>>+>>++>+>>>>+++>>++++>>+>+++>>>>>>++>+>+++>>+>++>>>>+>+>++>+>>>>+++>>+++>>>+[[->>+<<]<+]+++++[->+++++++++<]>.[+]>>[<<+++++++[->+++++++++<]>-.------------------->-[-<.<+>>]<[+]<+>>>]<<<[-[-[-[>>+<++++++[->+++++<]]>++++++++++++++<]>+++<]++++++[->+++++++<]>+<<<-[->>>++<<<]>[->>.<<]<<]
    
    (Quelle)

    empfehlen :)

    (was für eine Programmiersprache!)

    Das macht alles, was Du verlangt hast (und mehr) :)

    Eine weitere Kollektion von Hello World-Programmen findest Du hier.


    @KayHH: INTERCAL ist auch eine coole Sprache. Danke! Nicht zu vergessen auch die 1000 anderen Varianten dieses Programms...
     
  14. Jacky13

    Jacky13 Angelner Borsdorfer

    Dabei seit:
    04.02.07
    Beiträge:
    621
    du brainfuck ist schon lustig aber ich will eine übersetzung von c++ in ner eigenen sprache (bitte net falsch verstehen) aber brainfuck interresiert mich im moment nicht (wie kann ich eig. den compiler compilern?)
     
  15. huhny

    huhny Gala

    Dabei seit:
    10.05.05
    Beiträge:
    48
    Schreib Dir doch einfach einen Parser der Dir Deine "Befehle" in C++ übersetzt und dannach dann eben den C++ Code mit einem vorhandenen Compiler übersetzt. Also einfach Textersetzungen in der Sourcedatei machen... Einen echten Compiler wirste so schnell nicht bauen, das ist ne Wissenschaft für sich.
     
  16. Jacky13

    Jacky13 Angelner Borsdorfer

    Dabei seit:
    04.02.07
    Beiträge:
    621
    wie baue ich nen parser (ernstgemeinte frage)
     
  17. Hobbes_

    Hobbes_ Gast

    Google (ernstgemeinte Antwort)
     
  18. Jacky13

    Jacky13 Angelner Borsdorfer

    Dabei seit:
    04.02.07
    Beiträge:
    621
    ok, kennt wer die adresse von google??? (nicht sehr ernstgemeinte frage)^^
     
  19. Jacky13

    Jacky13 Angelner Borsdorfer

    Dabei seit:
    04.02.07
    Beiträge:
    621
    aber son compiler mit NUR den pbenstehenden efehen lässt sich nicht so leicht machen oderr?
     

Diese Seite empfehlen