Haupt >> Computerprogrammierung >> Imperative Programmierung

Imperative Programmierung

Im Informatik , zwingende Programmierung , im Gegensatz zur deklarativen Programmierung, ist ein Programmierparadigma, das Berechnungen als Anweisungen beschreibt, die einen Programmzustand ändern. Ähnlich wie der Imperativ in natürlichen Sprachen Befehle zum Handeln ausdrückt, sind Imperativprogramme eine Folge von Befehlen für die Computer aufführen. Ein häufig verwendetes Synonym für zwingende Programmierung ist prozedurale Programmierung.

Imperative Programmiersprachen stehen im Gegensatz zu anderen Arten von Sprachen, wie z funktionell und logische Programmiersprachen. Funktionale Programmiersprachen wie Haskell sind keine Folge von Anweisungen und haben keinen globalen Zustand wie imperative Sprachen. Logische Programmiersprachen wie Prolog werden oft als definierend angesehen, 'was' berechnet werden soll, und nicht als 'wie' die Berechnung stattfinden soll, wie es eine imperative Programmiersprache tut.



Überblick

Die Hardwareimplementierung fast aller Computer ist zwingend erforderlich; Fast die gesamte Computerhardware ist darauf ausgelegt, Maschinencode auszuführen, der dem Computer eigen ist und im imperativen Stil geschrieben ist. Aus dieser Low-Level-Perspektive wird der Programmzustand durch den Inhalt des Speichers definiert, und die Anweisungen sind Anweisungen in der nativen Maschinensprache des Computers. Höhere imperative Sprachen verwenden Variablen und komplexere Anweisungen, folgen aber immer noch demselben Paradigma. Rezepte und Prozess-Checklisten sind zwar keine Computerprogramme, aber auch vertraute Konzepte, die im Stil der imperativen Programmierung ähneln. jeder Schritt ist eine Anweisung, und die physische Welt hält den Zustand. Da die Grundideen der imperativen Programmierung sowohl konzeptionell vertraut als auch direkt in der Hardware verkörpert sind, sind die meisten Computersprachen im imperativen Stil.

Zuweisungsanweisungen führen im Allgemeinen eine Operation an Informationen aus, die sich im Speicher befinden, und speichern die Ergebnisse im Speicher zur späteren Verwendung. Höhere imperative Sprachen erlauben darüber hinaus die Auswertung komplexer Ausdrücke, die aus einer Kombination von bestehen können Arithmetik Operationen und Funktionsauswertungen und die Zuordnung des resultierenden Werts zum Speicher. Schleifenanweisungen ermöglichen die mehrfache Ausführung einer Folge von Anweisungen. Schleifen können die darin enthaltenen Anweisungen entweder eine vordefinierte Anzahl von Malen ausführen oder sie können sie wiederholt ausführen, bis sich eine Bedingung ändert. Bedingte Verzweigungsanweisungen ermöglichen die Ausführung eines Anweisungsblocks nur dann, wenn eine bestimmte Bedingung erfüllt ist. Andernfalls werden die Anweisungen übersprungen und die Ausführungssequenz wird mit der dem Block folgenden Anweisung fortgesetzt. Unbedingte Verzweigungsanweisungen ermöglichen die Übertragung der Ausführungsreihenfolge an einen anderen Teil des Programms. Dazu gehören der Sprung, der in vielen Sprachen »goto« genannt wird, und der Unterprogramm- oder Prozeduraufruf.

Geschichte

Die frühesten imperativen Sprachen waren die Maschinensprachen der ursprünglichen Computer. In diesen Sprachen waren die Anweisungen sehr einfach, was die Hardwareimplementierung erleichterte, aber die Erstellung komplexer Programme behinderte. FORTRAN, das ab 1954 von John Backus bei IBM entwickelt wurde, war die erste große Programmiersprache, die die Hindernisse beseitigte, die Maschinencode bei der Erstellung komplexer Programme darstellt. FORTRAN war eine kompilierte Sprache, die benannte Variablen, komplexe Ausdrücke, Unterprogramme und viele andere Funktionen erlaubte, die heute in imperativen Sprachen üblich sind. In den nächsten zwei Jahrzehnten wurden eine Reihe weiterer wichtiger imperativer Programmiersprachen auf hohem Niveau entwickelt. In den späten 1950er und 1960er Jahren wurde ALGOL entwickelt, um mathematische Algorithmen einfacher ausdrücken zu können, und diente sogar als Zielsprache des Betriebssystems für einige Computer. COBOL (1960) und BASIC (1964) waren beides Versuche, die Programmiersyntax mehr wie Englisch aussehen zu lassen. In den 1970er Jahren wurde Pascal von Niklaus Wirth entwickelt und C von erstellt Dennis Ritchie während er bei Bell Laboratories arbeitete. Wirth fuhr fort, Modula-2, Modula-3 und Oberon zu entwerfen. Für die Bedürfnisse des US-Verteidigungsministeriums begannen Jean Ichbiah und ein Team von Honeywell 1978 mit der Entwicklung von Ada, nachdem sie vier Jahre lang die Anforderungen für die Sprache definiert hatten. Die Spezifikation wurde erstmals 1983 veröffentlicht, mit Überarbeitungen 1995 und 2005/6.

In den 1980er Jahren nahm das Interesse an objektorientierter Programmierung rapide zu. Diese Sprachen waren im Stil zwingend erforderlich, fügten jedoch Funktionen hinzu, um Objekte zu unterstützen. Die letzten zwei Jahrzehnte der 20. Jahrhundert sah die Entwicklung einer beträchtlichen Anzahl solcher Programmiersprachen. Smalltalk-80, ursprünglich 1969 von Alan Kay konzipiert, wurde 1980 vom Xerox Palo Alto Research Centre veröffentlicht. Aufbauend auf Konzepten in einer anderen objektorientierten Sprache – Simula (die als die erste objektorientierte Programmiersprache der Welt gilt und in den späten 1960er Jahren entwickelt wurde) – entwarf Bjarne Stroustrup C++ , eine objektorientierte Sprache basierend auf C. C++ wurde erstmals 1985 implementiert. In den späten 1980er und 1990er Jahren waren die bemerkenswerten imperativen Sprachen, die sich auf objektorientierte Konzepte stützten, Perl, das 1987 von Larry Wall veröffentlicht wurde; Python, veröffentlicht von Guido van Rossum im Jahr 1990; PHP, veröffentlicht von Rasmus Lerdorf im Jahr 1994; und Java, das erstmals 1994 von Sun Microsystems veröffentlicht wurde.

Beispielsprachen

Die kanonischen Beispiele für imperative Programmiersprachen sind Fortran und Algol. Andere sind Pascal, C und Ada.

Kategorie:Imperative Programmiersprachen bietet eine erschöpfende Liste.