View
121
Download
0
Category
Preview:
Citation preview
1
Sigita Andrulyte
Seminar Programmiersprachen
26.06.2010
2
Überblick
• Grundlagen C++
• 99 Bottles
• C++ Erfinder: Bjarne Stroustrup
• Interview
Grundlagen C++ 1
3
Was bedeutet C++?
A) Der Name hat keine besondere Bedeutung
B) Der Name ist eine Kombination aus C und dem Inkrementor ++
C) Der Name steht für C plus objektorientierten Konzepten
D) Der Name steht für C plus, also ein besseres C (wie eine Eins plus eine bessere Schulnote ist eine Eins)
Grundlagen C++ 1
4
Was bedeutet C++?
FALSCH:
C) Der Name steht für C plus objektorientierten Konzepten
D) Der Name steht für C plus, also ein besseres C (wie eine Eins plus eine bessere Schulnote ist eine Eins)
RICHTIG:
B) Der Name ist eine Kombination aus C und dem Inkrementor ++
Grundlagen C++ 1
5
Was ist C++?
• C++ ist eine universelle Programmiersprache, die vorzugsweise zur Systemprogrammierung dient.
• Ist ein besseres C (nach B.Stroustrup)
• Unterstützt Datentransaktion
• Unterstützt objektorientiertes Programmieren und
• Unterstützt genetisches Programmieren.
Grundlagen C++ 1
6
Unterschiede zwischen C und C++?
Grundlagen C++ 1
• C ist:
• Leistungsfähig: effizient, schnell, logisch, strukturiert
• C++: verbesserte C
• Erwartungen sind immer größer
• OO
• C++ ist Erweiterung von C
• Sollte man mit C oder C++ anfangen?
7
Unterschiede zwischen Obj - C und C++?
Grundlagen C++ 1
• Obj C:
• BOOL= YES oder BOOL= NO
• Kommentare: /* . . . */ und //
• Attribute und Methoden
8
Welche Normen hat C++?
• ISO/IEC 14882 Informationstechnik – Programmiersprachen
• Die Norm beschreibt die objektorientierte Variante der Programmiersprache C.
• Implementierung
• Stand. Bibliotheken
Grundlagen C++ 1
9
Welche Normen hat C++?
• ISO/IEC 10514-2 Erweiterung zu Modula
• ISO/IEC 10514-3 Objekt orientiertes Modula
Grundlagen C++ 1
10
Vorteile von C++
• Vorteile von C++
• Ermöglicht schnelle und maschinennahe Implementierungen
• Gut geeignet für Simulationen, Suchverfahren,
• Kompressionsverfahren, zeitkritische Anwendungen
• Für umfangreiche Projekte geeignet
• Sehr weite Verbreitung
Grundlagen C++ 1
11
Nachteile von C++
•Probleme:
• Teilweise veraltet
• Standardbibliothek weniger mächtig als bei Java
• Kaum ein Compiler erfüllt die komplette Umsetzung der ISO – Norm
• C++ ist relativ schwierig zu erlernen (längere Einarbeitungszeit nötig)
• Dennoch: weit verbreitet, besonders bei
wissenschaftlichen Anwendungen
Grundlagen C++ 1
12
C++ Aplications
• NASA
• NOKIA
• Siemens
• Games: Doom III
• Adobe Systems
• Ericsson
• Apple
• Amazon.com
• IBM
• IPod
Grundlagen C++ 1
13
Objekte
• Ein Software-Objekt ist ein Bündel aus Attributen und darauf bezogenen Methoden.
• Fahrrad – Objekt
• Attribute – Farbe, Größe, momentane Geschwindigkeit
• Methoden – fährt leichter
Grundlagen C++ 1
14
Objektlebenszyklus
• Der Lebenszyklus eines C++ Objektes besteht aus den Abschnitten
• Erzeugung
• Benutzung
• Zerstörung
Grundlagen C++ 1
15
Objektlebenszyklus
•Erzeugung
• Das Erzeugen eines Objektes erfogt durch Aufruf des Konstruktors (kurz ctor) des Objektes.
•Benutzung
• Ein Objekt wird benutzt, indem eine seiner Methoden aufgerufen wird
Grundlagen C++ 1
16
Objektlebenszyklus
• Zerstörung
• Wird ein Objekt nicht mehr benötigt, so sollte es zerstört werden, damit es keinen Speicherplatz mehr verbraucht. Bei der Zerstörung eines Objektes wird automatisch sein Destruktor (kurz dtor) aufgerufen.
Grundlagen C++ 1
17
Vererbung
• Klasse
• Verschiedene Arten
• Die Klassen Montainbikes, Rennräder und Hollandräder erben von der Klasse Fahrräder gemeinsame Eigenschaften und fügen zusätzliche hinzu.
Grundlagen C++ 1
18
Vererbung
Allgemein gilt:
• Klassen können definiert werden in Abhängigkeit von anderen Klassen: "A ist eine Art von B". In diesem Fall ist B die Basisklasse von A.
• Eine Klasse kann auch von mehreren Klassen erben: A ist eine Art von B und C (Mehrfachvererbung).
• Jede Klasse erbt die (öffentlichen) Attribute und Methoden ihrer Basisklasse(n).
• Jedoch können jeder Klasse eigene Variablen und Methoden hinzugefügt werden.
Grundlagen C++ 1
19
Entwicklungsumgebungen
• Windows:
• Microsoft Visual C++
• Borland C++
• CYGwin (Linux-artige Umgebung für Windows)
• Linux/Unix:
• GCC (GNU C Compiler)
• G++ (GNU C++ Compiler)
Grundlagen C++ 1
20
99 Bottles
Grundlagen C++ 1
99 Bottles 2
21
99 Bottles
Grundlagen C++ 1
99 Bottles 2
22
99 Bottles
Grundlagen C++ 1
99 Bottles 2
23
99 Bottles Ausgabe
3 bottles of beer on the wall.
3 bottles of beer on the wall,
3 bottles of beer,
Take one down, pass it around,
2 bottles of beer on the wall.
2 bottles of beer on the wall,
2 bottles of beer,
Take one down, pass it around,
1 bottle of beer on the wall.
1 bottle of beer on the wall,
1 bottle of beer,
Take one down, pass it around,
0 bottles of beer on the wall.
0 bottles of beer on the wall,
0 bottles of beer,
Go to the store and buy some more,
99 bottles of beer on the wall.
Grundlagen C++ 1
99 Bottles 2
24
Bjarne Stroustrup
• 11. Juni 1950 in Århus, Dänemark
• Doktorgrad in Informatik (1979) von der Universität Cambridge, England
• 1979-2002 Leiter der AT&T Lab’s Large-scale Programming Research Abteilung,
• 1979-2002 Manager bei der Bell Labs
•1993 erhielt er für seine Arbeit um C++ den
Grace Murray Hopper Award.
Grundlagen C++ 1
99 Bottles 2
C++ Erfinder 3
25
Bjarne Stroustrup
• Derzeit: College of Engineering – Lehrstuhl für Informatik, Texas A&M University
• Mitglied U.S. National Academy of Engineering
• Buch: Die C++ Programmiersprache (1987-2000) – das Buch wurde in 18 Sprachen übersetzt
• Mehr als 100 akademische Artikel veröffentlicht
• Er spielte eine aktive Rolle beim Erstellen des
ANSI/ISO – Standards für C++
Grundlagen C++ 1
99 Bottles 2
C++ Erfinder 3
26
Warum C++?
• Simula – „die allerdings in der Praxis recht langsam bei der Ausführung ist“
•BCPL – „die zwar sehr schnell ist, aber sich für große Projekte nicht eignete“
Grundlagen C++ 1
99 Bottles 2
C++ Erfinder 3
Interview 4
27
Sicherheit ist nicht Softwarethema!
• ”Zunächst einmal ist Sicherheit ein Systemthema”
• Perfekte Code
• Zugriff auf Ihre gespeicherte Daten
• „Zweitens ist Sicherheit ein Abwägen zwischen Kosten und Vorteilen“
• Perfekte Sicherheit: nicht zu erreichen
• ”Böse Buben”
Grundlagen C++ 1
99 Bottles 2
C++ Erfinder 3
Interview 4
28
Sicherheit ist nicht Softwarethema!
• ”Aber was ist mit Programmiersprachen und Programmiertechniken?”
• Fehler: Jede einzelne Zeile muss sicher sein
• Code wird mit unsystematischen Tests überhäuft
• Code: hässlich, umfangreicher, langsam
• Hardware/Software
• Code: einfach, effizient schreiben
Grundlagen C++ 1
99 Bottles 2
C++ Erfinder 3
Interview 4
29
Muss man nicht C können um mit C++ anzufangen?
• ”Leider wird in vielen Kursen zunächst C unterrichtet, aber das ist nicht mehr zwingend der Fall”
• Manche wechseln von C nach C++
• OOP
Grundlagen C++ 1
99 Bottles 2
C++ Erfinder 3
Interview 4
30
Werden wir C++ 2.0 sehen?
• ”Ich weiß es nicht”
• Das von Grund auf neu entwickelt wurde
• Das Beste von C++ enthält
• Das Schlechteste weglässt
• C++0x
• Standardbibliotheken, neue Sprachfeatures
• 100% kompatibel zu C++ 98
Grundlagen C++ 1
99 Bottles 2
C++ Erfinder 3
Interview 4
31
Werden wir C++ 2.0 sehen?
• C++0x:
• Unterstützung von modernen Maschinenarchitekturen und Nebenläufigkeit
• Bessere Unterstützung der genetischen Programmierung
• Viele ”kleine” Spracherweiterungen
• Neue Standardbibliotheken:
• Reguläre Ausdrücke
•C++ Standards Committee
Grundlagen C++ 1
99 Bottles 2
C++ Erfinder 3
Interview 4
32
Warum hat er keine andere Sprachen erstellt?
• ”Welches Problem würde die neue Sprache lösen?”
• ”Für wen würde sie die Probleme lösen?”
• „Was dramatisch Neues könnte angeboten werden?“
• „Könnte die neue Sprache effektiv verbreitet werden?“
Grundlagen C++ 1
99 Bottles 2
C++ Erfinder 3
Interview 4
33
Lehren
• Einführung in die Programmierung für C++ ”Das ist mein erstes Buch für Anfänger”
• AT&T
• Änderung
• Forschung im Informatikbereich
• Mehr als 1.200 Anfänger in Programmieren unterrichtet
• Gute Grundlage für das weitere Lernen
Grundlagen C++ 1
99 Bottles 2
C++ Erfinder 3
Interview 4
34
Wie ist Ihre Meinung zu Codebeispielen in Lehrbüchern?
• ”Ich bevorzuge Beispiele, die in so wenig Zeilen wie möglich eine Idee darstellen.”
• Programmfragmente sind unvollständig
• Alle Codebeispiele in kompilierbarer Form
• Keine hübschen künstlichen Beispiele
• Beispiele ohne den Missbrauch von Tieren
Grundlagen C++ 1
99 Bottles 2
C++ Erfinder 3
Interview 4
35
Teamarbeit
• Schneller
• Besser
• Weiter kommt als alleine
• Denn 4,8,16 Augen sehen besser
Grundlagen C++ 1
99 Bottles 2
C++ Erfinder 3
Interview 4
36
Fazit
• C++
• Sehr weite Verbreitung
• Maschinennahes Programmieren
• Für umfangreiche Projekte geeignet
Grundlagen C++ 1
99 Bottles 2
C++ Erfinder 3
Interview 4
37
Literatur
• Visionäre der Programmierung: Die Sprachen und ihre Schöpfer, Federico Biancuzzi, Shane Warden - 2009
• C++ von A bis Z: das umfassende Handbuch, Jürgen Wolf - 2006
• Die C++ Programmiersprache, Bjarne Stroustrup - 2000
• C++: Programmieren mit einfachen Beispielen; leicht, klar, sofort, Dirk Louis - 2006
• C++: der leichte Einstieg, Peter Wollschlaeger – 2003
• http://chachatelier.fr/programmation/fichiers/cpp-objc-en.pdf
Grundlagen C++ 1
99 Bottles 2
C++ Erfinder 3
Interview 4
38
C++
Danke für Ihre Aufmerksamkeit!
Grundlagen C++ 1
99 Bottles 2
C++ Erfinder 3
Interview 4
Recommended