GT.M

aus Wikipedia, der freien Enzyklopädie

GT.M ist eine Key-Value Datenbank-Engine, die für die Transaktions-Verarbeitung optimiert ist. GT.M beinhaltet eine Entwicklungsplattform und einen Compiler für die ISO-Standard-M-Programmiersprache, auch bekannt als MUMPS.

GT.M, eine Abkürzung für Greystone Technology M und wurde 1980 bei Greystone Technology Corp entwickelt. Es ist eine Implementierung des ANSI-Standard M für Unix-Systeme und OpenVMS. Zusätzlich zu den traditionellen M-Funktionalitäten, GT.M offeriert auch einen Compiler, der direkt Maschinencode erzeugt.

Die Datenbank-Engine, die im Jahre 2000 als Open Source veröffentlicht wurde, wird von Fidelity Information Services gewartet.

GT.M wird bei der FIS-Profile-Banken Anwendung verwendet, die bei den ING-DIRECT-Banken in den USA, Kanada, Spanien, Frankreich, Italien, Holland und Großbritannien im Einsatz steht.

Technischer Überblick

GT.M besteht aus einer Programmiersprache, einer Datenbank und Dienstprogrammen. Die Programmiersprache und die Datenbank sind zusammen integriert, aber keine ist ohne die andere nützlich. Programmiersprache und Datenbank benutzen die gleiche Dateiorganisation und Typisierung.

Datenorganisation und Typisierung

GT.M hat nur zwei Datentypen: Natürliche Zahlen und Strings. Ein String ist eine beliebige Zeichenkette (inklusive Nullen). Ein String wie "42" beinhaltet eine natürliche Zahl. Die Typisierung ist dynamisch und die Umwandlung zwischen den Typen geschieht im Prozessor: 1+"42" ergibt das Resultat 43, und das erste Zeichen von 43 ist 4.

Es gibt nur eine Datenstruktur, multidimensionale Arrays (Key-Value Nodes, Sub-Trees, und Associative Memory sind ebenbürtige Beschreibungen) mit bis zu 32 Subscripts. Ein Scalar kann als ein Array-Element mit 0 Subscripts gedacht werden. Nodes mit verschiedener Anzahl von Subscripts (inklusive ein Node mit keinem Subscript) kann im gleichen Array existieren. Zum Beispiel, wenn jemand die Liste der Hauptstädte der Vereinigten Staaten repräsentieren möchte:

Set Hauptstadt("USA")="Washington"
Set Hauptstadt("USA",1774,1776)="Philadelphia"
Set Hauptstadt("USA",1776,1777)="Baltimore"

Variablen werden bei der ersten Zuweisung bei Bedarf erzeugt. Der erste Set-Befehl oben erzeugt die Variable Hauptstadt. Variablen sind Bestandteil der Programmiersprache und sind sogenannte lokale Variablen. Ein Datenbankzugriff schaut wie ein Array-Zugriff aus, zum Beispiel:

Set ^Hauptstadt("USA")="Washington"

aber das Exponentialzeichen (^) bedeutet einen Datenbankzugriff. Variablen in der Datenbank haben nur einen globalen Bereich und sind natürlich persistent und werden von allen Prozessen gemeinsam benutzt. Es sind sogenannte globale Variablen. Die ersten 31 Zeichen eines Variable variable Namen sind signifikant.

Der Kill- und ZKill-Befehl werden benutzt um Unterbäume der Variablen zu löschen.

Zahlen in GT.M sind 18 Digits genau (vor oder nach dem Komma). Die Wissenschaftliche Notation werden bei größeren Zahlen verwendet.

GT.M benutzt den Unicode (ISO/IEC-10646).

Integrierte Datenbank

Die logische Datenbank eines GT.M-Prozesses enthält einen oder mehrere Globale-Variablen-Namensbereiche, jeder hat eine unbegrenzte Anzahl globaler Variablen. Eine Datenbankdatei besteht bis zu 224M (276,168,704) Datenblöcken. Eine globale Variable kann bis zu 1,792 GB groß werden.

Die Datenbank unterstützt Transaktionen. Der folgende Code implementiert eine ACID-Transaktion:

TStart ()
 Set ^Hauptstadt("Frankreich")="Paris"
 Set ^Land("Paris")="Frankreich"
TCommit

Integrierte Programmiersprache

Lokale Variablen können bis zu einem Megabyte groß werden. Die GT.M-Laufzeitumgebung benutzt dynamische Speicherzuteilung und Garbage Collection. GT.M-Routinen werden vor der Ausführung dynamisch kompiliert und gelinkt.

Mit wenigen Ausnahmen GT.M beinhaltet die komplette Implementierung des ISO-Standard M.

Das M-Programm kann C-Code aufrufen und umgekehrt, das heißt, als Hauptprogramm kann ein normales C-Hauptprogramm (main()) genutzt werden.

Plattformen

GT.M unterstützt die folgenden Plattformen:

GT.M ist auch für die folgenden Plattformen verfügbar:

Lizenzen

Für GNU/Linux und OpenVMS ist GT.M als Free / Open Source Software (FOSS) veröffentlicht. Lizenz: GNU Affero General Public License, version 3[1].

Die anderen Plattformen sind proprietär.

SQL- und ODBC-Zugriff auf GT.M werden als kommerzielle Produkte angeboten.

Weblinks

Einzelnachweise