5.1. Programme |
![]() |
![]() |
Letztmalig dran rumgefummelt: 07.08.24 11:55:32 |
![]() |
Ein Programm
ist die Umsetzung eines Algorithmus und der zugehörigen Datenbereiche in
eine Programmiersprache. Während Algorithmen relativ allgemein beschrieben
werden können, sind Programme wesentlich konkreter. Nach DIN 44300 ist ein Programm eine „nach den Regeln der verwendeten Programmiersprache festgelegte syntaktische Einheit aus Anweisungen und Vereinbarungen, welche zur Lösung einer Aufgabe notwendige Elemente umfasst“. Eng mit dem Programm verknüpft sind Begriffe wie: Algorithmus, Daten, Datei, Variablen Datentypen, Resultate, Software. Nicht unbedingt ist der Begriff des Programms an den Computer gebunden (wenngleich er heute meist damit im Zusammenhang zu sehen ist!!!), so gibt es Veranstaltungsprogramme, das Fernsehprogramm (wahrscheinlich das bekannteste), selbst der Fahrplan der Bundesbahn repräsentiert ein Programm eine Folge von Schritten (deren Ablauf) nach einer geplanten Reihenfolge. |
|||||||
![]() |
0.
Software-Life-Cycle |
|||||||
![]() |
|
|||||||
![]() |
Quellen:
|
|||||||
![]() |
Haupteigenschaften von Programmen:
Die konsequente Anwendung dieser Prinzipien führt zur Methode der schrittweisen Verfeinerung bzw. der strukturierten Programmierung oder aber der Methode Top-Down ;-) |
|||||||
![]() |
|
0. Software-Life-Cycle |
![]() |
![]() |
![]() |
![]() |
Der Software-Life-Cycle beschreibt das Verfahren von der Idee über die Formulierung der Teilprobleme bis hin zum test und zur Verifikation. | |||||||||||||||||||||||||||||||||||
![]() |
Software-Lifecycle bei Microsofts Entwicklung von Visual Studio 2005 |
|||||||||||||||||||||||||||||||||||
![]() |
ein und derselbe Algorithmus kann in
verschiedenen Programmiersprachen geschrieben werden; er bildet eine
Abstraktion aller Programme, die ihn beschreiben - das demonstrieren wir
hier für einen sehr einfachen Algorithmus in verschiedenen
Programmier-Plattformen:
2 Vom Problem bis zur Lösung |
|||||||||||||||||||||||||||||||||||
![]() |
eine Ausarbeitung aus dem Jahre 1993 unter Mitarbeit von Schülern des
Gymnasiums Flöha stellen wir
![]() |
1. Definition |
![]() |
![]() |
![]() |
![]() |
Ein Programm enthält die für die für die Arbeit eines Datenverarbeitungssystems erforderlichen Arbeitsanweisungen in Form von Befehlen bzw. Anweisungen. Formal entspricht jedes Programm einem endlichen Algorithmus, durch den die zu lösende Aufgabe bis in die letzte Einzelheit eindeutig und für den Rechner nachvollziehbar beschrieben ist. Die auf einem Rechnern benutzten Programme werden eingeteilt in Systemprogramme (Betriebssysteme) und Anwendungsprogramme. Je nach Art der für die Programmierung verwendeten Programmiersprachen werden die Primärprogramme nach der Erstellung, die in einer symbolischen Porgrammiersprache erfolgt, in die Maschinensprache übersetzt, wobei durch Compiler Objektprogramme entstehen, die beliebig oft wiederholt werden können, während beim Einsatz von Interpretern mit der Übersetzung auch gleich die Ausführung erfolgt. soll hierbei mehrmals dasselbe Programm verwendet werden, so muss es jedes mal wieder gleichzeitig neu übersetzt werden. Hinsichtlich der Form, in der ein Programm vorrätig gehalten wird, unterscheidet man frei programmierbare Programme, die nach Belieben geändert werden können, und Festprogramme, die in Festspeichern enthalten sind, aber keine oder nur mit bestimmten Methoden mögliche Änderungen zulassen. Die Gesamtheit aller auf einem Rechner verwendeten frei programmierbaren Programme wird in der Programmbibliothek vorrätig gehalten, die sich auf einem externen Speicher befindet, von dem die jeweils benötigten Arbeitsprogramme in den Arbeitsspeicher geladen werden. Die Gesamtheit aller Programme wird mit dem Begriff Software bezeichnet. |
![]() |
einen ersten Versuch gibt's hier |
![]() |
Programme besitzen folgende Eigenschaften:
|
![]() |
ein und derselbe Algorithmus kann in verschiedenen Programmiersprachen geschrieben werden; er bildet eine Abstraktion aller Programme, die ihn beschreiben. |
![]() |
eine Ausarbeitung aus dem Jahre 1993 unter Mitarbeit von Schülern des
Gymnasiums Flöha stellen wir
![]() |
2. Zustände eines Programms |
![]() |
![]() |
![]() |
![]() |
Streng unterschieden werden muss hier unabhängig von der Programmiersprache, in welcher Form das Programm aktuell betrachtet jeweils gerade vorliegt. Das Entwicklungszeitraster ist etwas ganz anderes als das Compiler- oder gar das Laufzeitraster. Interpreter nehmen hier eine Zwischenstellung ein. | ||||||||||||
![]() |
|
||||||||||||
![]() |
Programmzustandstabellen Z80
Programmzustandstabellen |
3. Compiler und Interpreter |
![]() |
![]() |
![]() |
![]() |
Natürlich begeben wir uns hier ins Reich der heiligen Kühe (wieder mal). Natürlich einigen wir uns darauf, dass ein Compilersytem eine Mehrheit an Vorteilen bietet, dass aber ein interpretatives System eben auch seine guten Seiten hat - und, nun kommt's: Nutzen nicht auch Compilersyteme so etwas "Primitives" wie Breakpoints? Richtig ein interpretatives System, bis eine definierte Stelle erreicht wurde, oder diese nicht erreicht werden kann, da Fehler im Programm? Das übrigens Interpreter eine Reihe von Fragen offen lassen, liegt nicht an der Philosophie des Systems an sich, sondern daran, dass sie schlecht oder unbedacht bezüglich Worst-Case gemacht sind. Niemand hätte Bill Gates daran hindern können, einen Interpreter zu schreiben, in welchem auch die Variablen einschließlich ihrer Datentypen deklariert werden müssen. |
![]() |
Ist ein Übersetzerprogramm, der einen Programmtext in eine, dem Computer verständliche Sprache (Maschinensprache) übersetzt. Nach dem Lauf des Compilers liegt unser Programm genau zweimal im Hauptspeicher des Computers. Nämlich einmal als Quelltext, einmal als Maschinenprogramm. Das ist die Sprache, welche letztendlich als Befehl vom jeweiligen Prozessor verstanden und abgearbeitet werden kann. Ist die Hochsprache selbst frei für die jeweilige Plattform, so ist es der betreffende Compiler nicht mehr, denn er übersetzt direkt in die Zielsprache. |
![]() |
Das Gegenstück eines Compilers ist ein Interpreter. Hier werden jeweils Programmzeilen übersetzt und anschließend sofort ausgeführt. Das bringt insbesondere bei der Programmentwicklung Vorteile. Beide haben Vor- und Nachteile, wenn es allerdings um Geschwindigkeit geht, ist ein Compiler immer die effektivere Lösung. |
4. Anforderungen an ein Programm |
![]() |
![]() |
![]() |
![]() |
Gut entwickelte Programme ...
Demgegenüber werden auch Sie nach kurzer Zeit feststellen, dass dies einfach und logisch klingt, jedoch gar nicht so einfach realisierbar ist! |
![]() |
![]() Programmiersprachen für Informatik-Leistungskurse Gymnasium Sachsen ab 2025 |
5. Programm-Dokumentation |
![]() |
![]() |
![]() |
![]() |
Eines der wichtigsten Programm-Beschreibungsmöglichkeiten sind Ablaufpläne sowie Struktogramme. | ||||||||||||
![]() |
|
6. Maschinenprogrammierung |
![]() |
![]() |
![]() |
![]() |
So zu sagen eine Extremsportart - auf der untersten Ebene genau so zu programmieren, wie der Mikroprozessor wirklich arbeitet. Das erzeugt die schnellsten Echtzeitsysteme, hat allerdings den entscheidenden Nachteil, dass man in der Hardware und Software-Entwicklung wirklich tief drin stecken muss. Solche Leute wurde vor Jahren noch immer weniger gebraucht, derzeit ist die Zahl wieder steigend, was durch den Einsatz von Microcontrollern bewirkt wird. | ||||||||||||||||||
![]() |
nur für ganz Ausdauernde zeigen wir hier, wie man die Maschinen-Programmierung erlernen kann und sich seinen maschinenprogrammierbaren Computer im Extremfalle selbst bastelt | ||||||||||||||||||
![]() |
|
||||||||||||||||||
![]() |
|
7. Echtzeitverhalten und Echtzeitsysteme |
![]() |
![]() |
![]() |
![]() |
Das ist eine Extremforderung an Software, welche mit genau dafür zugeschnittener Hardware ein Maximum an Effizienz, ein Minimum an Redundanz und damit wiederum ein Minimum an Rechenzeit zu erreichen sucht. Es gilt hier, in extrem kurzer Zeit auf Ereignisse von außen angemessen zu reagieren (also auch nicht über zu reagieren). Echtzeitsysteme haben wir zu Hause, in der Industrie, der Weltraumfahrt - überall dort, wo extrem schnell auf Einflüsse reagiert werden muss. |
![]() |
8. Verwandte Themen |
![]() |
![]() |
![]() |
![]() |
Programme sind neben der Hardware wohl die wichtigste und so ganz nebenbei auch teuerste Komponente beim Computereinsatz. Gern wird dieser Umstand vernachlässigt und in Größenordnungen wird geklaut. Dabei ist ein Unrechtsbewusstsein in Deutschland kaum ausgeprägt und folgerichtig ist Software in Deutschland um Größenordnung teurer als in umliegenden europäischen Staaten. | ||||||||||||
![]() |
|
||||||||||||
![]() |
|
||||||||||||
![]() |
|
||||||||||||
![]() |
|
||||||||||||
![]() |
|
||||||||||||
![]() |
|
||||||||||||
![]() |
|
![]() zur Hauptseite |
© Samuel-von-Pufendorf-Gymnasium Flöha | © Frank Rost im Oktober 2007 |
... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-) „Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“ Diddi Hallervorden, dt. Komiker und Kabarettist |
Diese Seite wurde ohne Zusatz irgendwelcher Konversationsstoffe erstellt ;-) |