Grundlagen Flashcards
Warum gibt es so viele verschiedene Programmiersprachen?
Betrachtet man den Stammbaum der Programmiersprachen so erkennt man, dass viele der Sprachen zueinander verwandt sind und sich in ihrer Entwicklung gegenseitig beeinflusst haben.
Auf Grund der unterschiedlichen Anforderungen der Programmierer an die jeweilige Sprache entwickelten sich auch unterschiedliche Sprachen.
Erklären Sie, warum sich C/ C++ in der Industrie als eine bevorzugte Entwicklungssprache durchgesetzt hat!
Weil “C” einen qualitativen Sprung hinsichtlich des Programmierkomforts liefert, da die Befehle der
Umgangssprache ähneln (“DO..WHILE”) –> gut wartender und übersichtlicher Code steht an erster Stelle,
da die Kosten für einen Programmierer überwiegen.
Die Sprache liefert zudem kleine, schnelle und portable Programme.
Die Werkzeuge von C++ machen die
Entwicklung von komplexen und leistungsfähigen Anwendungen möglich.
Das ANSI erarbeitet eine eindeutige und maschinenunabhängige Definition der Programmiersprache C, den
ANSI-C-Standard.
Erklären Sie die Unterschiede zwischen Maschinensprache, Assemblercode und anderen Programmiersprachen!
In der Gründerzeit arbeiteten die Programmierer mit den primitivsten Computeranweisungen der
Maschinensprache.
Sie kann vom Computer direkt ausgeführt werden und besteht aus einer Abfolge von
den Dualziffern 0/1.
Sie liefert kleine, schnelle Programme die jedoch sehr
fehleranfällig sind.
Sie ist an den Prozessortyp gebunden.
Die Assemblersprache ist etwas anschaulicher, da sie für den Menschen leichter verständliche
“mnemonische” Symbole verwendet. Vorteil hierbei ist der geringe Speicherbedarf und die schnelle
Ausführungszeit. Jedoch verlieren diese Vorteile an Bedeutung, da die Kosten eines Programmierers
überwiegen. Die Programme sind auf die jeweilige Hardware zugeschnitten, somit nur schwer übertragbar
auf andere Rechner.
Übersetzt wird mittels Assemblers in die Maschinensprache.
Die Befehle der Hochsprachen ähneln der Umgangssprache.
Der Code ist leicht zu warten und lässt sich mit
weniger (Kosten)-Aufwand erweitern und verbessern. Die Sprache ist an keine Hardware mehr gebunden,
sie orientiert sich am zu lösenden Problem.
Erläuter Sie Vor- und Nachteile von Maschinensprache, Assemblercode und anderen Programmiersprachen!
Maschinensprache \+ Kleine, schnelle Programme - Fehleranfällig - Funktionen für Menschen schwer ersichtlich - An Prozessortyp gebunden
Assemblersprache
+ Geringer Speicherbedarf, schnelle Ausführungszeit
- Schwer an andere Computertypen übertragbar
- Kosten für Programmierer übersteigen die der Hardware
Hochsprachen \+ Hoher Programmierkomfort (Ähnlichkeit der Umgangssprache) \+ Qualitativer Sprung - Rechenleistung - Speicher
Beschreiben Sie die verschiedenen Generationen von Programmiersprachen!
- Generation: Maschinensprache
- Generation: Assemblercode mit seinen leichter verständlichen mnemoischen Anweisungen.
- Generation: Systemunabhängige Hochsprachen, prozeduraler und problemorientierter Natur. Das zu
lösende Problem steht im Mittelpunkt. - Generation: Nonprozedurale Programmiersprachen, die Problembezogenheit tritt in den Hintergrund,
dafür steht die Universalität in den Vordergrund. Es wird beschrieben was das Programm machen soll und
nicht wie. Somit ist keine umfangreiche Programmierausbildung nötig (DELPI, SQL). - Generation: Künstliche Intelligenz: Es wird versucht die natürliche Intelligenz des Menschen durch
konstruierte Computer nachzuvollziehen. (PROLOG)
OOP Generation: Objektorientierte Generation, Probleme werden mit verschiedenen Objekten gelöst, Ein Objekt enthält mit seinen Eigenschaften und Methoden immer alles, was für eine bestimmte Aufgabe
notwendig ist.”
Beschreiben Sie die Unterschiede zwischen der prozeduralen und der strukturierten Programmierung!
Bei der prozeduralen Programmierung stellt man sich Programme als eine Abfolge auszuführender
Anweisungen auf einen Satz von Daten vor.
Mit Hilfe der strukturierten Programmierung bringt man eine Systematik in die Abfolge der Prozeduren und
teilt das Programm in Daten und Funktionen ein.
Welche Vor- und Nachteile bietet die strukturierte Programmierung?
Vorteile
+ Die strukturierte Programmierung bietet einen erfolgreichen Lösungsansatz bei komplexeren Aufgabenstellungen
Nachteile
- Bei zunehmender Datenmenge wird die Trennung zw. Daten und Prozeduren immer schwieriger
- Die Wiederverwendbarkeit ist zu gering
Was versteht man unter einem Von - Neumann - Rechner?
Virtueller Universalrechner, der aus den 5 Funktionseinheiten besteht:
- Steuerwerk,
- Rechenwerk,
- Ein- und Ausgabewerkspeicher
Informationen zw. diesen Einheiten werden über Daten, Steuer und Adressbus ausgetausch
Erklären Sie das Konzept der imperativen Programmiersprachen mit Hilfe eines Von - Neumann - Rechners!
Imperative Programmiersprachen basieren auf Befehlen. Anpassung an diesen Universalrechner an das
zu lösende Problem, durch aufeinander folgende Befehle, dem Programm.
→ Programme, die auf einem Von-Neumann-Rechner laufen, laufen auf jedem beliebigen Rechner.
Wie werden Probleme in der funktionalen Programmierung gelöst?
Diese gehören auch zur Gruppe der imperativen Programmiersprachen.
Lösen der Probleme durch berechnen von Funktionen.
Beschreiben Sie das Konzept der logischen Programmiersprachen!
Der Anwender gibt eine Menge von Fakten und Regeln vor, wie aus Fakten neue Fakten geschaffen
werden können.
Aufgabe des Rechners ist, mit richtig oder falsch zu antworten.
Worauf basieren imperative/ deklarative Programmiersprachen?
→ Imperative basieren auf Befehlen,
→ deklarative orientieren sich an der Aussage.
Erläutern Sie den Begriff Kapselung aus der objektorientierten Programmierung!
Kapselung bedeutet, dass alle Eigenschaften und Funktionen die von dem Objekt ausgeführt
werden, in der Definition des Objekts enthalten sind (HDD).
Erläutern Sie den Begriff Verbergen von Daten aus der objektorientierten Programmierung!
In der objektorientierten Programmierung ist es nicht notwendig, dass der Benutzer eines Objekts die Funktionsweisen aller Daten und Methoden eines Objekts kennt.
Er muss sie nur anwenden können. Die Daten sind vor ihm verborgen.
In C++ muss der Benutzer nicht wissen wie eine Klasse funktioniert, er muss sie nur anwenden können.
Erläutern Sie den Begriff Vererbung aus der objektorientierten Programmierung!
Vererbung bedeutet, dass ein Objekt auf den Eigenschaften eines anderen Objekts aufbauen kann.
Es erbt die Eigenschaften und Methoden des Basisobjekts.
Erläutern Sie den Begriff Polymorphie aus der objektorientierten Programmierung!
Polymorphie bedeutet vielgestaltig, viele Objekte können dieselbe Methode verwenden und unternehmen genau dann die richtigen Schritte, um die Funktion auszuführen.
Sie interpretieren die Nachricht, abhängig von der Verwendung, unterschiedlich.
Bewerten Sie die Bedeutung der Wiederverwendbarkeit von Softwarebausteinen bei der Softwareproduktion!
Wiederverwendbarkeit ist wichtig, weil es Zeit und Geld spart, Stabilität bringt und eine Verbesserung/ Weiterentwicklung möglich macht.
Erklären Sie die Begriffe ‘‘Klasse”, “Objekt”, ‘‘Eigenschaft’’ und “Methode’’ aus der objektorientierten Programmierung!
→ Klasse = Bauplan
→ Objekt = Exemplar eines bestimmten Datentyps oder einer bestimmten Klasse
→ Eigenschaften = Attribute
→ Methode = Funktionen
Programme aus einzelnen Objekten mit bekannten Eigenschaften und Methoden können nach Bedarf zusammengestellt werden.
Die Klasse entspricht dabei dem Bauplan eines konkreten Objekts.
So muss man die einzelnen Komponenten nicht immer neu erfinden, sondern fügt sie entsprechend zusammen.
Beschreiben Sie stichwortartig die Funktion und Arbeitsweise des Assembler!
Assemblercode ist manschinennah, mnemotechnisch aufgebaut und wird in Maschinensprache assembliert.
Beschreiben Sie stichwortartig die Funktion und Arbeitsweise des Compiler!
Compilierte Sprachen werden am Stück in selbstständige, lauffähige Programme übersetzt (bezogen auf OS).
Beschreiben Sie stichwortartig die Funktion und Arbeitsweise des Interpreter!
Skriptsprachen werden zur Laufzeit übersetzt (Schritt für Schritt). Zur Ausführung wird ein Shell oder Wirtprogramm benötigt.
Nennen Sie je drei compilierte Programmiersprachen!
→ C/C++
→ COBOLD
→ Smaltalk
→ Pascal
Nennen Sie je drei interpretierte Programmiersprachen!
→ Javascript
→ Perl
→ VBA
→ PHP