PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bfint - ein kleines Programm von mir :)



panzi
31.07.03, 16:03
Hab zur übung ein kleines Programm geschreiben, einen brain**** Interpteter und Konverter (liefert ne .c und ne Makefile).
Läuft recht gut, muss aber noch mit source comments versehen werden, und vieleicht mach ich noch ne man page.

@man page
Kennt jemand ein gutes tool dafür?


Wer Lust/Zeit hat kann's ja testen, ein paar brain**** programme findet man dort:
http://esoteric.sange.fi/brain****/bf-source/prog/
bzw.
http://www.google.com/search?q=brain****%20examples&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8


Und ein Danke an Tino Wagner, der mir einen Tipp gegeben hat, mit dem ich nen blöden bug entfernen konnte!

Berufspenner
31.07.03, 16:07
Hi

Ich will ja nicht nörgeln, aber... http://www.linuxforen.de/forums/forumdisplay.php?s=&forumid=46
Hört sich sonst aber nicht schlecht an, obwohl ich Brainf*ck doch recht kryptisch finde.

Cu
André

panzi
31.07.03, 17:02
Hups, hab ganz vergessen das es das Forum auch gibt...
jen den thred wer verschieben?

fs111
31.07.03, 17:44
Original geschrieben von Berufspenner
Hi

Ich will ja nicht nörgeln, aber... http://www.linuxforen.de/forums/forumdisplay.php?s=&forumid=46
Hört sich sonst aber nicht schlecht an, obwohl ich Brainf*ck doch recht kryptisch finde.

Cu
André

Warte bis Du Turingmaschinen verstanden hast, dann verstehst Du auch Brainf*ck

fs111

Samsara
31.07.03, 17:56
Oh je, oh je, diese Sch**** Kindersicherung hier!!! :mad:

*samsiert*

Samsara
31.07.03, 17:59
Was genau ist brfk? Mit whitespace (der Sprache) zu vergleichen? Das hatten wir hier neulich :p

MfG,

Samsara

panzi
31.07.03, 20:18
whitespace kenn ich nicht.
brainf*k lässt sich schnell erklären:
In brainf*k hat man einen Pointer zur Verfügung, den man in nem Register hin (>) und her (<) schieben kann (dieses register wird bei mir automatisch dynamisch vergrößert, wenn der platz nichtmehr reicht).
Dann kann man den Wert des aktuellen Elements (auf den der Pointer zeigt) erhöhen (+) oder verringern (-).
Dann kann man den Wert noch einlesen (,) von stdin, es wird der ascii Wert des gelesenen Zeichen gespeichert, und man kann das Zeichen auch wieder ausgeben (.).
Dann gibts auch noch Schleifen (begin = [, ende = ]). Abbruch bedingugn ist Aktuelles-Element != 0.

Somit gibt's in der ganzen Sprache nur 8 Zeichen:
< > + - , . [ ]

Alle anderen Zeichen werden Ignoriert (sind Kommentar).

Das wäre dann Hallo Welt:
++++++++[>+++++++++<-]>.<+++++[>++++++<-]>-.+++++++..+++.<
++++++++[>>++++<<-]>>.<<++++[>------<-]>.<++++[>++++++<-]>
.+++.------.--------.>+.

panzi
31.07.03, 20:38
Man, ich hab anscheinend tatsächlich vergessen den Link zu meiner Projektseite zu posten!! :ugly:
http://www.sf.net/projects/bfint

Samsara
01.08.03, 14:52
Okay, das sieht ja ganz interessant aus, wenn mir auch der Nutzen nicht ganz klar wird - ist wohl ein Spassprojekt?
Womit schreibst Du Deine Programme? Perlscripts? Sowas wie das "Hello, World!" Programm oben koennte man sicher ganz schnell von Perl generieren lassen, oder auch fuer einen beliebigen anderen String. Oder geht es darum, sich wirklich die Ruebe zu zermuerben dabei, sich vorzustellen, was in dem Register gerade passiert? Ist Kopfschmerz und Ressourcenvergeudung* Kult, oder habe ich da was falsch verstanden? :ugly:
Aber wie gesagt, von Turing Maschinen habe ich zwar schon gehoert, habe mich aber noch nicht naeher damit beschaeftigt.

Gruss,

Samsara

* neuronale Rechenzeit und Lebensspanne

palm-man
01.08.03, 16:50
Zu Turingmaschinien gibts hier einige Infos: http://de.wikipedia.org/wiki/Turingmaschine. Ausführlicher ist die Beschreibung noch im englischen Teil: http://www.wikipedia.org/wiki/Turing_machine.
Der Reiz an Brain**** liegt eigentlich wirklich darin, sich die "Rübe dabei zu zermürben". Denn dabei lernt man ne Menge über Turingmaschinen und warum man mit ihnen jedes mathematische Problem (jedes berechenbare Problem) mit mehr oder minder großem Aufwand lösen kann. :D

panzi
01.08.03, 21:05
Also mir ist's dabei eigentlich darum gegangen, um für die Matura etwas zu üben.
Aber dafür dürfte das Programm wohl etwas zu einfach sein. Aber da es ziemlich schnell läuft, schneller als manch anderer brainf*ck Interpreter, habe ich mir gedacht, mach ein kleines Projekt daraus, damit auch andere von deiner Arbeit profitieren können. :)


PS: Achja, hab's in c, nicht in perl, geschrieben! :)

Samsara
02.08.03, 18:17
Wenn ich Dich richtig verstehe, meinst Du, dass der Interpreter in C geschrieben ist. Das hatte ich mir schon gedacht. Die Frage war eigentlich, ob die Skripte/Programme von Perl generiert sind, denn das sieht eigentlich nicht so schwer aus, zumindest fuer bestimmte Anwendungen, wie z.B. einen Text auf dem Bildschirm auszugeben.

Gruss,

Samsara