|
|
@ -26,10 +26,10 @@ Ein Repository ist ein Ort, an dem zentral Dateien im Kontext von Softwareprojek |
|
|
|
- Deklarative Programmierung |
|
|
|
- beschreibung des Problems steht im Vordergrund |
|
|
|
- Lösungsweg wird automatisch ermittelt |
|
|
|
- **Beispiele:** SQL, XSLT, Prolog |
|
|
|
- kürzer als imperative Programme |
|
|
|
- mathematische beweise sind einfacher |
|
|
|
- partiell auswertbar |
|
|
|
- **Beispiele:** SQL, XSLT, Prolog |
|
|
|
- Prozedurale Programmierung |
|
|
|
- imperativer Algorithmus kann in überschaubare Teile zerlegt werden: |
|
|
|
- Unterprogramm, Routine, Prozedur, Funktion |
|
|
@ -42,32 +42,31 @@ Ein Repository ist ein Ort, an dem zentral Dateien im Kontext von Softwareprojek |
|
|
|
- Objekte, Klassen und Vererbungen werden unterstützt |
|
|
|
- Kapselung von Daten und Funktionen |
|
|
|
- Polymorphie |
|
|
|
- **Beispiele:** Smalltalk, C++, Java, Kotlin |
|
|
|
- bessere Struktur |
|
|
|
- Wiederverwendbarkeit von Programmteilen |
|
|
|
- bessere Testbarkeit |
|
|
|
- **Beispiele:** Smalltalk, C++, Java, Kotlin |
|
|
|
- Funktionale Programmierung |
|
|
|
- grundlegende Ausdrücke sind Erzeugungen und Anwendungen von Funktionen |
|
|
|
- ineinander verschachtelt |
|
|
|
- Daten fliessen durch das Programm |
|
|
|
- **Beispiele:** Lisp, Scala, (C++, Java, Kotlin nicht das Hauptfeature der Sprachen) |
|
|
|
- Berechnungen effizient und übersichtlich |
|
|
|
- neue Funktionen können in der Laufzeit generiert werden |
|
|
|
- für nebenläufige Prozesse geeignet |
|
|
|
- nur Berechnungen |
|
|
|
- **Beispiele:** Lisp, Scala, (C++, Java, Kotlin nicht das Hauptfeature der Sprachen) |
|
|
|
- typisierte Programmiersprachen |
|
|
|
- Datentyp von Variablen, Parametern und Rückgabewerten sind festgelegt (implizit oder explizit) |
|
|
|
- **Beispiele:** C, C++, Java, Typescript |
|
|
|
**Vorteile** |
|
|
|
- Fehler schneller erkennen |
|
|
|
- Hilfe durch IDE |
|
|
|
- Typen müssen zum Programmmierzeitpunkt bekannt sein |
|
|
|
- nachträgliche Änderung an Typen können den Code brechen |
|
|
|
- **Beispiele:** C, C++, Java, Typescript |
|
|
|
- typenlose Programmiersprachen |
|
|
|
- Datentyp wird nicht festgelegt |
|
|
|
- **Beispiele:** sh, cmd, JavaScript |
|
|
|
- implizite Konvertierung |
|
|
|
- Typenfehler treten erst in der Laufzeit auf |
|
|
|
- **Beispiele:** sh, cmd, JavaScript |
|
|
|
|
|
|
|
**Prinzipien der Programmierung** |
|
|
|
| SOLID | STUPID | |
|
|
|