Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

21

05.06.2016, 12:08

Was funktionale Sprachen angeht, so kann ich diesen Link empfehlen. Auch wenn du ja aktuell mit einer anderen Sprache arbeiten möchtest, so könnte das dennoch interessant sein. Diesen Link fande ich auch ganz nett. Da wird ein simpler Compiler in C++ erstellt.
Ich selbst hab mich bei dem Thema beim Einstieg irgendwie etwas schwer getan. Ich habe erst keine Literatur im Internet gefunden die mir gefallen hat und das hat die ersten Wochen ziemlich lästig gemacht. Als praktischer Einstieg hat mir das Drachenbuch ziemlich gut gefallen.
Ansonsten kann ich dir nur raten erst mal simpel anzufangen. Mach deine Sprache erst mal so einfach wie es geht und arbeite dich dann Schritt für Schritt vor.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

22

05.06.2016, 14:28

Danke @Schorsch

Ich habe mir die 2.schlechte Kundenrezision durch gelesen und stimmt es, das da soviele Druckfehler und etliches vorhanden sind?

Weil ich kenne teilweise solche Bücher und das ist echt schlimm zu lesen!

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

23

05.06.2016, 14:34

Ich habe mir die 2.schlechte Kundenrezision durch gelesen und stimmt es, das da soviele Druckfehler und etliches vorhanden sind?

Weil ich kenne teilweise solche Bücher und das ist echt schlimm zu lesen!

Puh ich hab das Buch selbst gar nicht da. Hab mir das damals aus der Uni Bib geliehen. Ich hab es echt nicht mehr im Kopf. Bin mir auch grad gar nicht sicher, ich glaube ich hatte die englische Ausgabe da.
Ansonsten gibt es halt auch ein paar gute Quellen im Internet, die sind aber halt nicht ansatzweise so umfangreich wie dieses Buch.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

24

05.06.2016, 15:24

Nebenbei;

Für wie "realistisch" haltet ihr es, einen eigenen neuen Compiler zu bauen, als einziger Entwickler?

25

05.06.2016, 15:46

Ein simpler Kompiler ist eigentlich schnell gebaut. Dass der dann auch gut optimiert und schnell ist, ist eine andere Frage.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

26

05.06.2016, 16:41

Wichtig ist vor allem was deine Sprache alles können soll. Mach dir vielleicht nicht zu große Hoffnungen da was weiß ich was auf die Beine zu stellen. Guck dir das ganze erst mal an, arbeite dich dann ein und dann siehst du weiter. Wenn du dir ein wenig Arbeit sparen willst kannst du auf die richtigen Tools zurück greifen. So gibt es zum Beispiel Lexer- und Parsergeneratoren wie lex und bison oder llvm was dir beim Backend hilft bzw dazu dient und auch schon einiges an Optimierungen mit sich bringt. Vielleicht einfach mal angucken.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Thandor

Frischling

Beiträge: 84

Wohnort: Berlin

Beruf: Softwareentwickler

  • Private Nachricht senden

27

05.06.2016, 17:36

Hallo JungleProgger,

ich habe mal testweise einen kleinen, ganz einfachen "Compiler" in Pascal geschrieben:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Program einfache_Syntaxpruefung;

{
'nonterm' S(->N:Integer)
  S(->1)   : ab
  S(->N+1) : aS(->N)b
}

Function S (txt : String; var n : Integer) : Boolean;
Var p : Byte;
Begin
  Result := FALSE;
  if txt = 'ab' then Begin            // S(->1)   : ab
    n := 1;
    Result := TRUE;
  end else Begin                      // S(->N+1) : aS(->N)b
    p := Pos ('ab', txt);
    if p > 0 then Begin
      Delete (txt, p, 2);
      Result := S(txt, n);
      n := n+1;
    end else Result := FALSE;
  end;
end;



Var wort : String;
    i    : Byte;
    n    : Integer;

Begin
  WriteLn ('Syntaxpruefung fuer Gramatik "ab"');
  WriteLn ('nonterm S(->N:Integer)           ');
  WriteLn ('  S(->1)   : ab                  ');
  WriteLn ('  S(->N+1) : aS(->N)b            ');
  WriteLn ('---------------------------------');
  WriteLn ('Gebe "exit" ein zum Beenden.     ');
  WriteLn ('==========================================================');
  WriteLn;
  Repeat
    Write('>> ');ReadLn (wort);
    if UpCase(wort) = 'EXIT' then Break;
    if S(Wort, n) then Begin
      WriteLn ('Erfolgreich: n=', n);
    end else Begin
      WriteLn ('Syntaxfehler "',Wort,'"');
      WriteLn ('Syntax: ');
      WriteLn ('  a^nb^n');
      WriteLn ('  Bespiele: ab, aabb, aaabbb, ...');
    end;
    WriteLn ('--------------------------------------------------------');
  Until FALSE;
end.


{
                               aaabbb
                                  |
                              'a' S 'b'     // aabb   R02: S->aSb
                                  |
                              'a' S 'b'     //  ab    R02: S->aSb
                                  |                         
                                 'ab'       //        R01: S->ab
}


Ok letztendlich ist das noch kein richtiger Compiler, zumindest ist er nicht wirklich brauchbar. Schau ihn dir einfach mal an und versuche zu verstehn. Villeicht hilft es dir.

Der "Compiler" kennt nur eine Regel. Wenn es mehrere Reln gibt können diese nacheinander ausgeführt werden, bis eine Regel, für einen Ausdruck, funktioniert hat.
Ich mag pewn.de.

28

05.06.2016, 18:23

Ok Leute, danke soweit für die Anregungen.

Ich werde da mal langsam reinsteigen und dann step by step mehr zu lernen.

@Thaldor

Danke für dein Beispiel, schaue ich mir mal an^^

29

08.06.2016, 22:30

Ne Sache noch:

Wenn ich z.B meinen Compiler vom"FPC" kompilieren lasse, dann müsste mein eigener Compiler dann auch unter: "Windows, Linux, Unix, teilweise MacOS X, BSD etc.." laufen, da das alles der FPC unterstützt, oder nicht?

Denn mein Compiler ist ja auch nur ein Programm, das sich dann auf allen diesen Plattformen starten lassen müsste und demzufolge doch auch den Code, der in meiner Sprache entwickelt wurde?

H5::

Treue Seele

Beiträge: 368

Wohnort: Kiel

  • Private Nachricht senden

30

08.06.2016, 23:52

Ich hoffe ich habe dich nicht falsch verstanden, denn deine Frage klingt für mich so, als ob du wenig Vorstellung von dem Thema hast.

Nur als Beispiel:

Du entwickelst unter einem Englischsprachigen Betriebssystem, dein Programm ist ein Übersetzer von Deutsch nach Englisch. Führst du es jetzt auf einem Französischsprachigem System aus, in welche Sprache übersetzt dein Programm jetzt?
:love: := Go;

Werbeanzeige