Informatik für Berufliche Gymnasien Peter K. Siebert 1. Ausgabe, 2016 ISBN 978-3-86249-496-5 Grundlagen der strukturierten und objektorientierten Programmierung (Visual Basic) BS-BG-VB2015 Impressum ISBN 978-3-86249-496-5 Matchcode: BS-BG-VB2015 Autor: Peter K. Siebert Studiendirektor und Fachlehrer für Informatik und Physik Produziert im HERDT-Digitaldruck 1. Ausgabe, 2016 HERDT-Verlag für Bildungsmedien GmbH Am Kümmerling 21–25 55294 Bodenheim Internet: www.herdt.com E-Mail: [email protected] © HERDT-Verlag für Bildungsmedien GmbH, Bodenheim Alle Rechte vorbehalten. Kein Teil des Werkes darf in irgendeiner Form (Druck, Fotokopie, Mikrofilm oder einem anderen Verfahren) ohne schriftliche Genehmigung des Verlags reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. Dieses Buch wurde mit großer Sorgfalt erstellt und geprüft. Trotzdem können Fehler nicht vollkommen ausgeschlossen werden. Verlag, Herausgeber und Autoren können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Wenn nicht explizit an anderer Stelle des Werkes aufgeführt, liegen die Copyrights an allen Screenshots beim HERDT-Verlag. Sollte es trotz intensiver Recherche nicht gelungen sein, alle weiteren Rechteinhaber der verwendeten Quellen und Abbildungen zu finden, bitten wir um kurze Nachricht an die Redaktion. Die in diesem Buch und in den abgebildeten bzw. zum Download angebotenen Dateien genannten Personen und Organisationen, Adress- und Telekommunikationsangaben, Bankverbindungen etc. sind frei erfunden. Eventuelle Übereinstimmungen oder Ähnlichkeiten sind unbeabsichtigt und rein zufällig. Die Bildungsmedien des HERDT-Verlags enthalten Verweise auf Webseiten Dritter. Diese Webseiten unterliegen der Haftung der jeweiligen Betreiber, wir haben keinerlei Einfluss auf die Gestaltung und die Inhalte dieser Webseiten. Bei der Bucherstellung haben wir die fremden Inhalte daraufhin überprüft, ob etwaige Rechtsverstöße bestehen. Zu diesem Zeitpunkt waren ­keine Rechtsverstöße ersichtlich. Wir werden bei Kenntnis von Rechtsverstößen jedoch umgehend die entsprechenden Internetadressen aus dem Buch entfernen. Die in den Bildungsmedien des HERDT-Verlags vorhandenen Internetadressen, Screenshots, Bezeichnungen bzw. Beschreibungen und Funktionen waren zum Zeitpunkt der Erstel­lung der jeweiligen Produkte aktuell und gültig. Sollten Sie die Webseiten nicht mehr unter den angegebenen Adressen finden, sind diese eventuell inzwischen komplett aus dem Internet genommen worden oder unter einer neuen Adresse zu finden. Sollten im vorliegen­den Produkt vorhandene Screen­shots, Bezeichnungen bzw. Beschreibungen und Funktionen nicht mehr der beschrie­benen Software entsprechen, hat der Hersteller der jeweiligen Software nach Drucklegung Änderungen vorgenommen oder vorhandene Funktionen geändert oder entfernt. Bildquellenverzeichnis 2 Seite 5 casually-dressed-mature-businessmen, © iStock/peepo Seite 115 euro money,wallet,hands, © iStock/Manuela Krause Seite 117 Software Architecture Class Diagram, © iStock/Jim Mangione © HERDT-Verlag Vorwort Willkommen zum Schülerbuch „Informatik für Berufliche Gymnasien“. Der vorliegende Band führt in die Grundlagen der strukturierten und objekt­orientierten Programmierung mit ­Visual Basic ein. Jedes Kapitel beginnt mit einer Einstiegssituation, die an die Erfahr­ungs­welt der Schülerinnen und Schüler anknüpft und als Rahmenhandlung im Kapitel weiter­geführt wird. Für das Erlernen der Inhalte werden handlungsorientierte Techniken eingesetzt, die die Inhalte und Methoden der Infor­matik anwendungsbezogen darstellen. Zudem enthält jedes Kapitel Sach­informa­tionen und darauf abge­stimmte Handlungsaufträge, die einen tieferen Bezug zum Lerninhalt her­stellen. Als weitere Elemente unterstützen „Merke“, „Hinweise“ und „Tipps“ die pädagogische Aufbereitung der Sach­informationen. Die Aufgaben am Ende eines Kapitels festigen und trans­ferieren das Erlernte auf einfache und komplexere Aufgabenstellungen. Ein Symbol in der Randspalte verweist auf Dateien, die im Lehrermedienpaket hinterlegt sind und den Schülerinnen und Schülern an einem zentralen Speicherort zur Verfügung gestellt werden sollten. Um das Lehrermedienpaket herunterzuladen, gehen Sie auf www.herdt.de und geben den auf der Titelseite abgedruckten Webcode in das gleichnamige Eingabefeld ein. Wenn in diesem Buch lediglich die männliche Form (z. B. Schüler) verwendet wird, so dient dies einzig und allein der sprachlichen Vereinfachung. Der Autor bedankt sich beim HERDT-Verlag für die freundliche Betreuung und Unterstützung beim Entstehen dieses Schülerbuchs. Ebenso bedanke ich mich bei allen Schülerinnen und Schülern für ihre konstruktive Zusammenarbeit. Peter K. Siebert © HERDT-Verlag 3 1 Grundlagen der strukturierten ­ Programmierung 1.2 Analyse und Definitionen durchführen Zur Definitionsphase gehören die genaue Kenntnis und das vollständige Verständnis des zu lösenden Problems. Dies setzt in der Regel voraus, dass entweder der Programmentwickler das Fachgebiet, aus dem das Problem stammt, in hinreichendem Maße beherrscht oder dass er mit einem Fachmann aus diesem Gebiet zusammenarbeitet. Die Planer recherchieren vor Ort, analysieren Arbeitsabläufe und formulieren daraus einen Spezifikationsrahmen, der in einem Projektauftrag dargelegt wird. Der Projektauftrag ist ein Verzeichnis der Anforderungen an das Softwaresystem, z. B. an die Hardware und an die Durchführung dieses Projekts, der zu erwartenden Kosten und der festgelegten Termine bei der Entwicklung der Software. In einem Kick-off-Meeting analysieren Herr Lindemann und zwei seiner Mitarbeiter, Frau Kern und Herr Gröhner, die Anforderungen an das Softwareprojekt Elektronischer Fragebogen und die entsprechenden ­Spezifikationen. In ­einem Brainstorming wurden folgende Eckpunkte für das ­Softwareprojekt spezifiziert und in einer Mindmap festgehalten: Handlungsauftrag Beschreiben Sie in Gruppenarbeit anhand der oben stehenden Mindmap, der Informationen aus der Einstiegssituation und der E-Mail-Korrespondenz zu dem Bewertungsschema einen Projektauftrag für den elektronischen Fragebogen. Projektauftrag.docx und Bewertungs­schema. msg 8 Die E-Mail-Korrespondenz befindet sich als Outlook-Element Bewertungsschema.mgs im Lehrermedienpaket. Als roten Faden können Sie dazu aus dem Lehrermedienpaket das Word-Dokument Projektauftrag.docx ­verwenden. © HERDT-Verlag Entwurfsmethoden anwenden 1.3 Entwurfsmethoden anwenden Aufgrund des Projektauftrags kann der elektronische Fragebogen entworfen werden. In den meisten Fällen wird der Entwurf mit Blick auf die verfügbaren Ressourcen, z. B. Anwendungssoftware oder Programmiersprache, umgesetzt. In der Planungsphase muss das zu erarbeitende Softwaresystem überschaubar gemacht ­werden, d. h., das zu lösende Problem wird in seiner Komplexität reduziert und in Teil­ probleme zerlegt, die gegebenenfalls. in weitere Teilprobleme untergliedert werden. Hierbei ist ­darauf zu ­achten, dass diese Teilprobleme möglichst unabhängig voneinander bestehen, damit jedes T ­ eilproblem dann weitgehend für sich allein gelöst werden kann. Das Gesamtproblem kann also ­weitgehend arbeitsteilig gelöst werden und es kann später auf bestehende Teillösungen zurückgegriffen werden. Die Zerlegung eines komplexen Problems in untergeordnete Teilprobleme und deren weiter gehende Zerlegung bis in kleinste, überschaubare Teilprobleme wird häufig als Methode der schrittweisen Verfeinerung oder als Top-down-Design bezeichnet, wie es die nachfolgende Grafik zeigt. Ab einem bestimmten Problemumfang ist diese Methode unumgänglich. Die Entwurfsphase reicht bis zu dem Punkt, an dem die Umsetzung der Ideen in die Realität notwendig ist (Realisierung). Handlungsauftrag Erstellen Sie in Gruppenarbeit mithilfe der Methode der schrittweisen Verfeinerung einen Projektstrukturplan in Form eines Baumdiagramms, der das Softwareprojekt in logische Module zerlegt. Als Orientierungshilfe können Sie die Aufzeichnungen von Herrn Lindemann verwenden, die er zum Entwurf der Benutzungsoberfläche des elek­ tronischen Fragebogens erstellt hat. Sie finden seine Aufzeichnungen unter Benutzer­ oberflaeche Fragebogen.png im Lehrermedienpaket. © HERDT-Verlag Benutzungs­ oberfläche Frage­ bogen.png 9 1 Grundlagen der strukturierten ­ Programmierung 1.4 Realisierung Ziel der Realisierungsphase ist die programmtechnische Lösung der einzelnen ­Teilprobleme. Die Fertigstellung der einzelnen Module wird nicht immer arbeitsteilig gleichzeitig ­geschehen, sondern teilweise nacheinander, sodass zeitweise Module bereits fertiggestellt sind, während andere Module nur als Idee bestehen. Im Folgenden werden die theoretischen Grundlagen der Algorithmusentwicklung anhand von exemplarischen Beispielen dargelegt. Dieses Wissen kann dann auf das Softwareprojekt der Einstiegssituation angewandt werden. 1.4.1 Algorithmen entwickeln Beispiel Suchen eines Elements in folgender Zahlenkette: Mithilfe eines Rechners soll in der dargestellten Zahlenkette ein bestimmtes Element, z. B. die Zahl 8, gefunden werden. Dieses Problem taucht in der Praxis recht häufig auf. Man denke an die Suche nach Telefon­ nummern in einem Telefonbuch oder nach bestimmten Einträgen innerhalb von Daten­ banken. Damit man mithilfe des Rechners dieses und andere Probleme lösen kann, muss eine detaillierte Verfahrensvorschrift erarbeitet werden, die die Arbeitsfolge und die Arbeitsschritte für den Rechner eindeutig und ausführbar festlegt. Eine solche Arbeitsvorschrift bezeichnet man als Algorithmus. Merke Das Wort Algorithmus ist vom Namen des arabischen Gelehrten Muhammed Ibn Musa Al-Chwarizmi abgeleitet, der um 820 n. Chr. das damals in Europa weit­gehend unbekannte Dezimalzahlensystem und Verfahren zur Ausführung der Grundrechenarten ­beschrieben hat. Die lateinische Übersetzung seines Buches bewirkte ab 1200 n. Chr. die Einführung der heute üblichen Rechenverfahren. Die Entwicklung geeigneter Algorithmen ist der schwierigste Teil der ­Softwareentwicklung. Dies ist ein kreativer Prozess, der ähnlich wie die Erschaffung von Kunstwerken nur in ­begrenztem Maße erlernbar ist. Als einfache Problemlösungsmöglichkeit bietet sich für unsere Problemstellung das Suchen durch fortlaufendes Vergleichen der Elemente mit dem gesuchten Element an. Folgende ­Arbeitsanweisungen lassen sich für diese Problemstellung umgangssprachlich beschreiben: 10 © HERDT-Verlag Realisierung XX Man nehme das erste und alle nachfolgenden Elemente der Zahlenkette und vergleiche sie jeweils mit dem gesuchten Element. XX Man führe dies so lange durch, bis das gesuchte Element gefunden wurde oder das Ende der Zahlenkette erreicht ist. XX Falls man das gesuchte Element gefunden hat, gebe man den Platz dieses Elements innerhalb der Zahlenkette aus. Andernfalls gebe man den Text Nicht gefunden aus. Diese umgangssprachliche Verfahrensvorschrift ist für eine direkte Umsetzung auf einen Rechner noch zu ungenau, so fehlt z. B. eine Anweisung, wie man von einem Element zu ­einem anderen Element gelangt. Es müssen bei einer Umsetzung auf ein Computersystem an die einzelnen Arbeitsanweisungen strengere Anforderungen gestellt werden als an Arbeitsanweisungen, die eine Person ausführen soll. Merke Ein Algorithmus ist eine eindeutige Beschreibung eines allgemeinen endlichen Verfahrens zur Ermittlung gesuchter Größen aus gegebenen Größen. 1.4.2 Algorithmen beschreiben Beim Erarbeiten von Algorithmen zeigt sich, dass bestimmte Grundoperationen, auch Elementaralgorithmen genannt, immer wieder auftauchen oder dass sich Algorithmen aus diesen Grundoperationen zusammensetzen lassen. Es liegt nahe, diese mit grafischen Symbolen zu beschreiben. Als eine übersichtliche grafische Darstellungsform hat sich das Struktogramm nach Nassi-Shneiderman (DIN 66 261) bewährt. Aus folgenden Elementen kann sich ein Struktogramm zusammensetzen: Sequenz Eine Abfolge von Anweisungen wird als Sequenz bezeichnet und in einer rechteckigen Box dargestellt. Die Anweisungen werden von oben nach unten abgearbeitet. Schema Beispiel Anweisung 1 Einlesen einer Zahl Anweisung 2 Erhöhen der Zahl um 1 Anweisung 3 Ausgabe Zahl Erklärung: Die Abfolge der drei Anweisungen liest Zahl ein, erhöht Zahl um 1 und gibt die geänderte Zahl aus. © HERDT-Verlag 11 1 Grundlagen der strukturierten ­ Programmierung Verzweigung oder auch Entscheidungsanweisung Ist die Bedingung wahr, wird Block 1 ausgeführt, andernfalls Block 2. Ein Block kann dabei aus mehreren Anweisungen bestehen oder auch leer sein. Schema Beispiel Bedingung Ja Zahl > 5 Nein Block 1 Block 2 Ja Nein Ausgabe von Zahl Erhöhe Zahl um 5 Erklärung: Ist Zahl größer als 5, dann wird Zahl ausgegeben, andernfalls wird Zahl um 5 erhöht. Mehrfachauswahl In Abhängigkeit von einem gegebenen Wert wird ein entsprechender Block für die ­weitere Verarbeitung ausgewählt. Trifft keine Auswahl zu, so kann durch einen Block eine eindeutige Reaktion der Mehrfachauswahl hervorgerufen werden. Schema Beispiel Wert =1 =2 =3 Block 1 Block 2 Block 3 Zahl sonst Block 4 =1 =2 =3 Erhöhe Zahl um 1 Erhöhe Zahl um 10 Erhöhe Zahl um 100 sonst Ende Erklärung: Abhängig davon, welchen Wert Zahl hat – ob 1, 2 oder 3 –, wird der Wert von Zahl im ausgewählten Block um den entsprechenden Wert erhöht. Andernfalls wird die Mehrfachauswahl beendet. Wiederholung ohne Bedingungsprüfung oder auch Zählschleife Ähnlich einem Rundenzähler werden bei einer Zählschleife die Anweisungen so oft wiederholt, bis ein vorgegebener Endwert erreicht wird. Zu Beginn wird die Laufanweisung auf ­einen vorgegebenen Startwert gesetzt. In der Regel erhöht sich der Rundenzähler um den Wert 1. Schema Laufanweisung Anweisungen Beispiel Für Zahl = 1 bis 10 wiederhole Ausgabe von Zahl Erklärung: Zahl durchläuft ganzzahlig die Werte von 1 bis 10. Die Zwischenwerte 1, 2, 3 bis 10 werden jeweils ausgegeben. 12 © HERDT-Verlag Realisierung Wiederholung mit vorausgehender Bedingungsprüfung oder auch kopfgesteuerte ­Schleife Bevor die Wiederholungsanweisungen durchgeführt werden, wird geprüft, ob die ­Bedingung für die Wiederholung noch erfüllt ist. Ist dies nicht der Fall, werden die ­Wiederholungsanweisungen nicht durchgeführt. Schema Bedingung Beispiel Solange Zahl <= 10 wiederhole Anweisung Ausgabe von Zahl Anweisung Erhöhe Zahl um 1 Erklärung: Solange der Wert von Zahl <= 10 ist, werden folgende Wiederholungsanweisungen durchgeführt: Ausgabe von Zahl und anschließende Erhöhung des Wertes von Zahl um 1. Die fortlaufende Ausgabe und Erhöhung von Zahl wird dann abgebrochen, wenn der Wert von Zahl größer als 10 ist. Wie bei der Wiederholung ohne Bedingungsprüfung durchläuft Zahl ganzzahlig die Werte von 1 bis 10. Vorausgesetzt wird hierbei, dass Zahl zu Beginn der Wiederholungsanweisung den Anfangswert 1 hat. Wiederholung mit nachfolgender Bedingungsprüfung oder auch fußgesteuerte Schleife Die Bedingungsprüfung für die Wiederholungsanweisungen steht bei dieser Wieder­ holungsart am Ende. Das bedeutet, dass die Wiederholungsanweisungen mindestens ­einmal abgearbeitet werden, bis die Bedingungsprüfung entscheidet, ob die Anweisungen wiederholt werden oder nicht. Schema Beispiel Anweisung Ausgabe von Zahl Anweisung Erhöhe Zahl um 1 Bedingung Wiederhole bis Zahl > 10 Erklärung: Auch hier durchläuft Zahl ganzzahlig die Werte von 1 bis 10. Die fortlaufende Ausgabe von Zahl wird abgebrochen, sobald der Wert von Zahl größer als 10 ist und die Bedingung am Wiederholungsende nicht mehr erfüllt ist. Auch hier muss Zahl zu Beginn der Wiederholungsanweisung den Anfangswert 1 besitzen. © HERDT-Verlag 13 1 Grundlagen der strukturierten ­ Programmierung Fortsetzung des Beispiels Grafische Darstellung für das Suchen eines Elements in einer Zahlenkette: Das Durchsuchen der Zahlenkette nach der gesuchten Zahl lässt sich mithilfe des sequenziellen Suchverfahrens durchführen, das Element für Element in der Reihenfolge der Speicherung durchsucht, bis das Element gefunden wird und der Platz ausgegeben werden kann. Für das angeführte Beispiel lässt sich folgendes Struktogramm darstellen: Eingabe von ZAHLENKETTE Eingabe der GESUCHTEN ZAHL ANZAHL der Elemente von ZAHLENKETTE soll 5 sein PLATZ soll 0 sein Erhöhe PLATZ um 1 Wiederhole, bis der Wert des Elements von PLATZ gleich der GESUCHTEN ZAHL ist oder PLATZ größer als ANZAHL ist. PLATZ <= ANZAHL Ja Nein Ausgabe PLATZ Ausgabe "nicht gefunden" Dieses Beispiel zeigt, dass es in einem Struktogramm möglich ist, die jeweiligen Grundoperationen beliebig zu schachteln bzw. aneinanderzureihen. Die äußere Begrenzung des Struktogramms bleibt jedoch ein Rechteck. Die Struktur des Algorithmus hebt sich deutlich hervor. Handlungsauftrag Erstellen Sie in Partnerarbeit ein Struktogramm für das Softwareprojekt ­Elektronischer Fragebogen, das in seiner Grobstruktur die Arbeitsweise dieses Softwareprodukts ­darstellt. Das Struktogramm soll dann in den nachfolgenden Kapiteln schrittweise ­verfeinert werden. 14 © HERDT-Verlag Realisierung 1.4.3 Objekte darstellen Bei der bisherigen Betrachtung von Algorithmen wurde die Struktur des Verfahrensablaufs in den Vordergrund gestellt. Unklar und unübersichtlich war die Darstellung der Objekte, auch Daten genannt, die mithilfe eines Algorithmus bearbeitet bzw. manipuliert werden. Häufige Objekte von Algorithmen sind Zahlen oder einzelne Zeichen (engl. Characters). ­Diese können bestimmte Werte annehmen, z. B. von –32768 bis +32767 oder von a bis z, und es bestehen bestimmte Ordnungsrelationen. So ist 1 kleiner als 4 oder a kleiner als d. Zahlen und Zeichen gehören zur Gruppe der einfachen Objekttypen. Komplexe Objekte werden aus einfachen Objekten zusammengesetzt. So ergibt die Aneinanderreihung von Zeichen den neuen Datentyp Text, auch als Zeichenkette (engl. String) bezeichnet. Werden mehrere Werte des gleichen Datentyps unter einem Namen zusammengefasst, so spricht man von einem neuen Datentyp, den man als Datenfeld (engl. Array) bezeichnet. Mithilfe eines Indexwerts kann dann auf bestimmte Werte zugegriffen werden. Merke In der strukturierten Programmentwicklung ist ein Objekt durch einen Wert, einen ­Bezeichner (Namen) und einen Datentyp charakterisiert. Können die Werte eines Objekts zur Programmlaufzeit verändert werden, so spricht man von Variablen. Können die Werte eines Objekts zur Programmlaufzeit nicht mehr verändert ­werden, so spricht man von Konstanten. Häufig hängen die Art des Algorithmus und die Art des Objekttyps voneinander ab, so auch im angeführten Beispiel: PLATZ ist ein variables Objekt vom Datentyp Zahl. Es nimmt durch Manipulation des ­Algorithmus alle ganzzahligen Werte zwischen 0 und 6 an. ANZAHL ist ebenfalls ein variables Objekt vom Datentyp Zahl. Es nimmt den Wert 5 an, da ZAHLENKETTE in unserem Beispiel aus 5 Elementen besteht. © HERDT-Verlag 15 1 Grundlagen der strukturierten ­ Programmierung ZAHLENKETTE ist ein komplexes Objekt vom Datentyp Datenfeld Zahl. Es besteht aus einfachen Objekten vom Datentyp Zahl und kann insgesamt als ZAHLENKETTE oder in seinen Elementen als ZAHLENKETTE an der Stelle 1, 2, … n angesprochen werden. Häufig wird dafür die Abkürzung ZAHLENKETTE[n] verwendet. Das Abarbeiten des komplexen Objekttyps ZAHLENKETTE erleichtert die Grundoperation Wiederholung und umgekehrt. Mit diesen Vereinbarungen lässt sich das Struktogramm des angeführten Beispiels hinsichtlich der Variablen und deren Datentypen (in Klammern) vervollständigen: Variablen: PLATZ(Zahl), ANZAHL(Zahl), ZAHLENKETTE(Datenfeld Zahl) GESUCHTEN ZAHL(Zahl) Eingabe der GESUCHTEN ZAHL ANZAHL = 5 PLATZ = 0 Erhöhe PLATZ um 1 Wiederhole, bis Wert von ZAHLENKETTE[PLATZ] = GESUCHTEN ZAHL oder PLATZ > ANZAHL ist. PLATZ <= ANZAHL Ja Nein Ausgabe PLATZ Ausgabe "nicht gefunden" Handlungsauftrag Identifizieren und definieren Sie die variablen Objekte und deren Datentypen in dem in Kapitel 1.4.2 entwickelten Struktogramm des Softwareprojekts Elektronischer ­Fragebogen. Beschränken Sie sich nur auf einfache Objekte der Datentypen Zahl oder Text. Ergänzen Sie das Struktogramm wie im vorangegangenen Beispiel um den ­Bereich Variablen. 1.4.4 Programmiersprachen und Programmübersetzer anwenden Um einen Algorithmus einer Maschine in einer verständlichen, d. h. bearbeitbaren Form mitzuteilen, ist man gezwungen, eine spezielle Sprache, eine sogenannte Programmiersprache, zu verwenden. Die Sprache des Menschen ist dazu ungeeignet, da sie durch einen für die Maschine zu umfangreichen Wortschatz und häufig durch mangelnde Eindeutigkeit gekennzeichnet ist. Was ist z. B. mit dem Begriff „Anker“ gemeint? Der Anker eines Elektromotors, eines Schiffs oder einer Uhr? 16 © HERDT-Verlag Realisierung Programmiersprachen sind gekennzeichnet durch: einen begrenzten Wortschatz Exaktheit Eindeutigkeit Der begrenzte Wortschatz muss so ausgewählt sein, dass er für die Beschreibung von ­Problemen oder Problemlösungen geeignet ist. Die Exaktheit muss durch Regeln für das ­Aneinanderreihen von Schlüsselwörtern, auch als Syntax bezeichnet, gewährleistet sein. ­Jeder zulässigen Aneinanderreihung von Zeichen muss eine eindeutige Bedeutung, auch als Semantik bezeichnet, entsprechen. Weiterhin ist wünschenswert, dass Programmiersprachen für den Menschen leicht verständlich sind. Es kann so leichter programmiert werden, d. h., Algorithmen können so leichter in eine für die Maschine verständliche Sprache übersetzt werden. Handlungsauftrag Recherchieren Sie im Internet und ordnen Sie die fast unüberschaubare Anzahl von Programmiersprachen in Gruppen nach von Ihnen festgelegten Gesichtspunkten ein und beschreiben Sie kurz deren Eigenschaften. Bevor ein in einer Programmiersprache erstellter Algorithmus auf einem Rechner ausgeführt werden kann, muss dieser Algorithmus in die binäre Befehlsfolge des Rechners übersetzt werden. Dazu wird ein Übersetzer verwendet. Ein Übersetzer ist ein Programm, das ein Quellprogramm in ein bedeutungsgleiches Objektprogramm übersetzt. Das Quellprogramm ist in einer höheren Programmiersprache oder in einer Assemblersprache geschrieben, das Objektprogramm hingegen in der Regel in einer Maschinensprache. Da der Übersetzer von einem Prozessor abgearbeitet werden muss, ist er vom Prozessortyp abhängig. Er ist nicht übertragbar. Die Übersetzung geschieht häufig in mehreren Phasen, d. h., der Übergang vom Quellprogramm in das Objektprogramm erfolgt in mehreren Stufen: Lexikalische Analyse Schlüsselwörter, Variablen, Konstanten, Prozeduren und Funktionen werden erkannt und durch Abkürzungen ersetzt. Leerzeichen und Kommentare werden überlesen. Tabellen für Konstanten und Variablen werden angelegt. Syntaktische Analyse Überprüfung des Programms auf Richtigkeit gemäß den Syntaxregeln. Gegebenenfalls Erzeugung einer Fehlermeldung und Aufbereiten der Programmstruktur in eine für den Prozessor bearbeitbare Reihenfolge bzw. Form. Codegenerierung Umsetzung der Ergebnisse der lexikalischen und syntaktischen Analyse in einen prozessorspezifischen Code. Optimierung des Codes, d. h. Verbesserungen zur Verkürzung der Programmlaufzeit und zur Reduzierung des Speicherplatzbedarfs. © HERDT-Verlag 17