0. Einführung. C und C++ (CPP)

Ähnliche Dokumente
Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Praktikum: Einstieg: Arbeitsplatz, JCreator

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Open Source Software. Workshop : Open Source Software 3. Mannheimer Fachtag Medien Referent : Christopher Wieser (

Grundlagen von Python

Entwicklung des Dentalmarktes in 2010 und Papier versus Plastik.

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

EIDAMO Webshop-Lösung - White Paper

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

SJ OFFICE - Update 3.0

Grundlagen der Informatik

Beruflichen Schule in Nidda

Konzentration auf das. Wesentliche.

AUTOMATISCHE -ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

Kompilieren und Linken

Lokale Installation von DotNetNuke 4 ohne IIS

Info-Veranstaltung zur Erstellung von Zertifikaten

(1) Mit dem Administrator Modul werden die Datenbank, Gruppen, Benutzer, Projekte und sonstige Aufgaben verwaltet.

Kurzfassung der Studienarbeit

YouTube: Video-Untertitel übersetzen

Robot Karol für Delphi

Was meinen die Leute eigentlich mit: Grexit?

1 Was ist das Mediencenter?

Updatehinweise für die Version forma 5.5.5

Erfahrungen mit Hartz IV- Empfängern

Java Script für die Nutzung unseres Online-Bestellsystems

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Internet online Update (Internet Explorer)

Was ist pcon.update? Girsberger Manual Registrierung pcon.update Service - Marketing Edition Sep Seite 1

BETTER.SECURITY AWARENESS FÜR INFORMATIONSSICHERHEIT

Universität Zürich Informatikdienste. SpamAssassin. Spam Assassin Go Koordinatorenmeeting 27. April

Gesetzliche Aufbewahrungspflicht für s

Video-Tutorial: Einrichten einer Facebook Landing Page in der Facebook Chronik (Timeline)

Drahtlosnetzwerke automatisch konfigurieren mit WCN (Windows Connect Now) unter Windows Vista

Java Entwicklung für Embedded Devices Best & Worst Practices!

Lizenzierung von System Center 2012

Grundbegriffe der Informatik

EINE PLATTFORM

Fragebogen zur Evaluation der Vorlesung und Übungen Computer Grafik, CS231, SS05

LSF-Anleitung für Studierende

Neuerungen PRIMUS 2014

Formular»Fragenkatalog BIM-Server«

Idimager ein Bildverwaltungsprogramm-DAM Software

C++ mit Eclipse & GCC unter Windows

SDD System Design Document

Professionelle Seminare im Bereich MS-Office

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

teamsync Kurzanleitung

Programmieren. Kap 0 Organisation

Version 0.3. Installation von MinGW und Eclipse CDT

Softwaren Engineering I

KV Betriebssysteme. Mag. iur. Dr. techn. Michael Sonntag

Erstellen einer in OWA (Outlook Web App)

Praktikant / Abschlussarbeit im Bereich Softwareentwicklung / Mechatronik (m/w)

MASTER-BERATUNG. im Fach Kunstgeschichte

Einführung in Eclipse und Java

Die Invaliden-Versicherung ändert sich

Erstellen einer PostScript-Datei unter Windows XP

Die Post hat eine Umfrage gemacht

EPOS. Kurzanleitung Modul Mailing. Logex AG IT-Solutions. Copyright (c) 2008 by Logex ag, Switzerland, all Rights reserved

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

-Inhalte an cobra übergeben

Objektorientierte Programmierung. Kapitel 0: Begrüssung

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Kurzleitfaden für Schüler

Stellen Sie sich vor, Ihr Informations- Management weist eine Unterdeckung auf.

Recherche nach Stellenanzeigen in Zeitungen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Daten-Synchronisation zwischen Mozilla Thunderbird (Lightning) / Mozilla Sunbird und dem ZDV Webmailer

COMPUTER MULTIMEDIA SERVICE

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Kommunikations-Management

Einleitung: Frontend Backend

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand:

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Installation EPLAN Electric P8 Version Bit Stand: 07/2014

Installationsanleitung

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Loggen Sie sich in Ihrem teamspace Team ein, wechseln Sie bitte zur Verwaltung und klicken Sie dort auf den Punkt Synchronisation.

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

BEO-Sanktionsprüfung Eine Einführung zum Thema Sanktionsprüfung und eine Übersicht zur BEO-Lösung.

Praktikum Compilerbau

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

3. Stored Procedures und PL/SQL

Outlook Vorlagen/Templates

Teil 1: IT- und Medientechnik

Verkaufen und noch mehr verdienen mit

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

Transkript:

C und C++ (CPP) 0. Einführung Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte Wissenschaften marc.rennhard@zhaw.ch Marc Rennhard, 05.01.2010, CPP_Einfuehrung.ppt 1 1

Überblick Modul: CPP (C und C++) Technisches Pflichtmodul im 2. Semester des Studiengangs SI ECTS: 4 Dozent: Marc Rennhard (rema) Web: https://dublin.zhaw.ch/it/cpp Erste Informationsquelle, enthält alle Infos und Unterlagen zur Vorlesung E-Mail: marc.rennhard@zhaw.ch Organisation, Unterlagen, Prüfungen, Ablauf... Web Marc Rennhard, 05.01.2010, CPP_Einfuehrung.ppt 2 2

Ziele Sie kennen den gesamten Umfang der Sprachen C und C++, sowie die wichtigsten Elemente der C und C++ Standard Libraries Sie können selbst kleinere C und C++ Programme entwickeln Sie können bestehende C und C++ Programme verstehen und erweitern Sie haben die Voraussetzungen, um auch grössere Programme zu entwickeln Marc Rennhard, 05.01.2010, CPP_Einfuehrung.ppt 3 3

Geschichtliche Entwicklung 1970: Dennis Ritchie entwickelt bei den Bell Labs eine Programmiersprache für die Entwicklung des Betriebssystems Unix C 1978: Brian Kerningham und Ritchie publizieren C 1983: Bjarne Stroustrup definiert C++ als Erweiterung von C 1983-1989: Standardisierung von C ANSI C (C89) 1990: ANSI C wird fast unverändert von der ISO übernommen (C90) Thema dieser Vorlesung (1. Hälfte) 1995: Java 1.0 von Sun 1998: Standardisierung von C++ ANSI/ISO C++ Thema dieser Vorlesung (2. Hälfte) 1999: Erweiterungen (z.b. neue Datentypen) zu C ISO C99 Standard Wird nicht von allen Compilern vollständig unterstützt 2000: C# von Microsoft, Neuentwicklung für.net-architektur (verwendet viele Konzepte aus C++ und Java) Marc Rennhard, 05.01.2010, CPP_Einfuehrung.ppt 4 4

Wieso eigentlich C/C++? (1) Erlaubt es, sehr effizienten Code zu schreiben Der Programmierer hat sehr grosse Kontrolle über das, was der Code genau macht Effizienz hinsichtlich Memory-Footprint und Ausführungsgeschwindigkeit Mit grossem Abstand die wichtigste Systemsprache: General Purpose Betriebssysteme sind in C/C++ geschrieben (Unix, Linux, Windows...) Spezielle Betriebssysteme sind oft in C/C++ geschrieben (zb CISCO Router, Datenbanken) Virtual Machines (zb für Java) sind in C/C++ geschrieben Grosse Relevanz im Bereich Software für Embedded Systems Viele Applikationen sind in C/C++ geschrieben Zum Beispiel der grösste Teil der Open Source Software: Mozilla, Apache... Marc Rennhard, 05.01.2010, CPP_Einfuehrung.ppt 5 5

Wieso eigentlich C/C++? (2) Fördert (und bedingt!) das Verständnis für das unterliegende System Beispiel: Kontrolle über das Speichermanagement (allozieren von Speicher auf dem Stack oder dem Heap) ist beim Programmierer Berücksichtigung der Architektur ist notwendig Grosser Umfang von verfügbaren Bibliotheken (nebst der Standard Library) zb GNU C Library (glibc) Unzählige weitere, aber oft nicht standardisierte Libraries Fach Betriebssysteme (BSy) im 2. Studienjahr verwendet C/C++ im Praktikum Hinweis: wir werden hier keine GUI-Applikationen entwickeln, sondern fokussieren uns auf die spezifischen Eigenheiten von Standard C/C++ Keine Applets, kein Appletviewer GUI-Bibliotheken (wie in Visual C++) sind nicht Teil von Standard C/C++! Marc Rennhard, 05.01.2010, CPP_Einfuehrung.ppt 6 6

C/C++ und Java (1) Viele Ähnlichkeiten betreffend der Syntax und Semantik Java hat ganz bewusst auf C/C++ aufgebaut Java hat einige Details weggelassen (zb Operator Overloading, kein Einfluss auf Memory Management) Interessanterweise verwendet C# viele der weggelassenen Details wieder C/C++ Code ist fehleranfälliger als Java, Java ist einfacher zu lernen Keine automatische Garbage-Collection in C/C++ Pointer in C/C++ Sämtliche Variablen können in C/C++ wahlweise auf dem Stack oder auf dem Heap alloziert werden, nur eine Möglichkeit in Java Keine Überprüfung von Array-Grenzen in C/C++ Marc Rennhard, 05.01.2010, CPP_Einfuehrung.ppt 7 7

C/C++ und Java (2) Der Java-Compiler generiert Bytecode; der C/C++-Compiler erzeugt Maschinencode C/C++ Maschinencode ist nicht plattformunabhängig (es gibt kein Äquivalent zu der Java Virtual Machine) Ein Java Programm läuft im Allgemeinen langsamer als ein äquivalentes C/C++ Programm (Ausnahme: JIT-Compiler für Java Programme) Generell: Java nimmt dem Programmierer bewusst einige Aufgaben ab und vereinfacht diesem das Leben und ist dadurch dafür weniger flexibel und weniger effizient als C/C++ Es geht hier nicht darum, C/C++ und Java gegeneinander auszuspielen; beide haben ihre klaren Stärken und Einsatzgebiete Marc Rennhard, 05.01.2010, CPP_Einfuehrung.ppt 8 8

Literatur zur Vertiefung (1) Es gibt kein Buch, dass genau auf das Fach CPP passt Es gibt aber Unmengen von Büchern zu C/C++ Ich gebe hier ein paar Beispiele, es gibt aber kein offizielles Textbuch Brian Kernighan, Dennis Ritchie, The C Programming Language, Prentice Hall, 1988 Der absolute Klassiker zu C (aber eben nur C) Ausgezeichnetes Buch, sowohl zur Einführung als auch als Referenz Auch auf Deutsch erhältlich Marc Rennhard, 05.01.2010, CPP_Einfuehrung.ppt 9 9

Literatur zur Vertiefung (2) Bjarne Stroustrup, The C++ Programming Language (Special Edition), Addison-Wesley, 2000 Gutes, sehr umfassendes Buch vom Erfinder von C++ Unterscheidet aber nicht zwischen C und C++ Einführung und Referenz Auch auf Deutsch erhältlich Timothy Budd, C++ for Java Programmers, Addison-Wesley, 1999 Für Leser mit Java-Background geschrieben Wird auch ihre Java-Kenntnisse vertiefen Nur auf English verfügbar Marc Rennhard, 05.01.2010, CPP_Einfuehrung.ppt 10 10