38
1 Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

Embed Size (px)

Citation preview

Page 1: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

1

Sigita Andrulyte

Seminar Programmiersprachen

26.06.2010

Page 2: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

2

Überblick

• Grundlagen C++

• 99 Bottles

• C++ Erfinder: Bjarne Stroustrup

• Interview

Grundlagen C++ 1

Page 3: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 4: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 5: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 6: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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?

Page 7: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

7

Unterschiede zwischen Obj - C und C++?

Grundlagen C++ 1

• Obj C:

• BOOL= YES oder BOOL= NO

• Kommentare: /* . . . */ und //

• Attribute und Methoden

Page 8: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 9: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

9

Welche Normen hat C++?

• ISO/IEC 10514-2 Erweiterung zu Modula

• ISO/IEC 10514-3 Objekt orientiertes Modula

Grundlagen C++ 1

Page 10: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 11: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 12: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

12

C++ Aplications

• NASA

• NOKIA

• Siemens

• Games: Doom III

• Adobe Systems

• Ericsson

• Apple

• Amazon.com

• IBM

• IPod

Grundlagen C++ 1

Page 13: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 14: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

14

Objektlebenszyklus

• Der Lebenszyklus eines C++ Objektes besteht aus den Abschnitten

• Erzeugung

• Benutzung

• Zerstörung

Grundlagen C++ 1

Page 15: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 16: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 17: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 18: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 19: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 20: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

20

99 Bottles

Grundlagen C++ 1

99 Bottles 2

Page 21: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

21

99 Bottles

Grundlagen C++ 1

99 Bottles 2

Page 22: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

22

99 Bottles

Grundlagen C++ 1

99 Bottles 2

Page 23: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 24: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 25: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 26: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 27: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 28: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 29: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 30: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 31: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 32: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 33: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 34: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 35: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 36: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

36

Fazit

• C++

• Sehr weite Verbreitung

• Maschinennahes Programmieren

• Für umfangreiche Projekte geeignet

Grundlagen C++ 1

99 Bottles 2

C++ Erfinder 3

Interview 4

Page 37: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

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

Page 38: Sigita Andrulyte Seminar Programmiersprachen 26.06.2010

38

C++

Danke für Ihre Aufmerksamkeit!

Grundlagen C++ 1

99 Bottles 2

C++ Erfinder 3

Interview 4