# Natural (Programmiersprache)

Natural – auch im deutschen Sprachraum meist englisch ausgesprochen – ist eine Familie von Softwareentwicklungsumgebungen der Software AG für die Erstellung von Anwendungsprogrammen. Natural unterstützt u. a. eine 4GL-Programmiersprache namens NPL (Natural Programming Language), die verwirrenderweise selbst oft Natural oder NATURAL genannt wird.

## Geschichte

Die ersten Versionen der ersten Variante für Großrechner (engl.: mainframe) wurden ab 1975 von Peter Pagé unter Mitwirkung von Margit Neumann entwickelt. Natural ermöglichte von Anfang an auch auf Großrechnern eine dort zunächst nur selten mögliche interaktive Arbeitsweise (siehe Literatur).

## System-Unterstützung

Ursprünglich wurde Natural für die Großrechner von IBM und Siemens entwickelt, steht aber mittlerweile auf sehr vielen Plattformen zur Verfügung. Dazu zählen u. a.
| Mainframe-Betriebssysteme | Unix | Linux | Windows |
| z/OS OS/390 BS2000/OSD VSE z/VM | AIX HP-UX SUN Solaris | openSUSE Red Hat | Windows 2000 Windows XP Professional Windows Server 2003 |

## Datenbank-Anbindung

In Natural kann sowohl mit teils hocheffizienten proprietären Zugriffsbefehlen als auch über Standard-SQL auf eine Vielzahl von Datenhaltungssystemen zugegriffen werden. Diese sind meist Datenbankverwaltungssysteme (DBVS, englisch DBMS). Die Zugriffe erfolgen dabei über native (d. h. spezifische) Treiber.
Natural unterstützt u. a. die folgenden Datenhaltungssysteme:
* VSAM
* Adabas
* DB2
* Oracle
* Microsoft SQL Server
* Adabas D
* Tamino XML Server

## Programmiersprache NPL

Die Programmiersprache NPL ist Teil der umfassenden interaktiven Softwareentwicklungsumgebung Natural. Mit NPL wurde die erste Programmiersprache zur Erstellung kommerzieller Anwendungssysteme angeboten, für die der Begriff 4. Generation geprägt wurde. Wesentliches Merkmal der Sprachen der 4. Generation ist die Abstraktionsebene, in der das Problem formuliert wird. Verlangen Höhere Programmiersprachen der 3. Generation noch das Programmieren von prozeduralen technischen Einzelschritten, wird in Sprachen der 4. Generation die Anforderung eher problemnah formuliert und vom System in beliebigen Umgebungen unter Nutzung der technischen Möglichkeiten zur Ausführung gebracht. Weitere Merkmale sind: integrierte Gestaltung der Nutzeroberfläche, Listenerzeugung, Datenbankzugriff.
NPL-Code ist sehr gut lesbar. Kleine Applikationssysteme sind sehr schnell realisiert. Mit NPL wurden und werden aber auch sehr große Applikationssysteme aus zehntausenden von Programmbausteinen mit Millionen Codezeilen erfolgreich entwickelt. Natural-Anwendungen, besonders in Verbindung mit Adabas, sind als äußerst performant bekannt.
Beispiele:
Im Zuge der Modernisierung bestehender Natural-Anwendungen aus der Großrechnerzeit gibt es u. a. die Möglichkeit, diese in eine AJAX-Oberfläche mit Hilfe von Natural 4 Ajax zu integrieren.

## Übersetzungs- und Laufzeit

NPL-Quellcode wird traditionell in Natural-Zwischencode kompiliert, der dann von der Natural-Laufzeitumgebung interpretiert wird. Dieses Vorgehen ähnelt dem der Java Virtual Machine. Jedoch ist in vielen Installationen der Optimizing Compiler im Einsatz, der zum großen Teil statt Zwischencode direkt Maschinenbefehle generiert. Dies kann die Effizienz der NPL-Programme erheblich steigern.