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.

66 lines
2.7 KiB

  1. # Programmierparadigmen
  2. ## Um was geht es?
  3. 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.
  4. Außerdem werde ich die Programmierprinzipien KISS, FCoH, SLA, YAGNI, IOC und DI beschreiben.
  5. ## Programmierparadigmen - kurz erklärt
  6. ### Imperative Programmierung
  7. - Programm ist Folge von Anweisungen
  8. - oft hardwarenah, nicht nur auf Programmiersprachen bezihebar (z.B. Koch-Rezepte)
  9. - Beispiel: Strukturierter Text
  10. ### Declarative Programmierung
  11. - Problembeschreibung steht im Vordergrund, nicht Lösungsweg
  12. - oft kürzer
  13. - Beispiel: SQL (im weiteren Sinne), Lisp
  14. ### Prozedurale Programmierung
  15. - wie Imperative Programmierung, nur in Unterteile Zerlegbar (z.B. Funktionen)
  16. - Vorgänger OOP
  17. - Beispiel: Pascal
  18. ### Objektorientierte Programmierung
  19. - Realität wird abstrahiert im Programm abgebildet
  20. - bessere Strukurierung, bessere Testbarkeit
  21. - Beispiel: C#, Java
  22. ### Funktionale Programmierung
  23. - Verfeinerung Declarative Programmierung
  24. - Funktionen erzeugen (Abstraktion) und anwenden (Applikation), nur für Berechnungen geeignet
  25. - Beispiel: Lisp
  26. ### typisierte Programmiersprachen
  27. - Festlegung von Typen für Variablen, Rückgabe- und Übergabeparameter
  28. - kann implizit oder explizit erfolgen
  29. - Beispiel: C
  30. ### typenlose Programmiersprachen
  31. - keine Festlegung von Typen für Variablen, Rückgabe- und Übergabeparameter
  32. - Beispiel: JavaScript
  33. ## Programmiersprachen und Programmparadigmen
  34. ### Java
  35. - imperativ, prozedural, objektorientiert, typisiert
  36. - 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
  37. ### C
  38. - imperativ, prozedural, typisiert
  39. - ältere, aber teilweise immer noch aktuelle Hochsprache; entwickelt für hardwarenahe Programmierung (für eine Hochsprache)
  40. ### Python
  41. - imperativ, prozedural, objektorientiert, typisiert
  42. - neuere Hochsprache, Option zur Objektorientierung, gut einsetzbar für Datenwissenschaft, KI und web
  43. ### go
  44. - imperativ, prozedural, typisiert
  45. - neuere Hochsprache, wird für Online-Services wie Cloud-Lösungen und Messenging verwendet
  46. ### JavaScript
  47. - imperativ, prozedural, nicht-typisiert
  48. - ältere Hochsprache, Anwendung im web, wird clientseitig ausgeführt
  49. ### TypeScript
  50. - imperativ, prozedural, objektorientiert, typisiert
  51. - Erweiterung von JavaScript, zusätzlich Typisierung und Objektorientierung