400 likes | 713 Vues
Seminar Programmiersprachen 26.06.2010. C++. Sigita Andrulyte. Überblick. 1. Grundlagen C++. Grundlagen C++ 99 Bottles C++ Erfinder: Bjarne Stroustrup Interview. Was bedeutet C++?. 1. Grundlagen C++. A) Der Name hat keine besondere Bedeutung
E N D
Seminar Programmiersprachen 26.06.2010 C++ Sigita Andrulyte
Überblick 1 Grundlagen C++ • Grundlagen C++ • 99 Bottles • C++ Erfinder: Bjarne Stroustrup • Interview
Was bedeutet C++? 1 Grundlagen 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)
Was bedeutet C++? 1 Grundlagen 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 ++
Was ist C++? 1 Grundlagen 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.
Unterschiede zwischen C und C++? 1 Grundlagen C++ • 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?
Unterschiede zwischen Obj - C und C++? 1 Grundlagen C++ • Obj C: • BOOL= YES oder BOOL=NO • Kommentare: /* . . . */ und // • Attribute und Methoden
Welche Normen hat C++? 1 Grundlagen C++ • ISO/IEC 14882 Informationstechnik – Programmiersprachen • Die Norm beschreibt die objektorientierte Variante der Programmiersprache C. • Implementierung • Stand. Bibliotheken
Welche Normen hat C++? 1 Grundlagen C++ • ISO/IEC 10514-2 Erweiterung zu Modula • ISO/IEC 10514-3 Objekt orientiertes Modula
Vorteile von C++ 1 Grundlagen 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
Nachteile von C++ 1 Grundlagen 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
C++ Aplications 1 Grundlagen C++ • NASA • NOKIA • Siemens • Games: Doom III • Adobe Systems • Ericsson • Apple • Amazon.com • IBM • IPod
Objekte 1 Grundlagen C++ • 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
Objektlebenszyklus 1 Grundlagen C++ • Der Lebenszyklus eines C++ Objektes besteht aus den Abschnitten • Erzeugung • Benutzung • Zerstörung
Objektlebenszyklus 1 Grundlagen C++ • 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
Objektlebenszyklus 1 Grundlagen C++ • 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.
Vererbung 1 Grundlagen C++ • 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.
Vererbung 1 Grundlagen C++ • 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 mehrerenKlassen 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.
Entwicklungsumgebungen 1 Grundlagen C++ • Windows: • Microsoft Visual C++ • Borland C++ • CYGwin (Linux-artige Umgebung für Windows) • Linux/Unix: • GCC (GNU C Compiler) • G++ (GNU C++ Compiler)
99 Bottles 1 Grundlagen C++ 2 99 Bottles
99 Bottles 1 Grundlagen C++ 2 99 Bottles
99 Bottles 1 Grundlagen C++ 2 99 Bottles
99 Bottles Ausgabe 1 • 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++ 2 99 Bottles
Bjarne Stroustrup 1 Grundlagen C++ 2 99 Bottles 3 C++ Erfinder • 11. Juni 1950 in Århus, Dänemark • Doktorgrad in Informatik (1979) von der Universität Cambridge, England • 1979-2002 Leiterder 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.
Bjarne Stroustrup 1 Grundlagen C++ 2 99 Bottles 3 C++ Erfinder • 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++
Warum C++? 1 Grundlagen 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“ 2 99 Bottles 3 C++ Erfinder 4 Interview
Sicherheit ist nicht Softwarethema! 1 Grundlagen C++ • ”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” 2 99 Bottles 3 C++ Erfinder 4 Interview
Sicherheit ist nicht Softwarethema! 1 Grundlagen C++ 2 99 Bottles • ”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 3 C++ Erfinder 4 Interview
Muss man nicht C können um mit C++ anzufangen? 1 Grundlagen C++ • ”Leider wird in vielen Kursen zunächst C unterrichtet, aber das ist nicht mehr zwingend der Fall” • Manche wechseln von C nach C++ • OOP 2 99 Bottles 3 C++ Erfinder 4 Interview
Werden wir C++ 2.0 sehen? 1 Grundlagen C++ 2 99 Bottles • ”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 3 C++ Erfinder 4 Interview
Werden wir C++ 2.0 sehen? 1 Grundlagen C++ 2 99 Bottles • 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 3 C++ Erfinder 4 Interview
Warum hat er keine andere Sprachen erstellt? 1 Grundlagen C++ 2 99 Bottles • ”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?“ 3 C++ Erfinder 4 Interview
Lehren 1 Grundlagen C++ 2 99 Bottles • 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 3 C++ Erfinder 4 Interview
Wie ist Ihre Meinung zu Codebeispielen in Lehrbüchern? 1 Grundlagen C++ 2 99 Bottles • ”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 3 C++ Erfinder 4 Interview
Teamarbeit 1 Grundlagen C++ 2 99 Bottles • Schneller • Besser • Weiter kommt als alleine • Denn 4,8,16 Augen sehen besser 3 C++ Erfinder 4 Interview
Fazit 1 Grundlagen C++ 2 99 Bottles • C++ • Sehr weite Verbreitung • Maschinennahes Programmieren • Für umfangreiche Projekte geeignet 3 C++ Erfinder 4 Interview
Literatur 1 Grundlagen C++ 2 99 Bottles • 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 3 C++ Erfinder 4 Interview
C++ 1 Grundlagen C++ • Danke für Ihre Aufmerksamkeit! 2 99 Bottles 3 C++ Erfinder 4 Interview