Programmierung des Paradigmas

Ein Programmierparadigma ist ein grundsätzlicher Stil der Computerprogrammierung. (Vergleichen Sie sich mit einer Methodik, die ein Stil ist, spezifische Softwaretechnikprobleme zu beheben.) Unterscheiden sich Paradigmen in den Konzepten, und Abstraktionen haben gepflegt, die Elemente eines Programms (wie Gegenstände, Funktionen, Variablen, Einschränkungen, usw.) und die Schritte zu vertreten, die eine Berechnung (Anweisung, Einschätzung, Verlängerungen, Datenflüsse, usw.) zusammensetzen.

Übersicht

Ein Programmiermodell ist eine Abstraktion eines Computersystems. Zum Beispiel ist das "Modell von von Neumann" ein in traditionellen folgenden Computern verwendetes Modell. Für die parallele Computerwissenschaft gibt es viele mögliche Modelle, die normalerweise verschiedene Weisen widerspiegeln, wie Verarbeiter miteinander verbunden werden können. Die allgemeinsten basieren auf dem geteilten Gedächtnis, verteilten Gedächtnis mit dem Nachrichtenübergang oder einer Hybride der zwei.

Eine Programmiersprache kann vielfache Paradigmen unterstützen. Zum Beispiel können Programme, die in C ++ oder Object Pascal geschrieben sind, rein verfahrensrechtlich, oder rein objektorientiert sein, oder Elemente von beiden Paradigmen enthalten. Softwareentwerfer und Programmierer entscheiden, wie man jene Paradigma-Elemente verwendet.

In der objektorientierten Programmierung können Programmierer an ein Programm als eine Sammlung von aufeinander wirkenden Gegenständen denken, während in der funktionellen Programmierung eines Programms als eine Folge von staatenlosen Funktionseinschätzungen gedacht werden kann. Wenn sie Computer oder Systeme mit vielen Verarbeitern programmiert, erlaubt prozessabhängige Programmierung Programmierern, an Anwendungen als Sätze von gleichzeitigen Prozessen zu denken, die nach logisch geteilten Datenstrukturen handeln.

Da verschiedene Gruppen in der Softwaretechnik verschiedene Methodiken verteidigen, verteidigen verschiedene Programmiersprachen verschiedene Programmierparadigmen. Einige Sprachen werden entworfen, um ein besonderes Paradigma zu unterstützen (Plausch unterstützt objektorientierte Programmierung, Haskell unterstützt funktionelle Programmierung), während andere Programmiersprachen vielfache Paradigmen (wie Object Pascal, C ++, Java, C#, Allgemeines, Grundlegendes Sehlispeln, Schema, Perl, Pythonschlange, Rubin, Unze und F#) unterstützen.

Viele Programmierparadigmen sind ebenso bekannt, für welche Techniken sie bezüglich verbieten, was sie ermöglichen. Zum Beispiel weist reine funktionelle Programmierung den Gebrauch von Nebenwirkungen zurück, während strukturiert, weist Programmierung den Gebrauch der goto Behauptung zurück. Teilweise aus diesem Grund werden neue Paradigmen häufig als doktrinär oder allzu starr durch diejenigen betrachtet, die an frühere Stile gewöhnt sind. Das Vermeiden bestimmter Techniken kann es leichter machen, Lehrsätze über eine Genauigkeit eines Programms zu beweisen - oder einfach sein Verhalten zu verstehen.

Mehrparadigma-Programmiersprache

Eine Mehrparadigma-Programmiersprache ist eine Programmiersprache, die mehr als ein Programmierparadigma unterstützt. Als Entwerfer von Leda Timothy Budd sagt: "Die Idee von einer Mehrparadigma-Sprache ist, ein Fachwerk zur Verfügung zu stellen, in dem Programmierer in einer Vielfalt von Stilen arbeiten können, frei Konstruktionen von verschiedenen Paradigmen vermischend." Die Designabsicht solcher Sprachen ist, Programmierern zu erlauben, das beste Werkzeug für einen Job zu verwenden, zugebend, dass kein Paradigma alle Probleme auf die leichteste oder effizienteste Weise behebt.

Ein Beispiel ist Oz, der Teilmengen hat, die Logik sind (Oz steigt von der Logikprogrammierung hinunter), ein funktioneller, ein objektorientierter, eine dataflow gleichzeitige und andere Sprache Paradigmen. Oz wurde im Laufe einer zehnjährigen Periode entworfen, um auf eine harmonische Weise Konzepte zu verbinden, die mit verschiedenen Programmierparadigmen traditionell vereinigt werden.

Ein Programmierparadigma sorgt für den Programmierer die Mittel und Struktur für die Ausführung eines Programms.

Geschichte

Am Anfang waren Computer festverdrahtet und dann späterer programmierter verwendender binärer Code, der zur in einer Prozession gehenden Hauptcomputereinheit (CPU) gefütterte Kontrollfolgen vertreten hat. Das war schwierig und fehlbar. Die Übertragung von hardwiring bis Maschinencode vertritt die Durchführung der Maschine von Von Neumann. Ein festverdrahtetes System widerspiegelt eine Maschine mit einer Übertragungsfunktion für die Daten zwischen Eingang und Produktion. Die Funktion wird durch die Verdrahtung und Bestandteile zwischen den zwei geschaffen. Eine spätere Maschine vereinigt das speicherprogrammierte durch eine Maschine von Von Neumann veranschaulichte Konzept, wo Daten und Programm beide in derselben Maschine versorgt werden. In der Maschine von Von Neumann vertritt jedes Programm eine verschiedene festverdrahtete Maschine. Das Programm, das die Übertragung definiert, fungiert für Daten.

Wie man

sagt, werden in der Dualzahl geschriebene Programme im Maschinencode geschrieben, der ein sehr auf niedriger Stufe Programmierparadigma ist. Um Programmierung leichter zu machen, wurden Zusammenbau-Sprachen entwickelt. Dieser fungiert ersetzter Maschinencode mit der Gedächtniskunst und den Speicheradressen mit symbolischen Etiketten. Zusammenbau-Sprachprogrammierung wird als ein auf niedriger Stufe Paradigma betrachtet, obwohl es eine 'zweite Generation' Paradigma ist. Sogar Zusammenbau-Sprachen der 1960er Jahre haben wirklich Bibliothek KOPIE und ziemlich hoch entwickelte bedingte Makrogenerations- und Aufbereitungsfähigkeiten unterstützt. Sie haben auch Modulprogrammiereigenschaften wie ANRUF (Unterprogramme), Außenvariablen und allgemeine Abteilungen (globals) unterstützt, bedeutenden Codewiedergebrauch und Isolierung von Hardware-Details über den Gebrauch von logischen Maschinenbedienern ermöglichend, wie/SCHRIEB/BEKAM/STELLTE LAS. Zusammenbau war, und ist noch, verwendet für dringende Systeme und oft in eingebetteten Systemen.

Der folgende Fortschritt war die Entwicklung von Verfahrenssprachen. Diese der dritten Generation Sprachen (das erste, das als höhere Programmiersprachen beschrieben ist), verwenden Vokabular, das mit dem Problem verbunden ist, das wird löst. Zum Beispiel,

  • C - entwickelt um 1970 an Glockenlaboratorien
  • COBOL (Allgemeine Orientierte Geschäftssprache) - gebraucht Begriffe wie Datei, bewegen Sie sich und kopieren Sie.
  • FORTRAN (Formel-Übersetzung) - das Verwenden mathematischer Sprachfachsprache, es wurde hauptsächlich für wissenschaftliche und Technikprobleme entwickelt.
  • Algol (Algorithmische Sprache) - hat sich darauf konzentriert, eine passende Sprache zu sein, um Algorithmen zu definieren, während es mathematische Sprachfachsprache verwendet hat und wissenschaftliche und Technikprobleme gerade wie FORTRAN ins Visier genommen hat.
  • PL/I (Programmiersprache Eine) - ein hybrides kommerzielles/wissenschaftliches allgemeines Zweck-Sprachunterstützen Zeigestöcke.
  • GRUNDLEGEND (Anfänger der Ganze Zweck Symbolischer Instruktionscode) - wurde entwickelt, um mehr Menschen zu ermöglichen, Programme zu schreiben.

Alle diese Sprachen folgen dem Verfahrensparadigma. D. h. sie, beschreiben nach und nach, genau das Verfahren, dem, gemäß dem besonderen Programmierer mindestens, gefolgt werden sollte, um ein spezifisches Problem zu beheben. Die Wirkung und Leistungsfähigkeit jeder solcher Lösung sind deshalb sowohl völlig subjektiv als auch von der Erfahrung dieses Programmierers, Schaffenskraft und Fähigkeit hoch abhängig.

Später wurden objektorientierte Sprachen (wie Simula, Plausch, Eiffel und Java) geschaffen.

Auf diesen Sprachen werden Daten und Methoden, die Daten zu manipulieren, behalten, wie eine einzelne Einheit einen Gegenstand genannt hat. Die einzige Weise, wie ein Benutzer auf die Daten zugreifen kann, ist über 'die Methoden' des Gegenstands (Unterprogramme). Wegen dessen kann die innere Tätigkeit eines Gegenstands geändert werden, ohne jeden Code zu betreffen, der den Gegenstand verwendet. Es gibt noch eine Meinungsverschiedenheit durch bemerkenswerte Programmierer wie Alexander Stepanov, Richard Stallman und andere bezüglich der Wirkung des OOP Paradigmas gegen das Verfahrensparadigma. Die Notwendigkeit jedes Gegenstands, assoziative Methoden zu haben, bringt einige Skeptiker dazu, OOP mit der Software bloat zu vereinigen. Polymorphism wurde als ein Versuch entwickelt, dieses Dilemma aufzulösen.

Da objektorientierte Programmierung als ein Paradigma, nicht eine Sprache betrachtet wird, ist es möglich, sogar einen objektorientierten Assembler zu schaffen. High Level Assembly (HLA) ist ein Beispiel davon, das völlig fortgeschrittene Datentypen und objektorientierte Zusammenbau-Sprachprogrammierung - trotz seiner frühen Ursprünge unterstützt. So, unterscheidend, Paradigmen programmierend, kann als mehr wie 'motivationaler memes' ihrer Verfechter gedacht werden - anstatt Fortschritt von einem Niveau bis das folgende notwendigerweise zu vertreten. Genaue Vergleiche der Wirkung von konkurrierenden Paradigmen werden oft schwieriger wegen der neuen und sich unterscheidenden Fachsprache gemacht, die auf den ähnlichen angewandt ist (aber nicht identisch ist) Entitäten, und geht zusammen mit zahlreichen Durchführungsunterscheidungen über Sprachen in einer Prozession.

Innerhalb der befehlenden Programmierung ist eine Alternative zur Computer - Hierarchie der strukturierten Programmierung des Lesens und Schreibens kundige Programmierung, welche Struktur-Programme stattdessen als ein von den Menschen in den Mittelpunkt gestelltes Web als in einem Hypertext-Aufsatz - Dokumentation zum Programm integriert ist, und das Programm im Anschluss an die Logik der Prosa-Ausstellung, aber nicht Bearbeiter-Bequemlichkeit strukturiert wird.

Unabhängig des befehlenden auf Verfahrenssprachen gestützten Zweigs wurden Aussageprogrammierparadigmen entwickelt. Auf diesen Sprachen wird der Computer erzählt, wie das Problem, nicht ist, wie man das Problem behebt - wird das Programm als eine Sammlung von Eigenschaften strukturiert, im erwarteten Ergebnis zu finden, nicht als ein Verfahren zu folgen. In Anbetracht einer Datenbank oder einer Reihe von Regeln versucht der Computer, eine Lösung zu finden, die alle gewünschten Eigenschaften vergleicht. Das archetypische Beispiel einer Aussagesprache ist die vierte Generationssprache SQL, sowie die Familie von funktionellen Sprachen und Logikprogrammierung.

Funktionelle Programmierung ist eine Teilmenge der Aussageprogrammierung. Programme das schriftliche Verwenden dieses Paradigma-Gebrauches Funktionen, Blöcke des Codes haben vorgehabt, sich wie mathematische Funktionen zu benehmen. Funktionelle Sprachen entmutigen Änderungen im Wert von Variablen durch die Anweisung, sehr viel Gebrauch von recursion stattdessen machend.

Die Logik, Paradigma programmierend, sieht Berechnung als das automatisierte Denken über ein Korpus von Kenntnissen an. Tatsachen über das Problem-Gebiet werden als Logikformeln ausgedrückt, und Programme werden durch die Verwendung von Interferenzregeln über sie durchgeführt, bis eine Antwort auf das Problem gefunden wird, oder die Sammlung von Formeln inkonsequent bewiesen wird.

Siehe auch

Außenverbindungen


Lysistrata / Agricola
Impressum & Datenschutz