CC2

Toolchain

Linux | | C Teil 1: Main & NCurses

C ist eine sog. native Programmiersprache. Es legt im Gegensatz den Fokus auf bestmögliche Effizienz und Resourcenausnutzung. Es ist daher z.B. auf Embedded-Systemen verbreitet, kommt aber z.B. auch beim Linux-Kernel zum Einsatz.

“Nativ” bedeutet, dass C-Programme ohne einen weiteren Zwischenschritt direkt ausgeführt werden können, d.h. ohne einen Interpreter wie z.B. bei Java. Die Programme enthalten binären Maschinencode im Gegenteil zum lesbaren ASCII-Code des Source-Codes.

Zur Erzeugung eines Programms aus dem C-Quellcode, muss die jeweilige Tool-Chain (bestehend aus Compiler, Linker, Debugger usw.) des Betriebssystems verwendet werden.

  • Windows: Visual-C
  • Mac: XCode
  • Linux: GCC + CMake + QtCreator
Go check by yourself and type Meta-key-x butterfly

Wir beschränken uns hier auf Linux und dessen spezifische Tool-Chain!

Programme, die auf einem Betriebsystem übersetzt wurden, laufen daher auf keinem anderen Zielsystem. Dadurch erzeugt C sog. plattformabhängige Programme.

Der Quellcode ist jedoch unabhängig von der jeweiligen Plattform standardisiert. Neben dem eigenen Quellcode kann auch der Quellcode anderer in Form von sog. Bibliotheken eingebunden werden. Es gibt sowohl plattform-übergreifenden Bibliotheken wie NCurses als auch plattform-abhängige Bibliotheken wie z.B. Cocoa!

Weitere native [moderne] Programmiersprachen sind: Rust, Swift, D
Weitere bekannte nicht-native Programmiersprachen sind: Java, Javascript, Kotlin, Go

Protokoll:

Beschreiben Sie die folgenden Begriffe in Ihrem Gesamtprotokoll:

  • Quellcode
  • Maschinencode
  • native Programmiersprache
  • Interpretersprache
  • Plattformabhängigkeit

Welche weitere native und nicht-native Programmiersprache ist Ihnen bekannt?

Wenn mache Begrifflichkeiten noch nicht vollständig bekannt oder verstanden wurden, dann googlen Sie bitte danach oder bearbeiten Sie ein entsprechendes Tutorium aus dem Netz.

Linux | | C Teil 1: Main & NCurses

Options: