Allgemeine Grundlagen Flashcards

1
Q

Syntax

A

Syntax ist über die Struktur oder die Grammatik der Sprache.

Es beantwortet die Frage: wie gestalte ich einen gültigen Satz?

Syntaxfehler findet und moniert der Compiler.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Sematik

A

Semantik ist über die Bedeutung des Satzes.

Es gibt Antworten auf die Fragen: ist dieser Satz gültig? Wenn ja, was hat der Satz zu bedeuten?

Semantikfehler findet der Compiler nicht, sondern sie wirken sich zur Laufzeit durch Programmabbruch aus.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wie kann man syntaktische Fehler vermeiden?

A
  • separate Anweisungen mit einem Semikolon
  • schließen Sie den bedingten Ausdruck eines IF-Anweisungs in Klammern
  • gruppieren mehrere Anweisungen zu einer einzelnen Anweisung durch einschließen in geschweifte Klammern
  • Datentypen und Variablen müssen deklariert werden (bevor die erste ausführbare Anweisung)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Beispiel einer semantische Fehler

A

String a = “Hallo”;

int b=a;

Syntaktisch ist das völlig in Ordnung; semantisch ist es Unsinn.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Elemente der Toolchain

A
  1. Editor
  2. Präprozessor
  3. Compiler -
  4. Linker
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Funktion vom Editor

A
  • Eingabe Medium
  • Textverarbeitung

Mindestanforderung: Zeilennummern, da die Compiler die Position des Fehlers in Form von Zeilennummern angeben wird.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Funktion vom Compiler

A
  • übersetzt den von Programmierer geschriebenen Quelltext in Maschinensprache.
  • Es entsteht für jede Quelltextdatei eine Objektdatei. -

(Oft wird auch die Kombination aus Compiler und Linker als Compiler bezeichnet)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Funktion vom Präprozessor

A
  • bearbeitet die Programmdatei, bevor der Compiler sie zu lesen bekommt -
  • wird durch sog. “Direktiven” gesteuert

(das sind Kommandos, die mit einen # (“Gatter”) beginnen)

*wesentliche Direktive => #include (Textdatei)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Funktion vom Linker

A
  • bindet mehrere Objektdateien und Libraries zu einem Programm zusammen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Funktion und Bedeutung des Debuggers

A
  • Hilfsmittel zum Aufspüren von Fehlern
  • Werte kontrolle während der Laufzeit
  • findet selbst keine Fehlern; hilft semantische Fehler aufzufinden -
  • Debug-Information wird in dem Pgm-code eingebaut - Beim Debuggen wird ein Zusatzcode eingefügt, welches das Programm langsamer macht. => Haltepunkt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Entstehungsprozess eines Programms: Pflichtenheft

A

Fragestellung: “Wie sollen die Anforderungen technisch umgesetzt werden?”

  • technische Rahmenbedingungen (Netze, Satellitensystem)
  • kaufmännische Bedingungen (kosten, personal, Betrieb) Das Pflichtenheft beschreibt, wie und womit der Auftragnehmer das Gesamtvorhaben umsetzen wird.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Kriterien für ein gut strukturiertes Programm

A
  • Whitespaces (Leerzeichen, Tabs, Zeilenschaltung) um Lesbarkeit zu erhöhen und Fehler leichter aufzufinden
  • Gliederung durch Einrücken
  • Ein Anweisung pro Zeile
  • Schließende Klammern auf gleiche höhe wie öffnende Klammern
  • Innerhalb der Klammern eine Ebene rücken
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Manipulatoren im Output-Strom und ihre Bedeutung

A

Ein-und Ausgabe sind in C++ über sogenannte „streams“ realisiert.

Diese „Ströme“ sind eine fortlaufende Folge von Zeichen, welche von links nach rechts abgearbeitet werden.

Die Zeichenfolge kann Steuerkommandos, sogenannte „Manipulatoren“, enthalten, welche die Ausgabe beeinflussen.

Die Ausgabe wird durch << auf das cout Objekt „umgeleitet“.Das cout Objekt ist selbst ein Programmcode. —

cout ist bereits zu einer Objektdatei umgewandelt und Teil der Bibliothek iostream(„Ein-/Ausgabe-Strom“).

Der Linker muss also später den ausführbaren Code dafür mit unserem Programm verbinden, damit die Ausgabe genutzt werden kann.

Dafür müssen wir dem Compiler die Informationen bereitstellen: #include // Ein-/Ausgabestrom Code bereitstellen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist ein “gutes” Programm?

A
  • günstig (Anschaffung; Betrieb)
  • performant (Resourcen ; Struktur)
  • pflegbar / wartbar
  • erweitbar
  • korrekt (syntaktisch;semantisch;algorithmisch)
  • (daten-)sicher
How well did you know this?
1
Not at all
2
3
4
5
Perfectly