Technische Infor matik 2 C/C++
Transcription
Technische Infor matik 2 C/C++
Technische Informatik 2 C/C++-Kurs Arbeitsumgebung © 2008 AG Rechnernetze 1.1 Arbeitsumgebung • Editoren (!= Entwicklungsumgebung) – vi, vim, gvim, Emacs 21, XEmacs • Compiler / Debugger – gcc / g++ – gdb • Satzsystem – LaTeX (mit [xk]dvi und [kg]?gv) • Sonstiges – bash – make – Versionskontrolle, Repositories © 2008 AG Rechnernetze 1.2 VI – Klassischer Unix-Bildschirm-Editor – In allen Unix-Versionen enthalten (z. T. als freier „Klon“) – Keine Unterstützung für Fenstersystem, Maus, Menüs – Nicht mächtig genug für die anspruchsvollere Aufgaben – Oft verwendet für Systemadministration → Grundkenntnisse nützlich • Auf (fast) jedem Rettungssystem enthalten, oft als einziger Editor © 2008 AG Rechnernetze 1.3 VIM - Vi IMproved – Abwär tskompatibel zum Standard-Editor vi – Vollständige Steuerung über Tastatur – Unterstützung für C/C++ • Zeilen-Indentierung • Syntaxauszeichnung – Programmentwicklung • Compiler-Aufruf: automatischer Sprung zum Fehler • automatischer Sprung an Variablen/Funktionsdeklarationen – Erweiterbar (in Vim-Script, Perl und Python) – Por tabel (läuft auf allen gängigen Plattformen) – kein Web-Browser, Mail-/Newsreader • Sondern nur ein Editor • „The right tool for the right job“ (alte Unix Philosophie) – Freie Software (Open Source) © 2008 AG Rechnernetze 1.4 Emacs – Komplett steuerbar über Tastatur • Maus wird nicht benötigt, ist aber möglich – Unterstützung für C++ • Zeilen-Indentierung • Syntaxauszeichnung – Programmentwicklung mit Emacs • Compiler-Aufruf: automatischer Sprung zum Fehler • Debugger-Steuerung: automatisches Aufsuchen von Source-Files – Leistungsfähiger Editor – Herstellerunabhängig, nicht systemspezifisch – Universell verfügbar • Späteres Umlernen unnötig • Freie Software! © 2008 AG Rechnernetze 1.5 Emacs – Customizable • Tastenbelegungen und Maus-Button-Belegungen änderbar • Parameter setzbar (edit-options, customize) – Extensible • Neue Kommandos können in Emacs-Lisp geschrieben werden – Vollwer tige Programmiersprache • On-line-Erweiterbarkeit • Hunder te von Emacs-Erweiterungen – E-Mail, News – Web-Browser – Sprachunterstützung (C, C++, Lisp, LaTeX, Java, TeX, SGML, ...) – Interaktion mit Programmen (Compiler, Debugger, Inter preter, etc.) – Emulationen für andere Editoren © 2008 AG Rechnernetze 1.6 Emacs • Emacs ist nicht mit einem Vortrag erlernbar – Menu kann als Nachschlagewerk für Tastenkombinationen dienen – Flyer mit Tastenkombinationen im Netz • Die Arbeitsumgebung auf dem Laptop bzw. beim Heimarbeitsplatz – /usr/local/share/emacs/site-lisp/README • Empfohlen: Emacs 21.3 – sollte heute überall Standard sein – überprüfen: emacs --version © 2008 AG Rechnernetze 1.7 Das GNU-Projekt und die FSF • Was ist Unfreie Software – Behinder t Kooperation und Austausch von Ideen – Zwingt ständig zur Neuerfindung des Rades • Was ist Freie Software – Förder t Kooperation unter Programmierern und Benutzern – Kann frei verwendet werden (auch verkauft!), vorausgesetzt sie bleibt frei – Erforder t spezielles Copyright, ≠ Public Domain/Freeware! • Die Free Software Foundation – Non-Profit-Organisation, entwickelt freie Software – Gegründet von Richard M. Stallman („rms“) – GNU: Gnu’s Not Unix – Komplettes freies, Unix-kompatibles System (Kernel: Linux, Hurd) – GNU General Public License (GPL) für GNU-Software © 2008 AG Rechnernetze 1.8 GNU-Software – GNU Emacs – GNU Compiler • C (gcc), C++ (g++); libg++ • GNU Debugger (gdb) • GNU Binutils (gas, gld) – Softwaretechnik • GNU make, RCS • GNU autoconf • Bison (Yacc-Ersatz), Flex (Lex-Ersatz) – Unix-Tools • GNU grep, awk, sed, diff, tar, Bash – Textverarbeitung • Texinfo • Groff • GhostScript © 2008 AG Rechnernetze 1.9 Arbeiten unter Windows • ti2 bedeutet Systemprogrammierung – Anwendungsbeispiel und Übungen beziehen sich auf Unix – Unix und Windows unterscheiden sich massiv in den Systemaufrufen • Nativ unter Windows arbeiten ist nicht empfehlenswert – Visual C++ und andere Compiler/Umgebungen können nicht verwendet werden – remote auf Unix-Rechner im Fachbereichsnetz arbeiten – Linux oder MacOS auf dem eigenen Rechner – vir tuelle Maschine mit Linux-Image auf dem eigenen Rechner © 2008 AG Rechnernetze 1.10