- Basic Calculator
-
Der Basic Calculator (kurz bc) ist eine eigene Rechensprache, die an die Syntax von C angelehnt ist. Das herausstellende Merkmal von bc ist die Fähigkeit, mit Gleitkommazahlen fast beliebig großer Genauigkeit zu rechnen; die Grenze liegt je nach Version bei mindestens mehreren tausend Stellen, meist aber bei mehreren Millionen bis Milliarden. bc verwendet nicht den Coprozessor oder eine andere Hardware-Gleitkommaeinheit eines Rechners, sondern arbeitet intern nur mit Ganzzahlen; die Gleitkommafähigkeit wird rein per Software hergestellt. Nur so kann die Sprache eine höhere Genauigkeit erreichen als in der Gleitkomma-Hardware vorgesehen ist. Allerdings ist bc damit auch prinzipbedingt wesentlich langsamer als eine Sprache, die Gleitkommaberechnungen direkt in der Hardware durchführt.
bc wird üblicherweise über eine Kommandozeile unter einem Unix-Derivat oder von anderen Programmen für komplexe Berechnungen verwendet. Das Ur-Programm ist POSIX bc; davon hat GNU eine eigene Version abgeleitet und erweitert, die heute häufiger benutzt wird. Beide Versionen können als mathematische Skriptsprache oder als interaktive Shell verwendet werden.
Inhaltsverzeichnis
POSIX bc
Die von POSIX standardisierte bc-Sprache setzt auf dc auf und ermöglicht so, die Fähigkeiten der dc-Sprache mit einer einfacheren Eingabe-Syntax zu kombinieren. Anders gesagt ähnelt bc einem dc-Frontend mit zusätzlichen Funktionen, u.a. Variablen, Arrays, einigen arithmetischen Funktionen (die einzige integrierte ist sqrt(), Quadratwurzel, die anderen werden über die Standard-Bibliothek aufgerufen) sowie Schleifen-Konstrukte (if(Bedingung)..., while(Bedingung)... und for(init;Bedingung;inc)), die oft an C angelehnt sind.
Funktionen werden mit define erstellt; mit return kann innerhalb dieser ein Rückgabewert definiert werden.
GNU bc
GNU Basic Calculator Entwickler GNU Aktuelle Version 1.06
(16. November 2000)Betriebssystem alle POSIX-kompatiblen Kategorie Rechenprogramm Lizenz GPL Deutschsprachig nein gnu.org/software/bc/ GNU bc ist ein Fork von POSIX bc und beinhaltet viele Verbesserungen. Es baut nicht mehr auf dc auf, sondern ist stattdessen in C geschrieben. Dennoch ist es kompatibel zu POSIX bc, d.h. alle POSIX bc-Programme laufen auf GNU bc, aber nicht unbedingt umgekehrt.
Unter anderen können Variablen, Funktionen, Arrays mehr als ein Zeichen lang sein und die If-Abfrage beinhaltet in GNU bc eine else-Klausel.
Neben der Standard-Ausgabemethode verfügt GNU bc über eine p-Funktion (print). Zusätzlich von den Standard-C-Kommentaren (/* */), die auch in POSIX bc möglich sind, gibt es in GNU noch #-Zeichen, um einzeilige Kommentare einzuleiten.
Beispiel
Dieses Beispiel definiert eine Prozedur, welche rekursiv die Zahlen von 1 bis x aufmultipliziert.
define fact (x) { if(x < 1) return 1 return (x*fact(x-1)) }
Durch Eingabe von
fact(10)
erhält man damit das Produkt der ganzen Zahlen von 1 bis 10 (3628800).
Siehe auch
Weblinks
Kategorien:- Freie Mathematik-Software
- Skriptsprache
- Unix-Software
Wikimedia Foundation.