Frage

Ich habe einige Artikel über alle Themen zu lesen, aber ich verstehe nicht ganz, die Unterschiede bekommen.

War es hilfreich?

Lösung

Strukturierte Programmierung ist ein alter Begriff, dass ich denken würde, umfassen funktionelle, verfahrenstechnische und vieles andere. Im Grunde bedeutet es explizite Steuerungsablaufstrukturen mit nicht etwa direkt von Anweisung zu Anweisung springen.

Funktionelle und prozeduralen Programmierung sind beide in diesem Sinne, strukturierte Paradigmen. Funktionale Programmierung ist auch deklarative Programmierung - die Struktur gegeben, um Ihren Code entspricht seine Bedeutung - ein Programm ist eine Funktion, die den Zustand der Welt verändert. Prozeduralen Programmierung ist, was man „typische“ Programmierung in jeder Sprache C oder seine Nachkommen betrachten, einschließlich OO-Sprachen wie Java und C ++. Ein Programm ist eine Reihe von Anweisungen, seriell ausgeführt werden, und Aufrufe Unterprozeduren auf dem Weg.

Oder, wie es bekanntlich beschrieben wurde:

Funktionale Programmierung ist wie Beschreibung Ihres Problems ein Mathematiker. Imperative Programmierung ist wie Anweisungen, um eine Angabe Idiot.

    --- arcus, #scheme on Freenode

Andere Tipps

Funktionale Programmierung erfolgt mit den Funktionen als First-Class-Elemente. Die Nutzung von Funktionen höherer Ordnung (unter und / oder wiederkehrenden Funktionen); was zu einer leistungsfähigen Konstrukte und gut faktorisierter Code. Manche Menschen konzentrieren sich auch auf die Reinheit Aspekt der FP, die ist zu sagen, dass Funktionen sollten immer das gleiche Ergebnis zurück, die gleiche Eingabe gegeben. Diese, glaube ich, sind die beiden Grundpfeiler der FP. Ich sehe auch Nebenwirkungen im wesentlichen abstrahiert ein wenig weg von der Lade / Speicher-Maschine-Level-Anweisungen zu vermeiden.

Strukturierte Programmierung geht an Djikstra der „Goto als schädlich“ Papier zurück. Es bedeutet, mit if / then / else / elif Strukturen, tun / während / bis / for-Schleifen usw. statt zu goto zurückzugreifen. Es abstrahiert im Wesentlichen ein bisschen weg von den Vergleichs- / Zweigmaschinenebene Anweisungen. Strukturierte Programmierung ist orthogonal sowohl funktional und prozeduralen Programmierung.

Procedural Programmierung, glaube ich, bezieht sich mit Imperativ „Subroutinen“ zu programmieren (im Gegensatz zu reinen „Funktionen“) im Allgemeinen aus einer Reihe von „Aussagen“ (im Gegensatz zu „Ausdrücke“) hinter Nebenwirkungen zu verlassen.

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