Frage

Ich studiere zwei Paradigmen der Programmierung, deklarative und Imperativ Paradigma. Ich habe eine harte Zeit nach den mehrdeutigen Aussagen auf meinem Lehrbuch und wikipedia, wie zum Beispiel:

deklarative: - konzentriert sich auf das „Was“ der Computer zu tun ist. - frei von „Nebenwirkungen“ - ohne Steuerfluss

Imperativ: - konzentriert sich auf das „Wie“ der Computer sollte es tun. - wie zu tun ist es in Bezug auf die Reihenfolge der Aktionen

Wie würden Sie die beiden Programmierparadigmen unterscheiden? Wenn Sie auf den oben gemachten Angaben erweitern können, wird es sehr hilfreich sein.

War es hilfreich?

Lösung

SQL ist die klassische deklarative Sprache: Sie „in dieser Tabelle sehen, und geben Sie mir alle Zeilen, die diese Kriterien erfüllen,“ sagen (und im wirklichen Leben Sie verwenden beitritt, Auswahllisten, was auch immer, aber es ist die gleiche grundlegende Aussage) . Wie Sie bereits erwähnt, sagt diese Aussage der Computer, was Sie wollen, nicht, wie es zu tun.

Intern wird das Datenbanksystem in einer Sprache wie C implementiert und Ihre SQL-Abfrage wird in die folgenden Imperativ Schritte umgesetzt werden:

while (another row to process)
    read row from disk
    for (every test)
        if (test fails)
            continue to next row
    add row to result-set

Eines der wichtigsten Dinge zu beachten ist hier der explizite Steuerfluss: , während für und , wenn . Diese werden nicht in deklarativen Sprachen erscheinen.

Andere Tipps

Imperative Programmierung führt sequentiell Anweisungen, die einen zugrunde liegenden Zustand manipulieren kann.

Einige imperative Programmierung in Java:

Customer customer = null;

// first create a customer and have the variable reference it
customer = new Customer(); 
// the state of the customer variable has changed

// set the id on whatever object is *currently* being referenced by the variable
customer.setId(1);
// the state of the Customer object has changed

customer.setFirstName("Bob");
customer.setLastName("McBob");

Beachten Sie, wenn Sie die oben aus, um zu tun, es in einer Null-Zeiger Ausnahme führen würde:

Customer customer = null;
customer.setFirstName("Foo");   // the customer variable is still null at this point
customer = new Customer();   // too late!

deklarative Programmierung keinen Staat oder Ordnung, nur Erklärungen.

Hier ist ein einfaches Beispiel - der XML-Schnipsel deklarativer in Betracht gezogen werden könnte:

<NewCustomers>
  <Customer>
    <Id>1</Id>
    <FirstName>Bob</FirstName>
    <LastName>McBob</LastName>
  </Customer>
</NewCustomers>

Es ist nicht darüber, wie das Kundenobjekt sprechen wird gebaut werden, erklärt nur die Teile. Wie die oben wird interpretiert und ausgeführt ist bis zu der Programmierumgebung.

HTML und Web-Browser sind ziemlich gute Beispiele für jedes Paradigma ist. HTML (und CSS) ist deklarative Sprachen - Sie sagen, dem Web-Browser was zu markieren, aber nicht wie , es zu tun. Mit anderen Worten, erzählt eine Codezeile wie <h1>My title</h1> den Web-Browser was angezeigt werden - einen Header-Tag mit dem Text „Mein Titel“ - aber jetzt, wie es tatsächlich auf dem Bildschirm malen <. / p>

Der Web-Browser wird jedoch in eine Imperativ Art und Weise im Allgemeinen geschrieben. Es nimmt diese deklarativen Definitionen Markup und weist tatsächlich den Computer wie die Elemente auf den Bildschirm zu zeichnen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top