Frage Unterschied zwischen deklarativer und prozeduraler Programmierung?


In einem meiner Interviews haben sie mich nach dem Unterschied gefragt Deklarative Programmierung und Verfahrensprogrammierung Arten.

Was ist der Unterschied zwischen ihnen mit Beispielen?

P.S .: Können Sie mir neben diesen beiden und objektorientierten Programmiersprachen auch sagen, welche Art von Programmiersprachen es gibt? Weil sie den Unterschied zwischen anderen Programmiersprachen auch fragen können. Und es gibt ähnliche Fragen wie diese, aber zu verstreut.


75


Ursprung


Antworten:


Erklärend

Beschreiben Sie ein Ergebnis und erhalten Sie es über eine Blackbox. Das Gegenteil von Imperativ. Beispiele:

  • yacc
  • Baumkrone
  • SQL
  • Reguläre Ausdrücke
  • Lex
  • XSLT
  • Markup, Troff, CSS, VHDL

Prozedural oder Imperativ

Beschreiben Sie den Algorithmus und die Prozessschritte in verschiedenen Abstraktionsgraden.

  • C, die meisten alten Sprachen
  • PHP, meistens
  • in gewissem Sinne alle wichtigen Sprachen

Objektorientierte

  • Neigt dazu, in der prozeduralen Kategorie zu sein, bezieht sich normalerweise auf Sprachen, die eine Hierarchie von Typen aufweisen, die sowohl Methoden und Status von Basistypen zu abgeleiteten Typen erben, als auch das ungewöhnliche prototypbasierte JavaScript enthält. Eine separate Dimension von den anderen Kategorien hier.

Funktional

Du hast das hier vergessen. Funktionale Programmierung betont die Anwendung von Funktionen ohne Nebenwirkungen und ohne veränderlichen Zustand. Die obigen deklarativen Systeme zeigen bestimmte Aspekte der funktionalen Programmierung.

  • Planen
  • Erlang
  • OCaml
  • Haskell
  • Lisp, abhängig. (Lisp verdient vielleicht eine eigene einzigartige Kategorie)
  • Clojure, etwas
  • Ruby, etwas weniger
  • F #
  • Scala

86



Deklarative Programmierung ist, wo Sie sagen, was Sie wollen, ohne zu sagen, wie es geht. Bei der prozeduralen Programmierung müssen Sie genaue Schritte angeben, um das Ergebnis zu erhalten.

Zum Beispiel ist SQL deklarativer als prozedural, weil die Abfragen keine Schritte angeben, um das Ergebnis zu erzeugen.


54



In einfachen Worten, ich habe ein reales Beispiel, in dem ich eine Tasse Tee brauche.

Prozedural: 

  1. Geh in die Küche
  2. Nimm Zucker, Milch und Tee,
  3. Vermische sie und heize über Feuer, bis es kocht
  4. Leg das in eine Tasse und bring es mir

Erklärend:

  1. Bring mir eine Tasse Tee.

In prozeduraler Sprache definieren Sie den gesamten Prozess und stellen die Schritte zur Verfügung. Sie geben nur Bestellungen an und definieren, wie der Prozess bedient wird.

In deklarativer Sprache legen Sie einfach den Befehl oder die Bestellung fest, und lassen Sie es auf dem System, wie diese Bestellung abgeschlossen wird. Sie brauchen nur Ihr Ergebnis, ohne zu wissen, wie es gemacht werden sollte.

Grüße,


13



Verfahrensprogrammierung :

Bei der prozeduralen Programmierung folgt beim Start des Programms eine Reihe von Anweisungen. Die Anweisungen können sich je nach Datei- oder Speicherinhalt ändern, unterscheiden sich jedoch insgesamt nicht wesentlich. Die Eingabe in das Programm erfolgt in der Regel nicht von einer Benutzereingabe in Echtzeit, sondern von einem zuvor gesammelten Datensatz.

Deklarative Programmierung:

In der deklarativen Event-gesteuerten Programmierung wird ein Datenkörper mit optionalen Aktionen zentralisiert, die das Programm übernehmen kann. Zum Beispiel ist jedes "Ereignis" in einem Textverarbeitungsprogramm irgendeine Maus- oder Tastatur- (oder Datei-) änderung, die die Daten, die Dokumente, beeinflusst. Sie müssen nicht in irgendeiner Reihenfolge ausgeführt werden. Die ereignisgesteuerte Programmierung hat die Form von kleinen Programmen (Event-Handlern), die alle an einem gemeinsamen Datensatz arbeiten, so dass jedes kleine Programm dieselben Daten verwenden kann, das Dokument in diesem Beispiel.


5



Bei der prozeduralen Vorgehensweise kodieren Sie Ihre Anweisung, um das Ergebnis zu erreichen. Im deklarativen Ansatz definieren Sie, was gelöst werden muss, als das Wissen um die Lösung des Problems. Schau es dir an Prozeduraler oder deklarativer Ansatz Beispiel habe ich in beiden Ansätzen implementiert.

Wie Sie im Beispiel sehen, müssen Sie im deklarativen Ansatz nicht angeben, WIE das Problem zu lösen ist.


-2