Praktische Informatik 1



Yüklə 3,49 Mb.
səhifə13/25
tarix08.08.2018
ölçüsü3,49 Mb.
#61957
1   ...   9   10   11   12   13   14   15   16   ...   25

4.1 Programmierparadigmen


Unter einem Programmierparadigma versteht man ein Sprachkonzept, welches als Muster prägend für die Programme einer bestimmten Gruppe oder Sprache ist. Gängige Programmierparadigmen sind

    • funktional / applikativ

    • imperativ

    • objektorientiert

    • logikbasiert

    • deklarativ

    • visuell / datenflussorientiert




  • funktionale oder applikative Sprachen betrachten ein Programm als mathematische Funktion f, die eine Eingabe I in eine Ausgabe O überführt: O = f(I). Variablen sind Platzhalter im Sinne der Mathematik (Parameter).
    Ausführung = Berechnung des Wertes mittels Termersetzung.
    Beispiele: Lisp, SML, Haskell, ...


SML:

frame2

LISP:


frame3


  • imperative Sprachen unterstützen das ablauforientierte Programmieren. Werte werden sog. Variablen (= Speicherplätzen) zugewiesen. Diese können ihren Zustand ändern, d.h. im Laufe der Zeit verschiedene Werte annehmen (vgl. von-Neumann-Konzept).
    Ausführung = Folge von Variablenzuweisungen.
    Beispiele: Algol, C, Delphi, ...



frame4


  • objektorientierte Sprachen sind imperativ, legen aber ein anderes, in Objekten strukturiertes Speichermodell zugrunde. Objekte können eigene lokale Daten und Methoden speichern, voneinander erben und miteinander kommunizieren.
    Ausführung = Interaktion von Agenten.
    Beispiele: Smalltalk, C++, Java



frame5


  • logikbasierte Sprachen betrachten ein Programm als (mathematisch-) logischen Term t, dessen Auflösung (im Erfolgsfall) zu gegebenen Eingabewerten I passende Ausgabewerte O liefert: t(I,O)  true.
    Ausführung = Lösen eines logischen Problems.
    Beispiel: Prolog



frame6



  • deklarative Sprachen betrachten ein Programm als eine Menge von Datendefinitionen (Deklarationen) und darauf bezogenen Abfragen.
    Ausführung = Suche in einem Datenbestand.
    Beispiel: SQL



frame7


  • datenflussorientierte Sprachen stellen ein Programm dar, indem sie den Fluss der Signale oder Datenströme durch Operatoren (Addierer, Integratoren) beschreiben
    Ausführung = Transformation von Datenströmen


Beispiel: Simulink, Microsoft Visual Programming Language (VPL)






4.2 Historie und Klassifikation von Programmiersprachen


Zur obigen Grafik gibt es viele Varianten und Alternativen, je nach Vorliebe des Diagramm-Erstellers.
Programmiersprachen lassen sich klassifizieren nach

      • Anwendungsgebiet: Ingenieurwissenschaften (Fortran), kommerzieller Bereich (Cobol), künstliche Intelligenz (Prolog, Lisp), Systemsoftware (Assembler, C), Steuerungssoftware (C, Ada, Simulink), Robotik (C, NQC, VPL), Internet / Arbeitsplatzsoftware (Java, C++), Datenbanken (SQL), …

  • Spezialsprachen („DSL, domain specific languages“): SPSS (Statistik); TeX/LaTeX, PostScript (Textverarbeitung); Lex, Yacc (Compilerbau); Z, B, CSP (Programmspezifikation); UML, SimuLink (Modellierung)

      • Verbreitungsgrad: (derzeit )industrierelevante, überlieferte und akademische Sprachen

      • Historischer Entwicklung: „Stammbaum“ der Programmiersprachen, siehe oben

      • Programmiersprachengeneration: Abstraktionsgrad;

          • 1. Generation: Maschinensprachen

          • 2. Generation: Assemblersprachen (x86-MASM, ASEM-51)

          • 3. Generation: Algorithmische Sprachen (Algol, Delphi, …)

          • 4. Generation: Anwendungsnahe Sprachen (VBA, SQL, …)

          • 5. Generation: Problemorientierte Sprachen, KI-Sprachen (Prolog, Haskell, …)

  • Programmierparadigmen (siehe Kapitel 4.1)

  • Verfügbaren Sprachelementen

    • Kontrollfluss, Datentypen

    • Rekursion oder iterative Konstrukte

    • Sequentielle oder parallele Ausführung

    • Interpretiert oder compiliert

    • Realzeitfähig oder nicht realzeitfähig

    • Streng typisiert, schwach typisiert oder untypisiert

    • Statisch oder dynamisch typisiert

    • Textuell oder graphisch



Das Balkendiagramm zeigt die in deutschen Softwarehäusern überwiegend verwendeten Sprachen, zitiert nach (Bothe, Quelle: Softwaretechnik-Trends Mai 1998). Mehrfachnennungen waren bei der Befragung möglich.


Die „babylonische Sprachvielfalt“ der verschiedenen Programmiersprachen verursacht Kosten: Portabilitätsprobleme, Schulungsmaßnahmen, Programmierfehler. Daher gab es immer wieder Versuche, Sprachen zu vereinheitlichen (ADA, ANSI-C, …). Trotzdem kam es in der Forschung immer wieder zu neuen Ideen, neuen Konzepten und in der Folge zu neuen Programmiersprachen. Daher wird es auf absehbare Zeit viele verschiedene Sprachen und Dialekte geben. Für Informatiker ist es deshalb wichtig, die verschiedenen Konzepte zu kennen und sich schnell in neue Sprachen einarbeiten zu können.

Yüklə 3,49 Mb.

Dostları ilə paylaş:
1   ...   9   10   11   12   13   14   15   16   ...   25




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə