Systemnahe Programmierung in C [SPiC] [SerienID : 1061]

Die Vorlesungsaufzeichnung ist rein als ergänzendes Material gedacht zur eigenen Nachbereitung oder für Ausnahmefälle. Sie ersetzen nicht die regelmäßige Teilnahme an der Vorlesung. Deswegen  behalten wir uns vor die entsprechenden Videos kurz nach deren jeweiligen Vorlesungsterminen wieder mit einem Passwort zu versehen.

Die Vorlesung soll aufbauend auf den Informatik-Kenntnissen aus GdI und ersten Programmiererfahrungen mit der Programmiersprache Java grundlegende Kenntnisse der systemnahen Programmierung vermitteln.
Während sich moderne Anwendungsprogrammierung primär an den Zusammenhängen und Begriffen des Anwendungsproblems orientiert und von den tatsächlichen Abläufen im Rechner weitgehend abstrahiert wird, sind bei systemnaher Programmierung gerade diese Abläufe im Rechner/Mikrocontroller das zu lösende Problem. Damit stehen die mächtigen Abstraktionen eines Betriebssystems, einer Middleware oder einer virtuellen Maschine nicht oder zumindest nur in geringerem Umfang zur Verfügung.

Eine in diesem Umfeld weit verbreitete Programmiersprache ist C, die im Rahmen der Lehrveranstaltung als Grundlage für Vorlesung und praktische Übungen dienen wird.

Obwohl C aus softwaretechnischer Sicht nicht mehr aktuell ist und für den Aufbau größerer Anwendungssoftwaresysteme äußerst kritisch gesehen werden muss, ist ein großer Teil der heute in Betrieb befindlichen Software in dieser Sprache geschrieben und man ist dadurch häufig mit der Wartung oder Weiterentwicklung solcher Software konfrontiert.

Vor allem im Bereich von eingebetten Systemen und allen anderen Arten von systemnaher Programmierung wird C auch heute noch häufig für Neuentwicklungen eingesetzt. Viele Entwicklungswerkzeuge sind auf diese Sprache ausgerichtet und in den Entwicklergruppen ist die Erfahrung mit der Programmiersprache und der damit verbundenen Art der systemnahen Programmierung nach wie vor sehr weit verbreitet.

Der Fokus der Lehrveranstaltung liegt einerseits auf der Architektur systemnaher Software und den Zusammenhängen zwischen den Abstraktionen der Programmiersprache und den tatsächlichen Strukturen und Abläufen in der Hardware (z.B. Zeiger in C, virtueller Speicher, Speicherzellen des Hauptspeichers). Andererseits wird besprochen, wie man bei der gerade im ingenieurwissenschaftlichen Bereich wichtigen systemnahen Programmierung - z.B. für für eingebettete Systeme - vorgeht und diskutiert, wann und wo man eine sinnvolle Grenze zwischen systemnaher Software und der immer umfangreicher und komplexer werdenden Anwendungssoftware ziehen sollte. Im Vergleich zu Java sollen dabei vor allem auch die aus programmiertechnischer Sicht problematischen Seiten von C und die daraus resultierenden Gefahren beleuchtet werden.

Folien zur Vorlesung

Semester

Sommersemester 2020

Zugang via

Nur für Portal

aktualisiert

2023-04-26 10:00:06

Abonnements

31

    • #1
      Nur für Portal
      Kapitel 1: Einführung
      Dr. Volkmar Sieh
      2020-04-20 Sommersemester 2020
    • #2
      Nur für Portal
      Kapitel 2: Organisation [SS2021]
      Dr. Volkmar Sieh
      2021-04-12 Sommersemester 2020
    • #2
      Nur für Portal
      Kapitel 2: Organisation [SS2020]
      Dr. Volkmar Sieh
      2020-04-20 Sommersemester 2020
    • #3
      Nur für Portal
      Kapitel 3: Java versus C
      Dr. Volkmar Sieh
      2020-04-20 Sommersemester 2020
    • #4
      Nur für Portal
      Kapitel 4: Softwareschichten und Abstraktion
      Dr. Volkmar Sieh
      2020-04-20 Sommersemester 2020
    • #5
      Nur für Portal
      Kapitel 5: Sprachüberblick
      Dr. Volkmar Sieh
      2020-04-20 Sommersemester 2020
    • #6
      Nur für Portal
      Kapitel 6: Einfache Datentypen
      Dr. Volkmar Sieh
      2020-04-20 Sommersemester 2020
    • #7
      Nur für Portal
      Kapitel 7: Operatoren und Ausdrücke
      Dr. Volkmar Sieh
      2020-04-27 Sommersemester 2020
    • #8
      Nur für Portal
      Kapitel 8: Kontrollstrukturen
      Dr. Volkmar Sieh
      2020-04-27 Sommersemester 2020
    • #9
      Nur für Portal
      Kapitel 9: Funktionen
      Dr. Volkmar Sieh
      2020-04-27 Sommersemester 2020
    • #10
      Nur für Portal
      Kapitel 10: Variablen
      Dr. Volkmar Sieh
      2020-04-27 Sommersemester 2020
    • #11
      Nur für Portal
      Kapitel 11: Präprozessor
      Dr. Volkmar Sieh
      2020-05-04 Sommersemester 2020
    • #12
      Nur für Portal
      Kapitel 12: Programmstruktur und Module
      Dr. Volkmar Sieh
      2020-05-04 Sommersemester 2020
    • #13
      Nur für Portal
      Kapitel 13: Zeiger und Felder
      Dr. Volkmar Sieh
      2020-05-04 Sommersemester 2020
    • #14
      Nur für Portal
      Kapitel 14: Verbundtypen
      Dr. Volkmar Sieh
      2020-05-11 Sommersemester 2020
    • #15
      Nur für Portal
      Kapitel 15: Mikrocontroller Vorbemerkung
      Dr. Volkmar Sieh
      2020-05-11 Sommersemester 2020
    • #16
      Nur für Portal
      Kapitel 16: Mikrocontroller Prozessor
      Dr. Volkmar Sieh
      2020-05-11 Sommersemester 2020
    • #17
      Nur für Portal
      Kapitel 17: Mikrocontroller Peripherie
      Dr. Volkmar Sieh
      2020-05-11 Sommersemester 2020
    • #18
      Nur für Portal
      Kapitel 18: Unterbrechungen
      Dr. Volkmar Sieh
      2020-05-18 Sommersemester 2020
    • #19
      Nur für Portal
      Kapitel 19: Unterbrechungen Beispiel
      Dr. Volkmar Sieh
      2020-05-18 Sommersemester 2020
    • #20
      Nur für Portal
      Kapitel 20: Unterbrechungen Nebenläufigkeit
      Dr. Volkmar Sieh
      2020-05-18 Sommersemester 2020
    • #21
      Nur für Portal
      Kapitel 21: Ergänzungen - Zeiger
      Dr. Volkmar Sieh
      2020-05-25 Sommersemester 2020
    • #22
      Nur für Portal
      Kapitel 22: Ergänzungen - Ein-/Ausgabe
      Dr. Volkmar Sieh
      2020-05-25 Sommersemester 2020
    • #23
      Nur für Portal
      Kapitel 23: Ergänzungen - Fehlerbehandlung
      Dr. Volkmar Sieh
      2020-05-25 Sommersemester 2020
    • #24
      Nur für Portal
      Kapitel 24: Betriebssysteme
      Dr. Volkmar Sieh
      2020-05-25 Sommersemester 2020
    • #25
      Nur für Portal
      Kapitel 25: Dateisystem Einleitung
      Dr. Volkmar Sieh
      2020-06-08 Sommersemester 2020
    • #26
      Nur für Portal
      Kapitel 26: Dateisystem Unix
      Dr. Volkmar Sieh
      2020-06-08 Sommersemester 2020
    • #27
      Nur für Portal
      Kapitel 27: Prozesse
      Dr. Volkmar Sieh
      2020-06-15 Sommersemester 2020
    • #28
      Nur für Portal
      Kapitel 28: Prozesse Unix
      Dr. Volkmar Sieh
      2020-06-15 Sommersemester 2020
    • #29
      Nur für Portal
      Kapitel 29: Signale
      Dr. Volkmar Sieh
      2020-06-15 Sommersemester 2020
    • #30
      Nur für Portal
      Kapitel 30: Multiprozessoren
      Dr. Volkmar Sieh
      2020-06-22 Sommersemester 2020
    • #31
      Nur für Portal
      Kapitel 31: Nebenläufige Fäden
      Dr. Volkmar Sieh
      2020-06-22 Sommersemester 2020
    • #32
      Nur für Portal
      Kapitel 32: Nebenläufige Fäden - Praxis
      Dr. Volkmar Sieh
      2020-06-22 Sommersemester 2020
    • #33
      Nur für Portal
      Kapitel 33: Dynamische Speicherallokation
      Dr. Volkmar Sieh
      2020-07-06 Sommersemester 2020
    • #34
      Nur für Portal
      Kapitel 34: Speicherorganisation
      Dr. Volkmar Sieh
      2020-07-06 Sommersemester 2020
    • #35
      Nur für Portal
      Kapitel 35: Speicherorganisation Stack
      Dr. Volkmar Sieh
      2020-07-06 Sommersemester 2020
    • #36
      Nur für Portal
      Kapitel 36: Speicherorganisation Zusammenfassung
      Dr. Volkmar Sieh
      2020-07-06 Sommersemester 2020