Skip to main content

Lösen mathematischer Probleme

  • Chapter
Kausale Informatik
  • 120 Accesses

Zusammenfassung

Aus den Maschinenoperationen, letztendlich also aus den ALU-Operationen, können unter Verwendung der Maschinensprache beliebige arithmetische Operationen komponiert (programmiert) werden, m.a.W. der arithmetische Kalkül kann in den booleschen transformiert werden. Das Programmieren im internen Binärcode des Computers (in der intern codierten Maschinensprache) ist unangenehm und aufwendig. Es wird durch die Defmition und Implementierung von Assemblersprachen und von höheren Programmiersprachen erleichtert.

Eine Assemblersprache kann als “gehobene Maschinensprache” aufgefasst werden, denn sie stellt im Gegensatz zu höheren Programmiersprachen keine Erweiterung der intern codierten Maschinensprache dar, erlaubt aber die Verwendung von Bezeichnern für Operanden und Operationen, auch für Kompositoperationen, also für Programme. Das Übersetzerprogramm, das die Übersetzung von Programmen aus der Assemblersprache in den internen Code ausführt, heißt Assembler.

Höhere Programmiersprachen enthalten ausdrucksstärkere Sprachelemente für die Komponierung sowohl von Kompositoperanden, beispielsweise Vektoren oder Matrizen, als auch von Kompositoperationen. So sind für die Programmierung von Iterationen verschiedene Sprachelemente entwickelt worden, z.B. die WHILE-Anweisung. Ein Programm, das in einer höheren Programmiersprache geschrieben ist, muss in die Maschinensprache des Computers übersetzt werden, der das Programm abarbeiten soll.

Assemblersprachen und höhere Programmiersprachen dienen der Überwindung der “semantischen Lücke” zwischen der Sprache, in welcher der Programmierer normalerweise denkt und sich ausdrückt, und der Sprache, die der “sprachbegabte” (d.h. mit Übersetzerprogrammen ausgerüstete) Computer versteht. Damit dienen sie der Lösung des technischen Semantikproblems, d.h. der Anbindung der Nutzersemantik, also der externen oder formalen Semantik, in welcher der Nutzer denkt, an die interne Computersemantik, an die Prozesse im Computer. Die Anbindung lässt sich verhältnismäßig leicht bewerkstelligen, wenn der Nutzer (beispielsweise ein Mathematiker) in einem Kalkül denkt. Ihm fällt der Sprung über die semantische Lücke umso leichter, je verwandter seine Kalkülsprache der Sprache des Computers (der Programmiersprache) ist. Der Wunsch, die semantische Lücke zu verringern, ist der Motor der Entwicklung neuer Programmiersprachen.

Der Computer kann nicht nur numerische (zahlenmäßige), sondern auch analytische Rechnungen (Rechnungen mit Variablen) ausführen. Analytisches Rechnen besteht im Überführen analytischer Ausdrücke in andere Ausdrücke, z.B. (a + b)(ab) in (a2b2) oder sinx/cosx in tanx. Der Computer bedient sich beim analytischen Rechnen — ebenso wie gegebenenfalls der Mensch — einer Formelsammlung. Sie kann beispielsweise die “Formel” sinx/cosx = tanx enthalten. Das Gleichheitszeichen in einer Formel kann als zweiseitige Ergibtgleichung gelesen werden; die rechte Seite ergibt sich aus der linken und umgekehrt. Das Hantieren des Computers mit Formeln heißt Formelmanipulation.

Die wichtigsten Bausteinoperationen der Formelmanipulation sind das Suchen (es schließt Vergleichen ein) und das Substituieren. Um einen analytischen Ausdruck umzuformen, wird zunächst durch Vergleich nach einer Formel gesucht, die auf den umzuformenden Ausdruck anwendbar ist. Das ist dann der Fall, wenn der Ausdruck eine Teilzeichenkette enthält, die eine vom Kontext unabhängig ausführbare Anweisung darstellt und die mit der linken oder rechten Seite der Formel identisch ist oder durch Bezeichnerabgleich (geeignete Änderung der Bezeichner) identisch gemacht werden kann, sodass die Teilzeichenkette durch die andere Seite der Formel substituiert werden kann. Existiert eine solche Formel, wird die Substitution ausgeführt. Wenn mehrere Formeln gleichzeitig anwendbar sind, muss der Lösungsweg durch Versuchen gefunden werden, sodass das Rechnen zu einem nichtdeterministischen Prozess wird. Die Berechnungsvorschrift stellt einen nichtdeterministischen Algorithmus dar. Durch eine zusätzliche Vorschrift für die eindeutige Wahl der anzuwendenden Formel kann ein nichtdeterministischer Algorithmus in einen deterministischen überführt werden.

Programme der Formelmanipulation und des analytischen Rechnens werden vorteilhafterweise in funktionalen Programmiersprachen geschrieben. Das Übersetzen in eine Maschinensprache ist immer möglich. Auf diese Weise lässt sich jeder analytische Kalkül in den booleschen transformieren.

Der Mechanismus der Formelmanipulation ist auch dann anwendbar, wenn nicht analytische Ausdrücke gemäß mathematischer Formeln, sondern wenn beliebige Zeichenketten (Wörter) gemäß einer Liste von Substitutionsregeln umgeformt werden. Dann spricht man von Wortmanipulation. Durch einen deterministischen Manipulationsalgorithmus (samt Regelliste) wird eine eindeutige Abbildung aus einer gegebenen Eingabewortmenge in eine Ausgabewortmenge, also eine Funktion festgelegt. Die Klasse der durch deterministische Wortmanipulation berechenbaren Funktionen ist mit der Klasse der rekursiven Funktionen identisch.

Nicht nur das analytische, sondern auch das numerische Rechnen ist im Grunde ein Substituieren. Beispielsweise können die Zeilen des kleinen Einmaleins als Substitutionsregeln aufgefasst werden. Die Tätigkeit eines Computers ist immer ein Substituieren. Dabei arbeitet er niemals mit Bedeutungen, niemals mit externer Semantik, sondern ausschließlich mit Zeichenketten, er arbeitet nicht mit Idemen, sondern mit Realemen.

Mathematisches Operieren ist stets Deduzieren in einem Kalkül, d.h. numerisches oder analytisches Rechnen. Durch entsprechende Software kann der Computer befähigt werden, jede beliebige numerische oder analytische Rechnung und damit jede mathematische Operation auszuführen.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 119.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 129.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Deutscher Universitäts-Verlag GmbH, Wiesbaden

About this chapter

Cite this chapter

Jungclaussen, H. (2001). Lösen mathematischer Probleme. In: Kausale Informatik. Deutscher Universitätsverlag. https://doi.org/10.1007/978-3-322-81220-9_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-322-81220-9_17

  • Publisher Name: Deutscher Universitätsverlag

  • Print ISBN: 978-3-8244-2143-5

  • Online ISBN: 978-3-322-81220-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics