U5-1 Symboltabellen. statische Bibliotheken. Besprechung 3. Aufgabe (smash) Erstellen von C-Funktionsbibliotheken RCS
|
|
- Wilhelmine Grosser
- vor 6 Jahren
- Abrufe
Transkript
1 U5 5. Übung U5 5. Übung Besprechung 3. Aufgabe (smash) Erstellen von C-Funktionsbibliotheken RCS statische Bibliotheken Archiv, in dem mehrere Objekt-Dateien (.o) zusammengefasst werden beim statischen Binden eines Programms werden die benötigten Objekt- Dateien zu der ausführbaren Datei hinzukopiert Bibliothek ist bei der Ausführung des Programms nicht mehr sichtbar dynamische, gemeinsam genutzte Bibliotheken (shared libraries) Zusammenfassung von übersetzten C-Funktionen beim Binden werden Referenzen auf die Funktionen offen gelassen Shared Library ist nur einmal im Hauptspeicher vorhanden Shared Library wird in virtuellen Adressraum dynamisch gebundener Programme beim Laden eingeblendet, noch offene Referenzen werden danach gebunden U5.1 U5.2 U5-1 Symboltabellen Zugriff auf Funktionen und Variablen über symbolische Namen Eine Übersetzungseinheit (C-Datei) definiert und verwendet Symbole Hauptprogramm definiert das Symbol main für die main-funktion Programm ruft (verwendet) eine Funktion der C-Bibliothek (z.b. malloc) C-Datei definiert eine globale (nicht-static) Variable Programm verwendet eine globale Variable, die u.u. in einer anderen Übersetzungseinheit definiert wurden Statisches Binden: Binden der Übersetzungseinheiten zum Binärabbild Offene Symbolreferenzen werden aufgelöst definiert in anderen Übersetzungseinheiten Suche in Programmbibliotheken GCC sucht beim Binden implizit in der Standard C-Bibliothek (libc.a) weitere Bibliotheken können vom Entwickler angegeben werden Der Namensraum ist flach jeder Name muss eindeutig sein es darf auch keine Funktion mit dem Namen einer globalen Variable geben Kompilierte Übersetzungseinheit (Objekt-Datei) enthält Symboltabelle Liste mit Symbolen, die von der Einheit verwendet werden Liste von Symbolen, die von der Einheit definiert werden U5.3 U5.4
2 1 Statische Bibliotheken erstellen Archiv (Dateiendung.a) von Objekt-Dateien (.o-dateien) Erstellen einer Bibliothek mit dem Kommando ar ar -r -c -s libexample.a bar.o foo.o Jede Objekt-Datei enthält wiederum eine Symboltabelle Anzeige mit dem Kommando nm libexample.a bzw. nm bar.o Die Bibliothek kann dem Linker als Symbolquelle angeboten werden Parameter -Lpfad: Suche nach Bibliotheken (.a-dateien) in pfad Parameter -llibname: Binden mit der Bibliothek libname diese wird in einer Datei liblibname.a in den Suchpfaden gesucht Der Linker bindet dann alle Objekt-Dateien, die bis dahin unaufgelöste Symbole definieren, zum Binärabbild dazu Die Reihenfolge von Objekt-Dateien und Bibliotheken ist wichtig U5.5 2 Beispiel: Kompilieren mit statischen Bibliotheken void main ( void ) { bar ( 42 ); #ifndef BAR_H #define BAR_H void bar ( int ); Module exportieren eine Schnittstelle (Header-Datei) void bar ( int param ) { /* do stuff */ #endif main.c bar.h (Schnittstelle) bar.c (Implementierung) Funktionsdeklarationen und ggf. Deklarationen (extern) globaler Variablen Beim Übersetzen muss der Compiler den Typen eines Symbols kennen Einbinden der Schnittstellenbeschreibung mit Die Adresse der Funktion bzw. Variable ist an dieser Stelle nicht notwendig Parameter -Ipfad: Teilt Compiler zusätzlichen Suchpfad für Headerdateien mit gcc -c <...> -I/myincludes main.c U5.6 3 Beispiel: Binden mit statischen Bibliotheken void main ( void ) { bar ( 42 ); #ifndef BAR_H #define BAR_H void bar ( int ); void bar ( int param ) { /* do stuff */ #endif main.c bar.h (Schnittstelle) bar.c (Implementierung) 4 Beispiel 2: Binden mit statischen Bibliotheken main.o T main U x1 x1.o x2.o y.o T x1 T x2 T y U y U x2 libx.a liby.a Modul bar definiert Symbol bar ( Funktion void bar(int); ) Hauptprogramm ruft die Funktion bar auf (verwendet Symbol bar) Annahme: Modul bar.o ist Teil der Bibliothek libexample.a in /libdir Übersetzung mit Kommando: gcc -static -L/libdir -o main <...> main.o -lexample Falsch (warum?): gcc -static -L/libbdir -o main <...> -lexample main.o U5.7 Wie lautet der Bindeaufruf in diesem Beispiel? gcc -static -L/libdir -o main main.o -lx -ly Beim Einbinden von y.o tritt ein neues undefiniertes Symbol x2 auf x2 wird nicht mehr aufgelöst, da libx.a nicht erneut durchsucht wird Lösung: Mehrfachangabe von -lx gcc -static -L/libdir -o main main.o -lx -ly -lx U5.8
3 U5-3 Shared Libraries U5-3 Shared Libraries 1 Shared Libraries U5-3 Shared Libraries Kein Dateiarchiv sondern eine ladbare Funktionssammlung Erzeugen mit gcc Code der Funktionen liegt nur einmal im Hauptspeicher, kann aber in verschiedenen Anwendungen an unterschiedlichen Adressen im virtuellen Adressraum positioniert sein keine absoluten Adressen (Sprünge, Unterprogrammaufrufe) im Code erlaubt -> PIC (position independent code) muss beim Kompilieren der Quellen berücksichtigt werden gcc -fpic -c file1.c gcc -fpic -c file2.c... Bibliothek wird durch Binden mehrerer.o-dateien erzeugt gcc -shared -o libutil.so file1.o file2.o... U5.9 Beim Binden einer Anwendung werden Funktionen nicht aus Bibliothek kopiert gcc prog.c -L. -lutil -o prog Aufruf analog zum statischen Binden (aber Option -static hat dort verhindert, dass dynamisch gebunden wird) Bibliothek libutil.so wird gesucht Endgültiges Binden erfolgt erst beim Laden Beim Laden von prog (exec) wird zunächst der dynamic linker/loader (ld.so) geladen ld.so lädt prog und die Bibliothek (wenn noch nicht im Hauptspeicher vorhanden) und bindet noch offene Referenzen Bibliothek wird von ld.so in mehreren Directories gesucht (über Environment-Variable LD_LIBRARY_PATH einstellbar) Reihenfolge von Bibliotheken und Objekt- bzw. Quelldateien unwichtig Mehrfachaufführung einer Bibliothek nicht notwendig U Einführung (2) 1 Einführung RCS ist ein Versionskontrollsystem, das Änderungen an Dateien mit dem Namen des Ändernden, dem Zeitpunkt und einem Kommentar speichert Zugriffe auf Versionen kontrolliert und koordiniert eindeutige Identifizierung verwendeter Versionen erlaubt redundante Speicherung von Versionen vermeidet es wird jeweils die letzte Version einer Datei gespeichert zusätzlich werden sog. reverse deltas (Beschreibungen, wie aus Version n Version n-1 erzeugt wird) abgelegt RCS besteht aus einer Reihe von Kommandos, die es dem Benutzer erlauben Dateien unter RCS-Kontrolle zu stellen und Kopien aller Versionen zu bekommen, die danach erstellt wurden eine Version zum Editieren zu entnehmen und diese gegen gleichzeitige Änderungen zu sperren Neue Versionen (mit Kommentar) zu erzeugen Unbrauchbare Änderungen rückgängig zu machen Zustandsinformation von Dateien abzufragen Zeilenweise Unterschiede zwischen verschiedenen Versionen auszugeben Log-Informationen über Versionen: Urheber, Datum, usw. U5.11 U5.12
4 3 Terminologie 4 Nummerierung von Versionen Delta Menge von zeilenweisen Änderungen an der Version einer Datei unter der Kontrolle von RCS (die Begriffe Version" und Delta werden oft synonym gebraucht) Revision-Id Jede Version erhält zur Identifikation eine Identifikation zugewiesen: Release-Nummer.Level-Nummer RCS-Datei enthält die neueste Version und alle vorhergehenden Versionen in Form von Deltas zusammen mit Verwaltungsinformationen der Dateiname endet auf,v, die RCS-Datei ist entweder im Unterdirectory RCS, oder im gleichen Directory wie die Arbeitsdatei abgelegt Arbeitsdatei Kopie einer Version aus der RCS-Datei U5.13 Versionen werden ausgehend von der Ur-Version nummeriert: release.level Versionen in einer Verzweigung erhalten release.level.branch.branchlevel Verzweigung branch U Kommandos Überblick 5 Kommandos ci(1) ci(1) check in speichert die Arbeitsdatei als neue Version in der RCS-Datei ab falls noch nicht vorhanden, wird ein neue RCS-Datei erzeugt co(1) check out extrahiert eine existierende Version aus der RCS-Datei (nur zum Lesen oder exklusiv zum Schreiben) rcs(1) Modifikation von RCS-Datei-Attributen rlog(1) Ausgabe von log-information und RCS-Datei-Attributen ident(1) extrahiert RCS-Identifikatoren aus einer Datei rcsclean(1) nicht-modifizierte Arbeitsdateien löschen rcsdiff(1) diff zwischen Versionen einer RCS-Datei rcsmerge(1) erzeugt aus zwei Versionen (insbes. bei Verzweigungen) eine neue Version bei allen Kommandos kann als filename immer sowohl der Arbeitsdateiname oder der RCS-Dateiname angegeben werden U5.15 check in RCS-Revisions Erzeugen neuer Versionen ci(1) übernimmt neue Versionen in RCS-Dateien die neue Version wird aus der jeweiligen Arbeitsdatei entnommen, die Arbeitsdatei wird anschließend gelöscht existierte zu der Arbeitsdatei noch keine RCS-Datei, wird eine neue RCS- Datei erzeugt Aufrufsyntax (nur die wichtigsten Optionen angegeben!): ci [-rrev] [-lrev] [-urev] filename... -rrev -lrev -urev die neue Version erhält Version rev rev muß größer als die letzte existierende Version sein soll eine neue Release erzeugt werden, genügt die Angabe der Release-Nummer (z. B. -r5) wie ci -r, anschließend wird automatisch ein co -l durchgeführt wie ci -r, anschließend erfolgt ein co U5.16
5 5 Kommandos ci(1) Beispiel ci, rlog % ci prog.c RCS/prog.c,v <-- prog.c initial revision: 1.1 enter description, terminated with single. or end of file: NOTE: This is NOT the log message! >> Program to demonstrate RCS >>. done % rlog prog.c RCS file: RCS/prog.c,v Working file: prog.c head: 1.1 branch: locks: strict access list: symbolic names: comment leader: " * " keyword substitution: kv total revisions: 1; selected revisions: 1 description: Program to demonstrate RCS revision 1.1 date: 1992/07/20 11:56:43; author: jklein; state: Exp; Initial revision ============================================================ U Kommandos co(1) check out RCS Revisions Versionen entnehmen co(1) entnimmt eine Version aus allen angegebenen RCS-Dateien die entnommene Version wird als Arbeitsdatei abgespeichert der Name der Arbeitsdatei ergibt sich aus dem Namen der RCS-Datei, wobei die Endung,v und ggf. der Pfad-Prefix RCS/ weggelassen werden Aufrufsyntax (nur die wichtigsten Optionen angegeben!): co [-rrev] [-lrev] [-urev] filename... -rrev -lrev -urev extrahiert die neueste Version, der Versionsnummer kleiner oder gleich rev ist wie co -r, extrahiert die Version für den Aufrufer exklusiv zum Schreiben (für weitere co-aufrufe gesperrt) wie co -r, falls eine Sperre der Version durch den Aufrufer existiert, wird diese aufgehoben U Kommandos co(1) 6 Identifikation von RCS-Versionen Beispiel co, rlog % co -l prog.c RCS/prog.c,v --> prog.c revision 1.1 (locked) done % rlog prog.c RCS file: RCS/prog.c,v Working file: prog.c head: 1.1 branch: locks: strict jklein: 1.1 access list: symbolic names: comment leader: " * " keyword substitution: kv total revisions: 1; selected revisions: 1 description: Program to demonstrate RCS revision 1.1 locked by: jklein; date: 1992/07/20 11:56:43; author: jklein; state: Exp; Initial revision ============================================================ % U5.19 RCS ersetzt bei einem check out im Text alle Vorkommen der Zeichenkette $Id$ durch $Id: filename revisionnumber date time author state locker$ co(1) sorgt dafür, dass diese Zeichenkette automatisch auf aktuellem Stand gehalten wird um diese Zeichenkette in Objekt-Code zu implantieren, reicht es, sie in als String im Programm anzugeben in C z. B. static volatile const char rcsid[] = "$Id$"; mit dem Kommando ident(1) können solche RCS-Identifikatoren aus beliebigen Dateien extrahiert werden damit ist z. B. feststellbar, aus welchen Versionen der Quelldateien ein ausführbares Programm entstanden ist U5.20
U5 5. Übung. U5-1 Überblick. Besprechung 3. Aufgabe (mini_sh) Fragen zur Aufgabe 4 (malloc)??? Erstellen von C-Funktionsbibliotheken. SoS I - Ü U5.
U5 5. Übung U5 5. Übung U5-1 Überblick Besprechung 3. Aufgabe (mini_sh) Fragen zur Aufgabe 4 (malloc)??? Erstellen von C-Funktionsbibliotheken RCS U5.1 U5-2 Erstellen von C-Funktionsbibliotheken U5-2 Erstellen
U5-2 Erstellen von C-Funktionsbibliotheken
U5 5. Übung U5 5. Übung U5-1 Überblick Besprechung 3. Aufgabe (mini_sh) Fragen zur Aufgabe 4 (malloc)??? Erstellen von C-Funktionsbibliotheken RCS U5.1 1 Überblick statische Bibliotheken Archiv, in dem
U5 5. Übung U5 5. Übung
U5 5. Übung U5 5. Übung Besprechung 3. Aufgabe (halde) Erstellen von C-Funktionsbibliotheken RCS U5.1 U5-1 Überblick C-Funktionsbibliotheken U5-1 Überblick C-Funktionsbibliotheken statische Bibliotheken
Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)"
Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)" Christof Elbrechter Neuroinformatics Group, CITEC April 24, 2014 Christof Elbrechter Praxisorientierte
Revision Control System. Versionskontrolle
Versionskontrolle Software-Versionen Was habe ich geändert? Alles Quatsch, alles zurück... Wie fixe ich den Bug in Version 1.0 im Feld? Wie integriere ich den gerade eingetroffenen Bugfix für Version 3.6
Modulare Programmierung und Bibliotheken
Modulare Programmierung und Bibliotheken Proseminar-Vortrag am 24.06.2011 von Ludwig Eisenblätter Ludwig Eisenblätter 1 von 25 Modulare Programmierung und Bibliotheken Inhaltsübersicht Motivation / Einleitung
Bei der Fortbildung für RCS. I abc. Phone: +49 30 383983-0 http://www.berlin.broker.de. nformation GmbH
Bei der Fortbildung für RCS Die Konzentrationsfähigkeit läßt nach 40 Minuten nach! Möchten Sie in der Mitte jedes Blockes, nach ca. 45 Minuten eine kurze Pause machen? RCS Revision Control System Zeitplan
Einführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
Programm in Source-Files aufteilen Erhöht Lesbarkeit Aufteilung orientier t sich an logischer Struktur des Programms Getrenntes Übersetzen möglich:
Source-Files Programm == Source-File nicht sinnvoll Unübersichtlich Bei jeder kleinen Änderung gesamtes File neu übersetzen Übersetzen dauert lange Keine Gruppenarbeit möglich Programm in Source-Files
Compiler und Präprozessor (1) Erstellen eines Projektes
Compiler und Präprozessor (1) Erstellen eines Projektes Projekte bestehen meist aus mehreren Dateien, z.b. Quelldateien, Funktionssammlungen in Bibliotheken Zur Definition eines Projektes sind folgende
Propädeutikum. Dipl.-Inf. Frank Güttler
Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik
CVS. The open standard for version control. (Concurrent Versions System) Maik Zemann CVS
CVS Maik Zemann CVS (Concurrent Versions System) The open standard for version control 1 Gliederung Gliederung Was ist CVS? Motivation? Konzept von CVS Die wichtigsten Befehle Merging Logging im Quelltext
Programmentwicklung mit C++ (unter Unix/Linux)
Programmentwicklung mit C++ (unter Unix/Linux) Erste Schritte Der gcc - Compiler & Linker Organisation des Source-Codes & Libraries Automatische Programmgenerierung: Make Birgit Möller & Denis Williams
Programmbibliotheken
Programmbibliotheken Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2005-11-15 Inhaltsverzeichnis 1 Separate Compilation 1 1.1 Zerlegung von Programmen in Module.................... 1 1.2 Die Headerdateien...............................
Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9
Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere
Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff
Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind
Deklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
RCS-Einführung, Tipps und Tricks
RCS-Einführung, Tipps und Tricks Version 1.13 17.12.2014 Die Informationen in diesem Skript wurden mit größter Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig ausgeschlossen werden. Der Autor
Vorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
CVS - Begriffe. Einführung in CVS
CVS - Concurrent Versions System Programm zur Versionskontrolle von Quellcode: Alle Versionsstände sind gespeichert. Die Änderungen sind nachvollziehbar. Alte Versionsstände lassen sich zurückholen. Mehrere
Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Buildsysteme
Grundkurs C++ Buildsysteme Buildsysteme Beispielhaftes Übersetzungsszenario: Verzeichnis tutorial7/ main.cpp, lcdrange.cpp, lcdrange.h *.cpp Kompilieren *.o *.h Grundkurs C++ 2 Headerdateien //blackbox.h
Vorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm
Linux Prinzipien und Programmierung
Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2011/2012 1 / 22 popen Programmentwicklung unter Linux make gcc, objdump, readelf 2 / 22 Die Funktion popen Im
Objektorientierung: Klassen und Objekte
Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen
Softwarepraktikum: Einführung in gcc / g++
Softwarepraktikum: Einführung in gcc / g++ (Eingebettete Systeme und Robotik),, http://ai3.inf.uni-bayreuth.de /home/db_lehre/softwarepraktikum/einfuehrungsvortraege/gcc-vortrag.01.sxi Unterschied gcc
DLLs (dynamic loaded libraries) mit MingW erstellen
DLLs (dynamic loaded libraries) mit MingW erstellen Autor: Michel D. Schmid Datum: April 2, 2009 Contents 1 Einführung 1 1.1 Open-Source Tools.......................................... 1 2 Beispiel 1:
Dr. Monika Meiler. Inhalt
Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11
Übersicht. C Modularisierung. Präprozessor, Compiler, Linker. Präprozessor, Compiler, Linker. Präprozessor, Compiler und und Linker Linker
Übersicht Präprozessor, Compiler und und Linker Linker Befehle des Präprozessors C Modularisierung Bedingte Kompilierung Modulare Programmierung Prinzipien der Modularisierung 1 2 Präprozessor, Compiler,
Compilieren und Linken von C- und C++-Dateien
Compilieren und Linken von C- und C++-Dateien 1999-2011 Dipl.Phys. Gerald Kempfer Lehrbeauftragter / Gastdozent an der Beuth Hochschule für Technik-Berlin Internet: public.beuth-hochschule.de/~kempfer
check_cisco_voice Dokumentation
check_cisco_voice Dokumentation Inhaltsverzeichnis 1. Vorbereitung...2 2. Verwendung...3 2.1 Usage / Parameter...3 2.2 Modi...5 2.2.1 Lern-Modus...5 2.2.2 Interface-Modus...6 2.2.3 Gesamtstatus...8 2.2.4
Entwicklung mit mehreren Dateien
Frühjahrsemester 2011 CS104 Programmieren II Teil II: C++ Programmierung Kapitel 9: Entwicklungsprozess in C++ H. Schuldt Entwicklung mit mehreren Dateien In C++ ist es üblich, den Quelltext in mehreren
Grundlagen der Informatik - 6. Praktikum
Grundlagen der Informatik - 6. Praktikum In diesem Praktikum soll es neben der Anwendung von Funktionsdefinitionen auch um einfache Prinzipien der verteilten Quelltext-Strukturierung gehen. Diese spielt
GUI Programmierung mit GTK
LinuxFocus article number 295 http://linuxfocus.org GUI Programmierung mit GTK by Özcan Güngör About the author: Ich benutze Linux seit 1997. Freiheit, Flexibilität, Open
Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only
Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer
Erstellung von Bibliotheken in CoDeSys V3
Dokument Version 2.0 3S - Smart Software Solutions GmbH Seite 1 von 10 INHALT 1 EINFÜHRUNG 3 2 BIBLIOTHEKSKONZEPT IM DETAIL 4 2.1 Kategorien von Bibliotheken 4 2.1.1 System 4 2.1.2 Internal 4 2.1.3 Application
PIWIN 1 Übung Blatt 5
Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:
Funktionen und Parameter
Funktionen in C++ Funktionen und Parameter Wie in Java: Parameter sind lokale Variablen Argumente werden bei Aufruf zugewiesen Extras: Zeiger-Parameter für alle Typen: als Rückgabewerte um große Kopien
Javakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
Eine Einführung in C-Funktionen
Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................
Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff
Programmieren in C Operatoren, Variablen und deren Sichtbarkeit Prof. Dr. Nikolaus Wulff Auswertung von Ausdrücken Was passiert wenn ein Ausdruck wie z. B. int y,x=2; y = ++x * x++; im Computer abgearbeitet
Bakefiles. TgZero Technik.Blosbasis.net. April 1, 2013
TgZero Technik.Blosbasis.net April 1, 2013 1 Inhaltsverzeichnis 1 Makefile 3 1.1 Was sind Makefiles?........................ 3 2 Bakefile 3 3 Aufbau einer Bakefile 4 3.1 Targets...............................
Übersicht zur Programmentwicklung unter UNIX
Fachhochschule Wiesbaden Fachbereich Informatik Prof. Dr. Reinhold Kröger Übersicht zur Programmentwicklung unter UNIX Auf den folgenden Seiten werden die wesentlichen Aspekte und üblichen Techniken zur
Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.
Vorbemerkungen Zur Erinnerung aktueller Standpunkt: Entwickler von (bibliotheken) jetzt sind wichtig interne Repräsentation der Daten Realisierung der gewünschten Funktionalität Bereitstellung geeigneter
Betriebssysteme Teil 4: Übersetzung von C-Programmen
Betriebssysteme Teil 4: Übersetzung von C-Programmen 18.10.13 1 Übersicht Übersetzungsprozess gcc(i) als Steuerprogramm Assembler Binder Hauptprogramme in C In dieser Einheit werden nur die Grundprinzipien
Buffer Overflow 1c) Angriffsstring: TTTTTTTTTTTTTTTT (16x) Beachte: Padding GCC-Compiler Zusatz: gcc O2 verhindert hier den Angriff (Code Optimierung)
Buffer Overflow 1c) 1 char passok='f'; 2 char password[8]; 3 printf( Passwort: ); 4 gets(password); 5 if(!strcmp(password, daspassw )){passok = 'T';} 6 if(passok=='t'){printf( %s, Willkommen! );} 7 else
Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler
Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale
Codingstandard. Softwareentwicklung Praktikum Stand: 27.02.2008
I. Einleitung II. Codingstandard Softwareentwicklung Praktikum Stand: 27.02.2008 Wie in der Vorlesung schon ausgeführt wurde, ist die Lesbarkeit und Wartbarkeit des Sourcecodes ein sehr wichtiges Kriterium
Eclipse und Java Einheit 06: Building Eclipse Projete mit Ant
Eclipse und Java Einheit 06: Building Eclipse Projete mit Ant Laith Raed Ludwig-Maximilians-Universität München Institut für Informatik: Programmierung und Softwaretechnik Prof.Wirsing Inhaltsverzeichnis
ATM18-Projekt Arbeiten mit CodeVisionAVR C-Compiler Teil 02 - Aufbau eines C-Projektes
Teil 01 - Einführung 1 Eine Einführung in C 1.1 Warum C? 1.2 Wie entstand C? 1.3 Der AVR-Mikrocontroller in einem eingebetteten System 1.4 1.5 Editieren von Quell-Dateien 2 Was ist ein C-Projekt? 2.1 Erzeugen
Einführung in Javadoc
Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:
Objektorientiertes Programmieren für Ingenieure
Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen
Java Programmierung auf der Konsole / unter Eclipse
Fakultät Informatik, HFU Brückenkurs Programmieren 1 Java Programmierung auf der Konsole / unter Eclipse Allgemeine Begriffe Programmiersprache: künstliche Sprache zur Notation von Programmen Programm:
Praktikum Betriebssysteme 1. Aufgabe (1)
FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten
Sicheres C Programmieren in Embedded Systemen ARM I (ARM7TMDI [1] ) Wintersemester 2010-2011
Sicheres C in Embedded Systemen ARM I (ARM7TMDI [1] ) Wintersemester 2010-2011 Dipl. Ing. (FH) Ebrecht Roland, Infineon Technologies AG M.Eng (Electronic Systems) Güller Markus, Infineon Technologies AG
Software Engineering. 13. Configuration Management. Franz-Josef Elmer, Universität Basel, HS 2012
Software Engineering 13. Configuration Management Franz-Josef Elmer, Universität Basel, HS 2012 Software Engineering: 13. Configuration Management 2 Übersicht Dokumentation, Installationssoftware, etc.
C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen
C++ Kurs Teil 1 "hello world" Vergleich von C++ und Java Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Spezialitäten Schlüsselwort 'const', Copy Constructor,
Java Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
Dokumentieren mit Eclipse und Doxygen
Dokumentieren mit Eclipse und Doxygen Boris Budweg, 28.11.2009 Version 0.2 Abstract: Kurze Anleitung für die Benutzung von Doxygen und Eclox in Eclipse. Doxygen-Kommentare / Schlüsselwörter...2 Beispiel...2
Übung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
Softwarewerkzeuge oder Praxis der Softwareentwicklung
Softwarewerkzeuge oder Praxis der Softwareentwicklung 1/107 Prof. Dr.-Ing. Andreas Zeller Lehrerweiterbildung Informatik, Schloß Dagstuhl, 29.11.2001 Übersicht 1/107 Ausgewählte Themen und Werkzeuge der
DAP2-Programmierpraktikum Einführung in C++ (Teil 1)
DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume
Zusammenfassung des Handzettels für Programmieren in C
Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.
09.10.2015. 02.10.2015 + 07.10.2015 Seite 1. 02.10.2015 + 07.10.2015 Seite 2
02.10.2015 + 07.10.2015 Seite 1 02.10.2015 + 07.10.2015 Seite 2 1 Anzahl der Klassenarbeiten: Mindestens zwei Klassenarbeiten pro Halbjahr (= 4 KA pro Jahr) Im ersten Ausbildungsjahr gibt es jedoch kein
Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck
Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
Grundlagen. Kapitel 1
Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die
II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
Kapitel 9 Konfigurationsverwaltung
Kapitel 9 Konfigurationsverwaltung SWT I Sommersemester 2010 Walter F. Tichy, Andreas Höfer, Korbinian Molitorisz IPD Tichy, Fakultät für Informatik KIT die Kooperation von Forschungszentrum Karlsruhe
Programmierkurs Java
Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen
Grundlagen. Die Komponenten eines C Programms. Das erste Programm
Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen
Erstellen eines PlugIns
Erstellen eines PlugIns Mai 2013 Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 Einleitung... 3 1.1 Ablauf... 3 1.2 Weitere Dokumentation... 3 1.3 Wichtige Hinweise... 3 2 Beschreibung...
Software Engineering. 14. Build und Deployment. Franz-Josef Elmer, Universität Basel, WS 2006/07
Software Engineering 14. Build und Deployment Franz-Josef Elmer, Universität Basel, WS 2006/07 Software Engineering: 14. Build und Deployment 2 Übersicht Dokumentation, Installationssoftware, etc. Source
Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller
Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 08:00 09:30 Uhr (90 min) Aufgabenblätter 14 Seiten (einschl. Deckblatt) erreichbare Punktzahl 54 zugelassene
Embedded-Linux-Seminare. Toolchains
Embedded-Linux-Seminare Toolchains http://www.embedded-linux-seminare.de Diplom-Physiker Peter Börner Spandauer Weg 4 37085 Göttingen Tel.: 0551-7703465 Mail: info@embedded-linux-seminare.de Kopier-Rechte
Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden:
3 Grundlagen 3.1 Starten eines C++ Programms Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 1. Programme, die vom Interpreter der Programmiersprache Zeile für Zeile interpretiert
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
Studentische Lösung zum Übungsblatt Nr. 7
Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int
Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme
Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes
Grundlagen der Verwendung von make
Kurzskript zum Thema: Grundlagen der Verwendung von make Stefan Junghans Gregor Gilka 16. November 2012 1 Einleitung In diesem Teilskript sollen die Grundlagen der Verwendung des Programmes make und der
Systemprogrammierung: Erste Schritte (P) Das Manpage-System (P) Versionsverwaltung mit Subversion (P)
Systempraktikum im Wintersemester 2009/2010 (LMU): Zum Selbststudium Foliensatz 0 Systemprogrammierung: Erste Schritte (P) Das Manpage-System (P) Versionsverwaltung mit Subversion (P) Dr. Thomas Schaaf,
Vererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
Migrationsanleitung von 2.0 auf 2.1
Die wichtigste Neuerung von 2.0 auf 2.1 aus Sicht der Anwendungs- Migration ist die Verwendung von Maven. Mit Maven holt sich die Anwendung alle notwendigen Bibliotheken in den jeweils angegebenen Versionen
U4 Arbeiten mit eigenen PSpice-Modellen
U4-1 U4 Arbeiten mit eigenen PSpice-Modellen Umfeld In der Regel wird bei einer Simulation mit Standardkomponenten aus der Bibliothek gearbeitet. Diese Bibliothek deckt (in der Vollversion) praktisch alle
Kurzanleitung zur Benutzung der Entwicklungsumgebung Code::Blocks für die Übung aus Programmieren 1 und 2
Kurzanleitung zur Benutzung der Entwicklungsumgebung Code::Blocks für die Übung aus Programmieren 1 und 2 Institut für Mikroelektronik, TU Wien 8. Oktober 2009 Dieses Dokument ist für den schnellen Einstieg
C++ Programmierung. Uwe Naumann. LuFG Informatik 12, RWTH Aachen University, Germany
C++ Programmierung Uwe Naumann LuFG Informatik 12, RWTH Aachen University, Germany Leave me alone world... Hauptprogramm int main(); return 0; Ausgabe auf Bildschrim #include std :: cout
5.5.8 Öffentliche und private Eigenschaften
5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung
C++-Zusammenfassung. H. Schaudt. August 18, 2005
C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:
Ogre Einführung Teil 1
Inhalt -Einleitung -Installieren und Einrichten von Ogre -Die erste Anwendung Ogre Einführung Teil 1 Einleitung Eine 3D Engine ist eine sehr komplexe Software und besteht aus mehreren tausend Zeilen Programmcode.
Einführung in die. objektorientierte Programmierung
Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie
1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
Universität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Kapitel 10 Konfigurationsverwaltung Prof. Dr. Walter F. Tichy David J. Meder Inhalt Grundzüge der Konfigurationsverwaltung (KV) Revision
Angewandte Kryptografie Praktikum 0
Angewandte Kryptografie Praktikum 0 Thema: C++ Programmierung mit Eclipse Sommersemester 2015 Prof. Dr. Christoph Karg Hochschule Aalen Im Rahmen dieses Praktikums wird erläutert, wie man mit den GNU Entwicklungswerkzeugen,
Das Concurrent Versions System (CVS)
Versionenkontrolle Das Concurrent Versions System (CVS) Vortrag im Proseminar Unix Tools 1 Markus Sander sander@in.tum.de 07.06.2005 Versionenkontrolle Gliederung 1 Versionenkontrolle 2 Versionenkontrolle
Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.
Computergrafik 1 Übung, Wintersemester 2011 Eclipse Hands-On C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.12 1 Eclipse - Die IDE 1. Entwicklungsumgebung (IDE) herunterladen / installieren
TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München
Time CGI Version 1.5 Stand 04.12.2013 TimeMachine Dokument: time.odt Berger EDV Service Tulbeckstr. 33 80339 München Fon +49 89 13945642 Mail rb@bergertime.de Versionsangaben Autor Version Datum Kommentar
Dateisystem 2, Suchen & Finden, Manpages
Dateisystem 2, Suchen & Finden, Manpages Linux-Kurs der Unix-AG Malte Koster 17. Januar 2014 ln ln ( link ) legt Verknüpfungen an, Verwendung wie cp ohne Optionen wird ein zweiter Name für die gleiche
Kurzeinführung in C. Johannes J. Schneider 27.10.2004
Kurzeinführung in C Johannes J. Schneider 27.10.2004 1 Einleitung C ist eine in vielen Bereichen sehr häufig verwendete Programmiersprache, die von der Betriebssystemprogrammierung bis hin zur Programmierung
2010 Ing. Punzenberger COPA-DATA GmbH. Alle Rechte vorbehalten.
2010 Ing. Punzenberger COPA-DATA GmbH Alle Rechte vorbehalten. Die Weitergabe und Vervielfältigung dieses Dokuments ist - gleich in welcher Art und Weise nur mit schriftlicher Genehmigung der Firma COPA-DATA
Einfu hrung in Subversion mit TortoiseSVN
Einfu hrung in Subversion mit TortoiseSVN Inhalt Konzept... 1 Begriffe... 1 Werkzeuge... 2 Arbeiten mit TortoiseSVN... 2 Vorbereitung... 2 Erster Checkout... 2 Hinzufügen eines neuen Verzeichnisses...
Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0
Objects First With Java A Practical Introduction Using BlueJ Mehr über Vererbung Exploring polymorphism 1.0 Zentrale Konzepte dieses Kapitels Methoden-Polymorphie statischer und dynamischer Typ Überschreiben
Versionsverwaltung mit Mercurial für Einsteiger
Versionsverwaltung mit Mercurial für Einsteiger Chemnitzer Linuxtage 2009 Stefan Schwarzer, SSchwarzer.com info@sschwarzer.com Chemnitz, Germany, 2009-03-14 Versionsverwaltung mit Mercurial für Einsteiger