Definition „C (Programmiersprache)“

Was ist C?

| Autor / Redakteur: chrissikraus / Stephan Augsten

Die maschinennahe Programmiersprache C ist unter anderem noch weit verbreitet, weil sie auf praktisch jeder Plattform funktioniert.
Die maschinennahe Programmiersprache C ist unter anderem noch weit verbreitet, weil sie auf praktisch jeder Plattform funktioniert. (Bild: laurentvalentinjospi0 - Pixabay.com)

Die Programmiersprache C stammt aus den 1970ern, ist aber auch heute noch weit verbreitet: Sie bietet hohe Performance, arbeitet maschinennah und funktioniert mit minimalen Ressourcen auf den unterschiedlichsten Plattformen.

Neben der reinen Anwendungsentwicklung findet C bei der Erstellung von kompletten Betriebssystemen und einzelnen systemnahem Komponenten Verwendung. Außerdem wird die Sprache häufig für Embedded Systems genutzt.

In diesen Bereichen ist C wegen seiner hohen Geschwindigkeit und geringen Größe enorm weit verbreitet. So ist es möglich, komplexe Anwendungen auf minimaler Hardware effizient und stabil auszuführen. Die Programmiersprache C ist auch deshalb noch immer so weit verbreitet, weil sie auf praktisch jeder Plattform funktioniert. Wer plattformunabhängige Software schreiben möchte, erreicht mit C-Programmen ein sehr breites Publikum.

Übersichtlicher Sprachumfang

Der aktuellste C-Standard kommt mit 44 Schlüsselwörtern aus, ursprünglich waren es sogar nur 32. Zum Vergleich: C++ kennt inzwischen über 60, C# gar 79 reservierte Schlüsselworte. Gerade für Einsteiger gilt C als relativ leicht zu erlernen, weil die wenigen Schlüsselworte insgesamt nicht zu stark abstrahieren.

Moderne Hochsprachen wirken meist komfortabler und leistungsfähiger, da sie für viele gängige Operationen bequeme Sprachmittel bereitstellen. In C lassen sich diese Operationen ebenso gut realisieren - mit dem Unterschied, dass man die Details selbst programmiert.

Eine mögliche Gefahr ist, dass große Programme schnell unübersichtlich werden können. Der Entwickler hat große Freiheiten beim Programmieren mit C und bestimmt weitestgehend selbst, wie sauber und nachvollziehbar der Code geschrieben wird.

Manuelle Speicherverwaltung

C ist eine Programmiersprache, bei der sich Programmierer selbst um die dynamische Speicherverwaltung im Heap kümmern müssen. Zusammenhängender Speicher wird nach Bedarf alloziert und per Zeiger auf die Startadresse eines Speicherblocks wird später auf den Inhalt zugegriffen. Zudem kann über die Speicheradresse unmittelbar in den Speicher eingegriffen werden. So können die Inhalte direkt manipuliert werden.

Auch unzulässige Operationen sind möglich: Durch versehentlich überschriebene Speicherbereiche können können Informationen verloren gehen oder das Programm abstürzen. Von Haus aus bietet C zudem keinen Garbage Collector. Die Speicherbereinigung, also das Freigeben nicht mehr benötigter Speicherbereiche, muss ebenfalls gezielt gesteuert werden.

Softwareentwickler sind beim Programmieren mit C insgesamt sehr aktiv an der Nutzung des Speichers beteiligt. Wer mit C effizient programmieren will, muss also Aufbau und Funktionsweise des Speichers verstehen - oder externe Bibliotheken einbinden, die sich um die Speicherverwaltung kümmern.

Objektorientierte Programmierung nur auf Umwegen

C ist an sich keine objektorientierte Programmiersprache und bringt daher keine native Unterstützung für Objektorientierung mit. Wer unbedingt in C objektorientiert arbeiten möchte, kann sich jedoch selbst um die korrekte Implementierung von Klassen, Kapselung, Abstraktion, Vererbung und Polymorphie kümmern.

Mögliche Anwendungsfälle hierfür sind zum Beispiel komplexe Programme für Plattformen, die wegen limitierter Hardware oder fehlender Unterstützung schlicht kein Ausweichen auf objektorientierte Programmiersprachen wie C++ oder Objective-C zulassen.

C als Basis für andere Programmiersprachen

Höhere Programmiersprachen werden häufig in einen Zwischencode übersetzt, bevor sie vom Compiler verarbeitet werden. So kann die Programmiersprache an sich in einer Form angeboten werden, die für Menschen leicht nachvollziehbar und bequem ist. Für Compiler wäre dieser Code zu umständlich. Das würde unter anderem die Performance dramatisch senken.

Wird der Code jedoch in einen Zwischencode abstrahiert, kann der Compiler effizient damit umgehen. Da C sehr performant und maschinennah ist, wird die Sprache häufig für den Zwischencode verwendet, sprich C spielt auch beim Entwickeln höherer Programmiersprachen und im Compilerbau noch heute eine wichtige Rolle.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Was ist eine Native App?

Definition „Native Anwendung“

Was ist eine Native App?

Multimedia und Mobilität erfordern es, dass Anwendungen auf dem Smartphone als mobilem Endgerät in Funktionalität und Komfort überzeugen. Mit einer Native App kann diese Zielsetzung bedarfsgerecht entwickelt und angeboten werden. lesen

Low Code kann Zufriedenheit im Job erhöhen

Studie „Impact of Low-code on IT Satisfaction“

Low Code kann Zufriedenheit im Job erhöhen

Welchen Einfluss haben Low-Code-Lösungen auf die Zufriedenheit in den IT-Abteilungen? Mit dieser zentralen Fragestellung befasste sich IDG im Auftrag von Appian im Rahmen einer Studie. lesen

Rapid Prototyping und Low-Code-Entwicklung

Kundenerlebnis in Eigenregie

Rapid Prototyping und Low-Code-Entwicklung

Rapid Prototyping erlaubt es, einen Software-Prototypen direkt mit Hilfe so genannter Low-Code-Plattformen zum produktionsreifen Endprodukt weiterentwickeln. Das Prinzip: Stets nah am Problem und in Zusammenarbeit mit dem Kunden. lesen

Microsoft macht IntelliCode verfügbar

Preview 3 von Visual Studio 2019

Microsoft macht IntelliCode verfügbar

Die dritte Preview-Version von Visual Studio 2019 16.1 ist erhältlich. Die Vorschau enthält eine Reihe von Neuerungen, darunter standardmäßige IntelliCode-Unterstützung, C++-Verbesserungen zur Produktivitätssteigerung und .NET-Tooling-Updates. lesen

PHP-Tools für Entwickler

Programmieren mit PHP, Teil 9

PHP-Tools für Entwickler

Für PHP gibt es eine Reihe nützlicher Werkzeuge, mit denen Entwickler einfacher Programme schreiben und mit PHP arbeiten können. Neben Entwicklungsumgebungen und Editoren stellen wir in diesem Beitrag auch andere Zusatztools vor. lesen

10 Open-Source-Tools für jedes Testszenario

Apps und Anwendungen aller Art analysieren

10 Open-Source-Tools für jedes Testszenario

Ob einfacher Syntax-Test für Skripte oder aufwändiger Blackbox-Test für komplexe Web-Anwendungen: Mit den passenden Tools geht das Testing flott und mit Freude von der Hand. Hier zeigen wir zehn Open-Source-Werkzeuge, die man kennen sollte. lesen

Wege zur App – nativ, hybrid oder fürs Web

Abkürzungen erwünscht

Wege zur App – nativ, hybrid oder fürs Web

Um Apps für Android und iOS zu erstellen, gibt es mittlerweile sehr viele Ansätze. Eine Systematisierung ist hilfreich, um sich im technischen Dschungel zurechtzufinden. Ebenso entscheidend ist es, wie effektiv die jeweilige Vorgehensweise ist, denn die Time-To-Market ist oft entscheidend. Hier können plattformübergreifende Techniken punkten. lesen

10 Tipps für die DevSecOps-Strategie

Sichere Entwicklungsprozesse in agilen Umgebungen

10 Tipps für die DevSecOps-Strategie

Agile Entwicklung und DevOps haben zwar die Software-Entwicklung und -Bereitstellung beschleunigt, doch darunter leidet mitunter die Sicherheit. Wenn die Qualitätssicherung nicht Schritt halten kann, entsteht fehlerhafter und anfälliger Code. Checkmarx gibt 10 Tipps für die DevOps-Strategie. lesen

Einführung in Testbereiche und Varianten

Software Testing, Teil 1

Einführung in Testbereiche und Varianten

Jeder Software-Entwickler ist gleichzeitig auch Software-Tester – denn zumindest die selbst geschriebenen Funktionen spielt wohl jeder auch durch. Aber darüber hinaus? Das Feld der Tests reicht von einzelnen Units bis zur fertigen Software als Ganzes. Und in diesem weiten Feld gibt es etliche unterschiedliche Arten von Tests. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45660496 / Definitionen)