Notation in 'Pearls of Functional Algorithm Design'

8

Ich habe gerade das Buch 'Pearls of Functional Algorithm Design' von Richard Bird gekauft. Leider enthält das Buch keinen Abschnitt, in dem die verwendete Notation beschrieben wird.

Sie können den Inhalt des Buches anzeigen, indem Sie auf die Amazon-Seite gehen und auf das Buchcover klicken, um einen Einblick in das Buch zu erhalten.

http://www.amazon.com/Pearls-Functional-Algorithm-Design-Richard/dp/0521513383

Wenn mir jemand einen Namen und / oder eine Referenz geben könnte, um die verwendete Notation zu verstehen. Auf diese Weise konnte ich die Algorithmen tatsächlich lesen und verstehen.

Philosoph
quelle

Antworten:

10

Er erwähnt im Vorwort, dass sich die Referenzprogramme in Haskell befinden. Die Formatierung ist LaTeX, daher sieht es etwas seltsam aus.

Ich habe noch ein bisschen gegraben und es stellt sich heraus, dass die verwendete mathematische Notation nach der Zermelo-Fraenkel-Mengen-Notation " Z-Notation " heißt . Hier ist eine Anleitung , PDF ist der zweite Link in der Liste. Die Notation ist Teil einer breiteren Art von Notation namens Pidgin Code :

Bei der Computerprogrammierung ist Pidgin-Code eine Mischung aus mehreren Programmiersprachen im selben Programm oder Pseudocode, eine Mischung aus einer Programmiersprache mit Beschreibungen natürlicher Sprachen. Daher der Name: Die Mischung ist eine Programmiersprache analog zu einem Pidgin in natürlichen Sprachen.

Bei der numerischen Berechnung wird der Pseudocode im mathematischen Stil manchmal als Pidgin-Code bezeichnet, z. B. Pidgin ALGOL (der Ursprung des Konzepts), Pidgin Fortran, Pidgin BASIC, Pidgin Pascal und Pidgin C. Es handelt sich um eine kompakte und häufig informelle Notation, die die verwendete Syntax miteinander verbindet aus einer herkömmlichen Programmiersprache mit mathematischer Notation, typischerweise unter Verwendung von Mengen- und Matrixoperationen und möglicherweise auch Beschreibungen natürlicher Sprachen.

Es kann von einer Vielzahl mathematisch geschulter Personen verstanden werden und dient zur Beschreibung von Algorithmen, bei denen die Kontrollstruktur auf einer ziemlich hohen Detailebene explizit dargestellt wird, während einige Datenstrukturen auf einer abstrakten Ebene unabhängig bleiben einer bestimmten Programmiersprache.

Normalerweise wird für die mathematischen Gleichungen ein Nicht-ASCII-Satz verwendet, beispielsweise mithilfe von TeX- oder MathML-Markups oder proprietären Formeleditorformaten.

Weltingenieur
quelle