You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.7 KiB
2.7 KiB
Programmierparadigmen
Um was geht es?
In dieser Datei werde ich den Programmiersprachen Java, C, Python, go, JavaScript und TypeScript die Programmierparadigmen Imperative Programmierung, Declarative Programmierung, Prozedurale Programmierung, Objektorientierte Programmierung, Funktionale Programmierung sowie inwieweit die Programmiersprachen typisiert bzw. nicht-typisiert sind zuordnen und diese Programmierparadigmen kurz erklären. Außerdem werde ich die Programmierprinzipien KISS, FCoH, SLA, YAGNI, IOC und DI beschreiben.
Programmierparadigmen - kurz erklärt
Imperative Programmierung
- Programm ist Folge von Anweisungen
- oft hardwarenah, nicht nur auf Programmiersprachen bezihebar (z.B. Koch-Rezepte)
- Beispiel: Strukturierter Text
Declarative Programmierung
- Problembeschreibung steht im Vordergrund, nicht Lösungsweg
- oft kürzer
- Beispiel: SQL (im weiteren Sinne), Lisp
Prozedurale Programmierung
- wie Imperative Programmierung, nur in Unterteile Zerlegbar (z.B. Funktionen)
- Vorgänger OOP
- Beispiel: Pascal
Objektorientierte Programmierung
- Realität wird abstrahiert im Programm abgebildet
- bessere Strukurierung, bessere Testbarkeit
- Beispiel: C#, Java
Funktionale Programmierung
- Verfeinerung Declarative Programmierung
- Funktionen erzeugen (Abstraktion) und anwenden (Applikation), nur für Berechnungen geeignet
- Beispiel: Lisp
typisierte Programmiersprachen
- Festlegung von Typen für Variablen, Rückgabe- und Übergabeparameter
- kann implizit oder explizit erfolgen
- Beispiel: C
typenlose Programmiersprachen
- keine Festlegung von Typen für Variablen, Rückgabe- und Übergabeparameter
- Beispiel: JavaScript
Programmiersprachen und Programmparadigmen
Java
- imperativ, prozedural, objektorientiert, typisiert
- Objektorientierte Hochsprache, Programme werden nicht für Betriebssystem, sondern für die Java-VM kompiliert --> man kann Java installieren, man kann Java-Programme ausführen
C
- imperativ, prozedural, typisiert
- ältere, aber teilweise immer noch aktuelle Hochsprache; entwickelt für hardwarenahe Programmierung (für eine Hochsprache)
Python
- imperativ, prozedural, objektorientiert, typisiert
- neuere Hochsprache, Option zur Objektorientierung, gut einsetzbar für Datenwissenschaft, KI und web
go
- imperativ, prozedural, typisiert
- neuere Hochsprache, wird für Online-Services wie Cloud-Lösungen und Messenging verwendet
JavaScript
- imperativ, prozedural, nicht-typisiert
- ältere Hochsprache, Anwendung im web, wird clientseitig ausgeführt
TypeScript
- imperativ, prozedural, objektorientiert, typisiert
- Erweiterung von JavaScript, zusätzlich Typisierung und Objektorientierung