Präsentation als PDF - Wiki Informatik Grundkurs Abi 2017

Werbung
Programmiersprachen und
Programmierkonzepte
Inhalt
Programmiersprachen- Entwicklung
Programmiersprachen und
Programmierparadigmen
Die Geschichte der Programmiersprachen
●
●
●
Anfänge vor 200 Jahren
Programmierbare Webmaschinen von Jacquard
(Lochkartensteuerung)
Mit den Entwicklungen von Konrad Zuse und John von
Neumann zur Computerarchitektur fiel Startschuss zum
Aufstieg der Informatik und Programmierung (1940er Jahre)
Zwischen Null und Eins - 1. Generation
●
●
CPU (Hauptprozessor) arbeitet nur mit den Zuständen Strom an
und Strom aus, jede Anweisung muss mit Symbolen 0 und 1 als
Synonym auskommen
Daten und Befehle wurden binär eingegeben (lange Reihen von
Nullen und Einsen)
→ Maschinensprache
●
●
Nachteil: Komplexe Aufgaben zu notieren nahe zu unmöglich
Erste Programmierer mussten Code schreiben, die lang und
unübersichtlich waren
→ Für mächtige Programme untaugliches Prinzip
●
zweite Stufe der Programmiersprachenentwicklung wurde schnell
erklommen
Assemblersprachen – 2. Generation
●
assemble – montiernen, zusammensetzen
●
wurde in mehreren Varianten entwickelt
●
Dialekte hatten zwei Dinge gemeinsam:
1. Stark an der Maschine orientiert
2. Befehle als Buchstabenkombination nach Regeln der Mnemotechnik
●
Verknüpfung von neuen mit vorhandenen Programmteilen
→ exe-Datei
●
●
●
bis in 90er – Jahre des 20. Jahrhunderts wurden Betriebssysteme, Computerspiele
etc. in Assemblersprache geschrieben (heute teilweise auch noch)
Vorteil: Assembler ist maschinennah, Übersetzung wesentlich weniger Zeit als in
Hochsprachen, manche Aufgaben auch präziser und schneller zu formulieren
Nachteil: Zu langer Code, geschränkte Einsatzmöglichkeit
Die Hochsprachen – 3. Generation
●
komplexere Aufgaben und maschinenarchitekturen erforderten neue
Programmiersprachen, mussten folgenden Ansprüchen genügen:
1. Maschinenunabhängige Programmierung – Einsatz der Programme auf
unterschiedliche Rechnern
2. Projekte und Programme besser strukturiert, auch um Lesbarkeit zu
verbessern
3.Programmierer sollte von Rechnerspezialkenntnissen entlastet werden, um
sich auf die Aufgabenstellung für die Programmierung und deren
Lösung zu
konzentrieren
●
●
●
erste Hochsprache FORTRAN für technisch-wissentschaftliche Anwendungen,
entwickelt 1954 von John Bacus
es folgten LISP ( 1959 von John Mc Carthy) und COBOL (1959 von Grace Hopper)
großer Schritt war die Entwicklung von ALGOL, etliche Sprachen basieren darauf
wie Pascal, Basic oder C
Die 4. Generation
●
●
Fourth Generation Language (4GL) vereint
Programmiersprachen und Programmierumgebungen, die
unterschiedliche Zwecke verfolgen
auch Benutzer mit wenig Ahnung sollen Programme
schreiben können
Die wichtigsten Programmiersprachen
unserer Zeit
C (C++ und C#)
●
häufigste eingesetzte Programmiersprache
●
Betriebssysteme wie Windows, Linux oder Mac OS X überwiegend in C verfasst
●
Erfinder: Dennis Ritchie (Oktober 2011 verstorben)
●
Entwicklung: 1969 bis 1973
Java
●
Erfinder: Computerhersteller Sun Microsystems
●
Entwicklung: 1991 bis 1995
●
zweithäufigste Programmiersprache
●
Vor allem im Internet, aber auch bei Spielen etc. eingesetzt
●
Weitere wichtige Programmiersprachen sind PHP, JavaScript und Python
Programmiersprachen
Definition
Sind aus Wörtern oder Wortteilen meist aus
dem Englischen und Trennzeichen
zusammengesetzt
●
Von Sprache zu Sprache gibt es für gleiche
Zeichen verschiedene Bedeutungen
●
Kommen mit geringem Wort-und Zeichensatz
aus
●
Ihre Zeichen kommen in der Regel aus der
Mathematik
●
Was ist ein
Programmierparadigma?
•
•
Sind die zwei Hauptrichtungen der
Programmiersprache
Sind dafür da, dass Programmiersprachen
mehr oder weniger die Basiskriterien,
Lesbarkeit des Codes, Redudanzfreiheit,
Modularität und Nebenwirkungsfreiheit
eingehalten werden
Imperative Programmierparadigmen
●
●
●
●
Programm mit linearer Folge von Befehlen
arbeitet der Rechner in definierter Reihenfolge
ab
Durch auf Prozessorebene angegebenen
Mikrocode verfährt der Rechner mit jeweiligen
Daten
Befehle manipulieren den Zustand der
Speicherbereiche, die Daten zur Verarbeitung
vorhalten
Zeitliche Abfolge ist durch Reihenfolge im
Programm vorgegeben
Imperative Programmierparadigmen
●
Strukturierte Programmierung
●
Prozedurale Programmierung
●
Modulare Programmierung
●
Objektorientierte Programmierung
Objektorientierte Programmierung
●
●
●
Daten und Funktionen werden möglichst eng
in einem Objekt zusammengefasst und nach
außen hin gekapselt
Implementierungsdetails werden bewusst
verborgen, damit Methoden fremder Objekte
diese Daten nicht versehentlich manipulieren
können.
Objektorientierte Programmierung ist heute
das am weitesten verbreitete Prinzip.
Beispiele für Objektorientierte
Programmierung
•
Smalltalk - Ruby
•
Ada 95
●
Java
●
C++
●
C#
●
Python
●
Perl
●
PHP
Deklarative
Programmierparadigmen
●
●
●
Eine Idee der jüngeren
Programmiergeschichte
Im Gegensatz zu den imperativen
Programmierparadigmen fragt man in der
deklarativen Programmierung nicht nach dem
„Wie“, sondern nach dem „Was“
Der Lösungsweg wird nicht programmiert,
sondern man gibt an, welches Ergebnis erzielt
werden soll
Vorteile der deklarativen
Programmierparadigmen
●
●
●
Es gibt keine Nebeneffekte
Beweise zur Korrektheit von Ergebnissen sind
uneingeschränkt durchführbar
Deklarative Programmierung ist nicht von
irgendeiner Rechnerarchitektur abhängig
Vergleich zwischen Java und einem
Logistikprogramm
Logistik
Java
Herunterladen