kennen:sprachkern
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | kennen:sprachkern [2020-07-27 09:59] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Sprachkern ====== | ||
+ | > Ein Programmierer darf durchaus erwarten, | ||
+ | > dass er die gesamte Sprache kennt, versteht und regelmäßig nutzt. | ||
+ | >> --- Brian Kernighan & Dennis Ritchie : Programmieren in C | ||
+ | |||
+ | ===== Quelltextbausteine ===== | ||
+ | Ein Programm kann aus mehreren Quelltexten ([[.: | ||
+ | Ein (korrekter) Quelltext ist eine Folge von | ||
+ | [[.: | ||
+ | und [[.: | ||
+ | Die [[.: | ||
+ | (Grammatik) legt fest, welche Quelltexte korrekt (wohlgeformt) sind. | ||
+ | Einzelne [[# | ||
+ | (" | ||
+ | und Gruppen von Zeichen bilden Symbole (lexikalische Einheiten). | ||
+ | Beim Erkennen von Symbolen wird stets | ||
+ | die maximal mögliche Länge des Symbols verarbeitet. So wird | ||
+ | '' | ||
+ | als '' | ||
+ | (was dann zu einem syntaktischen Fehler führt) | ||
+ | und nicht als das auch mögliche '' | ||
+ | Dies ist einer der seltenen Fälle, in denen Leerräume (white spaces) | ||
+ | eine sprachliche Bedeutung haben. | ||
+ | Ansonsten ist der Quelltext frei formatierbar. | ||
+ | Einrückungen und Leerzeilen gliedern den Quelltext optisch. | ||
+ | |||
+ | ===== Zeichen ===== | ||
+ | Unabhängig von der internen Darstellung besteht ein Quelltext | ||
+ | aus den | ||
+ | Buchstaben | ||
+ | |||
+ | <code cpp> | ||
+ | A B C D E F G H I J K L M N O P Q R S T U V W X Y Z | ||
+ | _ a b c d e f g h i j k l m n o p q r s t u v w x y z | ||
+ | </ | ||
+ | (der Unterstrich '' | ||
+ | <code cpp> | ||
+ | 0 1 2 3 4 5 6 7 8 9 | ||
+ | </ | ||
+ | und den Sonderzeichen | ||
+ | <code cpp> | ||
+ | + - * / % ? : = [ ] ( ) { } , . < > ! | & ~ ^ # ' " \ | ||
+ | </ | ||
+ | Leerzeichen, | ||
+ | |||
+ | ===== Namen ===== | ||
+ | Namen (Bezeichner) beginnen mit einem [[# | ||
+ | darauf können beliebig viele Buchstaben oder Ziffern folgen. | ||
+ | Groß- und kleinschreibung wird unterschieden. | ||
+ | [[.: | ||
+ | sind reservierte Namen mit vordefinierter Bedeutung. | ||
+ | |||
+ | ===== Literale | ||
+ | ==== Zahlen ==== | ||
+ | Zahlkonstanten beginnen mit einer [[# | ||
+ | Ganzzahlen können dezimal, oktal oder hexadezimal angegeben werden: | ||
+ | |||
+ | | | Basis | Ziffern | Anfangszeichen | | ||
+ | | 127 | 10 | 0...9 | keine 0 (bei mehrziffrigen Zahlen)| | ||
+ | | 0177 | 8 | 0...7 | 0| | ||
+ | | 0x7F | 16 | 0...9, A...F, a...f | 0x| | ||
+ | [[Begriffe# | ||
+ | Dezimalzahlen können ein Vorzeichen haben. | ||
+ | Durch Anfügen des Buchstabens '' | ||
+ | erhält die Konstante den [[.: | ||
+ | Ein '' | ||
+ | ('' | ||
+ | |||
+ | <code cpp> | ||
+ | 65 255 | ||
+ | 0x41 255U 65535L | ||
+ | </ | ||
+ | Gleitkommazahlen enthalten einen Dezimalpunkt oder einen Exponenten. | ||
+ | Sie haben den [[.: | ||
+ | Mit '' | ||
+ | mit '' | ||
+ | |||
+ | <code cpp> | ||
+ | 123.0 | ||
+ | 123. | ||
+ | </ | ||
+ | |||
+ | ==== Zeichen und Zeichenketten ==== | ||
+ | Apostrophe (einfache Anführungsstriche) umschließen Zeichenkonstanten ''' | ||
+ | Zeichenketten beginnen und enden mit doppelten Anführungsstrichen (" | ||
+ | In Zeichenketten darf kein Zeilenende auftreten. | ||
+ | Aufeinanderfolgende, | ||
+ | werden zu einer verschmolzen: | ||
+ | |||
+ | <code cpp> | ||
+ | " | ||
+ | " | ||
+ | </ | ||
+ | Durch vorangestelltes '' | ||
+ | |||
+ | <code cpp> | ||
+ | | ||
+ | </ | ||
+ | für Plattformen mit erweiterten Zeichensätzen. | ||
+ | |||
+ | Einige Zeichen müssen durch Kombination mit dem fallenden Schrägstrich (backslash) | ||
+ | gebildet werden (Escape-Sequenzen): | ||
+ | |||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | Bei einem //raw string// '' | ||
+ | Der eigentliche Inhalt kann durch eine Begrenzerfolge außerhalb der runden Klammern eingeschlossen werden: '' | ||
+ | |||
+ | |||
+ | ===== Kommentare ===== | ||
+ | Kommentare werden bei der Programmübersetzung ignoriert. | ||
+ | Sie sind nur zur menschlichen Kommunikation bestimmt. | ||
+ | |||
+ | C-Kommentare | ||
+ | <code cpp> | ||
+ | /* Computer sind doof */ | ||
+ | </ | ||
+ | beginnen und enden mit Schrägstrich und Stern und sind nicht schachtelbar. | ||
+ | Sie können sich über mehrere Zeilen erstrecken (Kommentarblock). | ||
+ | |||
+ | C++-Kommentare | ||
+ | <code cpp> | ||
+ | // gelten bis zum Zeilenende. | ||
+ | </ | ||
+ | |||
+ | ===== Syntaktische Einheiten ===== | ||
+ | ==== Ausdrücke und Anweisungen ==== | ||
+ | [[.: | ||
+ | werden mit einem Semikolon '';'' | ||
+ | Was vor dem Semikolon steht, heißt [[.: | ||
+ | (der auch leer sein kann). | ||
+ | Ausdrücke sind u.a. [[.: | ||
+ | [[.: | ||
+ | [[.: | ||
+ | [[# | ||
+ | und durch [[.: | ||
+ | |||
+ | <code cpp> | ||
+ | double const pi = 4*atan(1.0); | ||
+ | </ | ||
+ | |||
+ | ==== Blöcke ==== | ||
+ | Geschweifte Klammern '' | ||
+ | [[.: | ||
+ | (Deklarations- oder Anweisungsfolgen). | ||
+ | Blöcke sind ineinander schachtelbar oder können auch leer sein. | ||
+ | Jeder [[.: | ||
+ | |||
+ | ==== Präprozessoranweisungen ==== | ||
+ | Doppelkreuze ''#'' | ||
+ | für den [[.: | ||
+ | ein. | ||
+ | Sie gehören genaugenommen nicht zur Sprache, | ||
+ | jedoch kommt kein ernsthaftes Programm ohne sie aus, | ||
+ | weil [[.: | ||
+ | eingebunden werden müssen | ||
+ | ([[.: | ||
+ | |||
+ | <code cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | </ | ||
kennen/sprachkern.txt · Zuletzt geändert: 2020-07-27 09:59 von 127.0.0.1