Seite 1 von 1

BaPa - Compiler

Verfasst: 02.06.2005 20:44
von remi_meier
Als erstes: Danilo, Rings & Co. schauts euch besser erst gar nicht an :D

Für die anderen:
BaPa... hm.. mir fiel nichts besseres ein... Die Programmiersprache ist ein
wenig ein Mix zwischen Basic und Pascal (nicht überall das Beste rausge-
sucht, der Einfachheit halber..)

Mal schnell den Link: http://mypage.bluewin.ch/remimeier/zip/bapacompiler.zip

Also, das Ding ist ein Compiler! Es fehlen noch so gut wie alle Fehlerabfang-
Routinen, da ich dazu einfach zu faul war... Das Programm wird bei einem
Fehler einfach nicht erzeugt (es gibt so gut wie keine Fehlermeldungen)
und es ist möglich, dass sich der Compiler aufhängt (hatte ich bis jetzt noch
nie).
Es wird sicher noch voller Bugs sein, da ich einfach zu faul bin zum Testen.

Ich veröffentliche es jetzt schon deshalb, weil ich diesen Compiler weg-
schmeissen und alles nochmal von vorne machen werde. Es war einfach
mal ein Testlauf für meine Maturarbeit (Gymnasiumsabschlussarbeit in CH).


Nun zu der Funktionsweise:
Ich werde jetzt nicht die Details erklären, denn obwohl nur etwa 2500 Zeilen
Code, ist das ziemlich komplex zum erklären.
Ich hab alles mal so eingestellt, dass die Datei test.txt beim Doppelklick
auf BaPa.exe kompiliert wird.
2 Testprogramme sind dabei.

Es werden folgende Funktionen unterstützt, obwohl man es sowieso erweitern
kann:
MessageRequester(Titel:STRING, Text:STRING)
Str(Zahl:INT)

Operatoren gibt es die Folgenden:
+, -, *, /
=
==, <>, <=, <, >, >=, &&, ||
&, |, !

Rechnungen sollten richtig nach den P.-vor-S.-Regeln funktionieren (inkl.
Klammern).

Das Programm wird sofort nach dem Kompilieren ausgeführt und die Exe
in den Unterordner 'Release' kopiert (als test.exe). Den Rest in diesem
Ordner kann man getrost vergessen!

Ein kleines Testprogramm (für die dies nicht downloaden wollen):

Code: Alles auswählen

PROGRAM "Test"
	VAR
		id:INT
		in:INT
	ENDVAR
	FUNCTIONS
		MessageRequester : STRING,STRING : INT : MessageRequester.obj
	ENDFUNCTIONS
	CODE
		id = 0
		in = 20
		MessageRequester("hallo", "Starte Schleife")
		REPEAT
			id = id + in
			MessageRequester("Thisisit", Str(id))
			
			IF id >= 193 && id == 200
				BREAKLOOP
			ELSE
				; nüüüt
			ENDIF
		FOREVER
		
		MessageRequester("nocheiner", "da isser")
	ENDCODE
ENDPROGRAM

Ich wollte das Projekt nicht einfach so in den Abfalleimer schmeissen, ich
hoffe ich schade keinem damit :)

Wenn viel Interesse besteht, kann ich noch weitere Informationen raus-
rücken :wink:

greetz
Remi

PS: Code ist, wie bei all meinen Projekten, natürlich dabei :wink:

Re: BaPa - Compiler

Verfasst: 02.06.2005 20:59
von Rings
remi_meier hat geschrieben:Als erstes: Danilo, Rings & Co. schauts euch besser erst gar nicht an :D
werds aber trotzdem machen ;)

nein , ehrlich finde ich sowas immer sehr interresant wie leute
irgendwas umsetzen. Und im Gegensatz zu anderen
Möchtegern-Coder die nach PRINT "HELLO WORLD!" direkt ein
eigenes 'OS' coden wollen hast du ja schon mit deinem Optimierer
und auch der alten 'Polnischen Notation' gezeigt das du dich mit der
Materie näher befasst und Lösungen suchst anstatt Blödsinn
zu vertreiben

In der weile hab ich doch mal grad reingekuckt .
Funktionieren tuts ja scho mal, ein nettes PDF als Quelle
iss wohl auch dabei.

Doch, sieht gut aus für deinen 'ERSTEN COMPILER' :)

Verfasst: 03.06.2005 18:07
von remi_meier
> werds aber trotzdem machen
selbst schuld!

Ist spannend deinen Beitrag zu lesen, auf eine Art kann er beleidigend
wirken, auf die andere sehr motivierend (ist wohl Zufall, sonst egal) :)

Hab mir die Drachenbücher (Compilerbau Teil 1&2) besorgt und werde
die jetzt als Quelle benutzen (beruhigend nich? :wink: ). Hat vielleicht
schonmal jemand Erfahrungen mit denen gemacht?

Und nur nochmal zur Versicherung: Ich werde das Ding nochmals komplett
neu schreiben! Aber dazu muss ich zuerst einmal diese 2 (mindestens T. 1)
Bücher mal durchlesen, damit ich weiss, wie ichs besser machen kann!

@Traumatic: Jetzt kannste dir ja mal den ganzen Code reinsaugen :wink:

greetz
Remi

Verfasst: 06.06.2005 09:33
von Rings
remi_meier hat geschrieben: Ist spannend deinen Beitrag zu lesen, auf eine Art kann er beleidigend
wirken, auf die andere sehr motivierend (ist wohl Zufall, sonst egal) :)
sollte schon motiviernd von mir sein .
Hab mir die Drachenbücher (Compilerbau Teil 1&2) besorgt und werde
die jetzt als Quelle benutzen (beruhigend nich? :wink: ). Hat vielleicht
schonmal jemand Erfahrungen mit denen gemacht?
Nur ein Tip, lies ausgiebig und lieber ne Seite nochmals wenn
du es nich direkt auf anhieb verstehst.
Mit sicherheit wirst du vieles komplett andersmachen wollen
danach :)