PofoWiki

Die ultimative Informationsquelle zum ATARI Portfolio

Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:diy:andere:prainfucked

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
software:diy:andere:prainfucked [24/10/2006 20:10] – angelegt danielmewessoftware:diy:andere:prainfucked [Unknown date] (aktuell) – Externe Bearbeitung (Unknown date) 127.0.0.1
Zeile 1: Zeile 1:
 ====== brainfuck auf dem Portfolio mit Prainfucked ====== ====== brainfuck auf dem Portfolio mit Prainfucked ======
  
-=== Die Sprache brainfuck ===+===== Die Sprache brainfuck =====
  
-Die Programmiersprache [[http://www.esolangs.org/wiki/Brainfuck|brainfuck]] (auch bekannt als bf oder brainf*) ist wohl eher einer experimentelle Sprache, als eine Programmierpsrache, mit der man gerne komplexe Anwendungen entwickeln möchte. Dies liegt insbesondere an den fehlenden Möglichkeiten der Programmstrukturierung und an den eingeschränkten E/A Möglichkeiten.+Die Programmiersprache [[http://www.esolangs.org/wiki/Brainfuck|brainfuck]] (auch bekannt als bf oder brainf*) ist wohl eher einer experimentelle Sprache, als eine Programmiersprache, mit der man gerne komplexe Anwendungen entwickeln möchte. Dies liegt insbesondere an den fehlenden Möglichkeiten der Programmstrukturierung und an den eingeschränkten Ein- bzw. Ausgabe-Möglichkeiten.
 Die Beschränkung der Sprache auf nur acht verschiedene Befehle trägt auch nicht sonderlich zu einer einfachen Umsetzung von Funktionalität in Programmcode bei. Die Beschränkung der Sprache auf nur acht verschiedene Befehle trägt auch nicht sonderlich zu einer einfachen Umsetzung von Funktionalität in Programmcode bei.
  
 Trotzdem hat sich brainfuck weltweit einen Namen machen können, als eine Sprache mit ganz besonderem "Charme" und nicht zuletzt auch als geistige Herausforderung bei Freizeitprogrammierern und Informatikern. Trotzdem hat sich brainfuck weltweit einen Namen machen können, als eine Sprache mit ganz besonderem "Charme" und nicht zuletzt auch als geistige Herausforderung bei Freizeitprogrammierern und Informatikern.
  
-Alle Befehle werden in einer Art "virtueller Maschine" ausgeführt. Diese besteht aus einer (theoretisch unbegrenzten) Anzahl von Speicherzellen. Außerdem gibt es einen Pointer, der immer auf eine dieser Speicherzellen zeigt.+Alle Befehle werden in einer Art "virtueller Maschine" ausgeführt. Diese besteht aus einer (theoretisch unbegrenzten) Anzahl von Speicherzellen. Außerdem gibt es einen Zeiger, der immer auf eine dieser Speicherzellen zeigt.
  
 Die Befehle im Überblick: Die Befehle im Überblick:
-  * < verschiebt den Pointer eine Speicherzelle nach links +  * < verschiebt den Zeiger eine Speicherzelle nach links 
-  * > verschiebt den Pointer eine Speicherzelle nach rechts+  * > verschiebt den Zeiger eine Speicherzelle nach rechts
   * + erhöht den Wert der aktuellen Speicherzelle um Eins   * + erhöht den Wert der aktuellen Speicherzelle um Eins
   * - verringert den Wert der aktuellen Speicherzelle um Eins   * - verringert den Wert der aktuellen Speicherzelle um Eins
   * [ der Code bis zur nächsten ] wird nur ausgeführt, wenn die aktuelle Speicherzelle ungleich Null ist   * [ der Code bis zur nächsten ] wird nur ausgeführt, wenn die aktuelle Speicherzelle ungleich Null ist
   * ] springt zurück zur zugehörigen [   * ] springt zurück zur zugehörigen [
-  * . gibt die aktuelle Speicherzelle aus (in ASCII Kodierung) +  * . gibt die aktuelle Speicherzelle auf die Konsole aus (in ASCII-Kodierung) 
-  * , ließt ein Zeichen in die aktuelle Speicherzelle ein+  * , liest ein Zeichen von der Konsole in die aktuelle Speicherzelle ein
  
-Auch wenn es auf den ersten Blick etwas schwer vorstellbar ist, so konnte man doch zeigen, dass brainfuck Turing-komplett ist. Es lassen sich die grundlegenden logischen Operationen durchführen und somit alle Berechnungen ausführen, die mit heutigen Computern möglich sind (entsprechend viel Speicher vorausgesetzt).+Auch wenn es auf den ersten Blick etwas schwer vorstellbar ist, so konnte man doch zeigen, dass brainfuck [[http://www.esolangs.org/wiki/Turing-complete|Turing-komplett]] ist. Es lassen sich die grundlegenden logischen Operationen durchführen und somit alle Berechnungen ausführen, die mit heutigen Computern möglich sind (entsprechend viel Speicher vorausgesetzt).
  
  
-=== Der Compiler Prainfucked === +===== Der Compiler Prainfucked =====
-**Prainfucked** ist eine von Daniel Mewes eigens für den Portfolio angepasste Version des Brainfuck Compilers [[http://home.arcor.de/partusch/html_de/bfd.html|Brainfucked]]. +
-Der Compiler ist kompiliert weniger als ein Kilobyte groß. Er unterstützt eine grundlegende Syntaxprüfung und optimiert den brainfuck Quellcode in Hinsicht auf Codegröße und Geschwindigkeit.+
  
-Prainfucked wird mit vollständigem Quellcode (Assembler, GNU GPL lizensiert) angeboten und kommt in zwei verschiedenen Versionen: +**Prainfucked** ist eine von Daniel Mewes eigens für den Portfolio angepasste Version des Brainfuck-Compilers [[http://home.arcor.de/partusch/html_de/bfd.html|Brainfucked]] von Stefan Partusch
-Dem Compiler "pfd.com", der in die erzeugten Programme eine Laufzeitprüfung einbettet, die verhindert, dass die reservierten brainfuck Speicherzellen (22000 zu je ein Byte) verlassen werden. Andernfalls könnte es auf dem Portfolio zu einer Beschädigung der CRamdisk kommen+Der Compiler ist kompiliert weniger als ein Kilobyte groß. Er unterstützt eine grundlegende Syntaxprüfung und optimiert den brainfuck-Quellcode in Hinsicht auf Code-Größe und Geschwindigkeit.
-Der Compiler "pfd-nb.com" (nb = No Boundary checking) verzichtet auf diese Überprüfung und erhöht somit bei gut geprüften Programmen die Ausführungsgeschwindigkeit. Ein durchschnittliches brainfuck Programm läuft damit rund doppelt so schnell ab.+
  
-Das Archiv enthält außerdem noch einige freie Beispielprogrammezum Beispiel zur Berechnugn von Primzahlen oder zur Faktorisierung natürlicher Zahlen.+Prainfucked wird mit vollständigem Quellcode (für den [[wpde>NASM|Netwide Assembler]]GNU GPL Version 2-lizensiert) angeboten und kommt in zwei verschiedenen Versionen: 
 +Dem Compiler ''pfd.com'', der in die erzeugten Programme eine Laufzeitprüfung einbettet, die verhindert, dass die reservierten brainfuck-Speicherzellen (22.000 zu je ein Byte) verlassen werden. Andernfalls könnte es auf dem Portfolio zu einer Beschädigung der RAM-Disk C: kommen. 
 +Der Compiler ''pfd-nb.com'' (nb = "No Boundary Checking") verzichtet auf diese Überprüfung und erhöht somit bei gut geprüften Programmen die Ausführungsgeschwindigkeit. Ein durchschnittliches brainfuck-Programm läuft damit rund doppelt so schnell ab.
  
-Die im Moment aktuelle Version 1.1.1 kann unter [[http://danielmewes.dnsalias.net/~daniel/pf/|http://danielmewes.dnsalias.net/~daniel/pf]] heruntergeladen werden.+Das Archiv enthält außerdem noch einige freie Beispielprogramme, zum Beispiel zur Berechnung von Primzahlen oder zur Faktorisierung natürlicher Zahlen. 
 + 
 +Die im Moment aktuelle Version 1.1.1 kann unter [[http://danielmewes.dnsalias.net/~daniel/pf/]] heruntergeladen werden.
  
  --- //[[danielmewes@onlinehome.de|Daniel Mewes]] 24/10/2006 20:25//  --- //[[danielmewes@onlinehome.de|Daniel Mewes]] 24/10/2006 20:25//
software/diy/andere/prainfucked.1161715260.txt.gz · Zuletzt geändert: 26/10/2006 00:10 (Externe Bearbeitung)