Seminar Programmiersprachen

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

Einführung in die Programmiersprache C/C++
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
Gliederung des Inhalts
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Java: Objektorientierte Programmierung
Java: Grundlagen der Sprache
Java: Grundlagen der Objektorientierung
Seminar zum pi-Kalkül betreut von Andreas Rossberg
Entwicklung der Programmiersprachen
DOM (Document Object Model)
1A: POSIX POSIX (Portable Operating System) ist ein Standard für UNIX-Systeme. Er dient dazu, Programme portabel unter UNIX und Derivaten zu tauschen und.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Datenbanksystementwicklung – Praktikum & Vorlesung – WS 2004/2005
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
eXtreme Programming (XP)
Introducing the .NET Framework
Prüfkriterien für objektorientierte Systeme
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Einführung in Visual C++
Portierung von Java nach C
Objektorientierte Modellierung
Einleitung Suse Linux (System- und Software-Entwicklung) Allgemein:
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Das Wasserfallmodell - Überblick
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Einführung in die Programmierung
Entstehung & Einflüsse Ideen, Wünsche, eigene Überlegungen bisheriges Dateisystem Einschrän- kungen: - technisch - zeitlich - fachlich Literatur, ältere.
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Tutorium PG Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.
Programmierung 1. Einführung Seite 1
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Informatik als Grundkursfach in der Oberstufe Was ist das Ziel? Problemstellungen modellieren und systematisch mit Softwarewerkzeugen einer Lösung zuführen.
Axel Möller, LWG Schwabmünchen Rollenspiel zur Vertiefung der Begriffe Klasse, Objekt, Attribut, Attributwert, Methode und Botschaft (Methodenaufruf) Vorgehensweise:
EPROG Tutorium #4 Philipp Effenberger
Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.
Programmieren ... in C++ Prof. Dr.-Ing. Franz-Josef Behr, HfT Stuttgart Programmeiren I.
Informatik II Grundlagen der Programmierung Programmieren in C Funktionen, Adressen, Zeiger Hochschule Fulda – FB ET Sommersemester 2014
22. Oktober 2007Martin Feldmann, 1 Bachelor-Thesis Entwicklung einer automatisierten Dokumentation von LabVIEW Quellcode für das Rahmenwerk.
Objektorientierung.
Seminar: Virtuelle Forschungsumgebungen Dozent: Professor Manfred Thaller Referent: Peter Smits
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Die Präsentation des Lehrers der 21- allgemeinbildenden Schule des Bezirks Peschkö in Gebiet Buchara von Alijor Jahjojev.
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Informatik als Grundkursfach in der Oberstufe Was ist das Ziel? Problemstellungen modellieren und systematisch mit Softwarewerkzeugen einer Lösung zuführen.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Dr. Nicolas Ruh EF Informatik 2016 Dr. Nicolas Ruh
Objektorientierte (OO) Programmierung
C# C-Sharp.
Game Loop & Update Method Robert Nystrom – Game Programming Patterns Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung SS.
Objektorientierte Programmierung §Klassen §Objekte §Attribute §Eigenschaften §Methoden §Datenkapselung §Ereignisse §Vererbung §Entwicklungszeit §Laufzeit.
1. Betreuer: Prof. Dr. Jörg Striegnitz 2. Betreuer: Dr. Martin Schindler Kontextsensitive Autocompletion für Klassendiagramme in der UML/P Florian Leppers.
© Tenbusch Oberstufenzentrum Informations- und Medizintechnik Objektorientierte Programmierung mit Java.
Die Struktur einer Java-Klasse
Von Wietlisbach, Lenzin und Winter
Mögliche Stoffverteilung im Grundkurs
 Präsentation transkript:

Seminar Programmiersprachen 26.06.2010 C++ Sigita Andrulyte

Überblick 1 Grundlagen C++ 99 Bottles C++ Erfinder: Bjarne Stroustrup Interview 2

Was bedeutet C++? 1 A) Der Name hat keine besondere Bedeutung Grundlagen C++ 1 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 FALSCH: Grundlagen C++ 1 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++? Grundlagen C++ 1 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++? 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?

Unterschiede zwischen Obj - C und C++? Grundlagen C++ 1 Obj C: BOOL= YES oder BOOL= NO Kommentare: /* . . . */ und // Attribute und Methoden 7

Welche Normen hat C++? Grundlagen C++ 1 ISO/IEC 14882 Informationstechnik – Programmiersprachen Die Norm beschreibt die objektorientierte Variante der Programmiersprache C. Implementierung Stand. Bibliotheken

Welche Normen hat C++? 1 ISO/IEC 10514-2 Erweiterung zu Modula Grundlagen C++ 1 ISO/IEC 10514-2 Erweiterung zu Modula ISO/IEC 10514-3 Objekt orientiertes Modula

Vorteile von C++ 1 Vorteile von C++ Grundlagen C++ 1 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 Probleme: Teilweise veraltet Grundlagen C++ 1 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 NASA NOKIA Siemens Games: Doom III Adobe Systems Grundlagen C++ 1 NASA NOKIA Siemens Games: Doom III Adobe Systems Ericsson Apple Amazon.com IBM IPod

Objekte Grundlagen C++ 1 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 13

Objektlebenszyklus Grundlagen C++ 1 Der Lebenszyklus eines C++ Objektes besteht aus den Abschnitten Erzeugung Benutzung Zerstörung 14

Objektlebenszyklus 1 Erzeugung Grundlagen C++ 1 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 15

Objektlebenszyklus 1 Zerstörung Grundlagen C++ 1 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. 16

Vererbung 1 Klasse Verschiedene Arten Grundlagen C++ 1 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. 17

Vererbung 1 Allgemein gilt: Grundlagen C++ 1 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. 18

Entwicklungsumgebungen Grundlagen C++ 1 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 Grundlagen C++ 1 99 Bottles 2

99 Bottles Grundlagen C++ 1 99 Bottles 2

99 Bottles Grundlagen C++ 1 99 Bottles 2 22

99 Bottles Ausgabe 1 2 Grundlagen C++ 3 bottles of beer on the wall. Take one down, pass it around, 2 bottles of beer on the wall. 2 bottles of beer on the wall, 2 bottles of beer, 1 bottle of beer on the wall. 1 bottle of beer on the wall, 1 bottle of beer, 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

Bjarne Stroustrup 1 2 3 Grace Murray Hopper Award. Grundlagen C++ 1 99 Bottles 2 C++ Erfinder 3 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.

Bjarne Stroustrup Grundlagen C++ 1 99 Bottles 2 C++ Erfinder 3 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++? Grundlagen C++ 1 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“ 99 Bottles 2 C++ Erfinder 3 Interview 4 26

Sicherheit ist nicht Softwarethema! Grundlagen C++ 1 ”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” 99 Bottles 2 C++ Erfinder 3 Interview 4

Sicherheit ist nicht Softwarethema! Grundlagen C++ 1 ”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 99 Bottles 2 C++ Erfinder 3 Interview 4

Muss man nicht C können um mit C++ anzufangen? Grundlagen C++ 1 ”Leider wird in vielen Kursen zunächst C unterrichtet, aber das ist nicht mehr zwingend der Fall” Manche wechseln von C nach C++ OOP 99 Bottles 2 C++ Erfinder 3 Interview 4

Werden wir C++ 2.0 sehen? 1 2 3 4 ”Ich weiß es nicht” Grundlagen C++ 1 99 Bottles 2 ”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 C++ Erfinder 3 Interview 4

Werden wir C++ 2.0 sehen? 1 2 3 4 C++0x: Grundlagen C++ 1 99 Bottles 2 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 C++ Erfinder 3 Interview 4

Warum hat er keine andere Sprachen erstellt? Grundlagen C++ 1 99 Bottles 2 ”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?“ C++ Erfinder 3 Interview 4

Lehren Grundlagen C++ 1 99 Bottles 2 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 C++ Erfinder 3 Interview 4

Wie ist Ihre Meinung zu Codebeispielen in Lehrbüchern? Grundlagen C++ 1 99 Bottles 2 ”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 C++ Erfinder 3 Interview 4

Teamarbeit 1 2 3 4 Schneller Besser Weiter kommt als alleine Grundlagen C++ 1 99 Bottles 2 Schneller Besser Weiter kommt als alleine Denn 4,8,16 Augen sehen besser C++ Erfinder 3 Interview 4 35

Fazit 1 2 3 4 C++ Sehr weite Verbreitung Maschinennahes Programmieren Grundlagen C++ 1 99 Bottles 2 C++ Sehr weite Verbreitung Maschinennahes Programmieren Für umfangreiche Projekte geeignet C++ Erfinder 3 Interview 4 36

Literatur 1 2 3 4 Grundlagen C++ 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 C++ Erfinder 3 Interview 4

C++ Danke für Ihre Aufmerksamkeit! 1 2 3 4 Grundlagen C++ 99 Bottles C++ Erfinder 3 Interview 4