MUMPS

MUMPS
Paradigma imperativní (procedurální), strukturovaný
Vznik 1966
Typová kontrola beztypovost

MUMPS (Massachusetts General Hospital Utility Multi-Programming System), někdy zkracováno na M, je programovací jazyk se zabudovanou databází. Na rozdíl od jiných programovacích jazyků se v něm s databází i s jinými soubory pracuje přímo pomocí proměnných a polí na úrovni programu. MUMPS vznikl v roce 1966. První ANSI standard vznikl roku 1977 a současný nejnovější standard je z roku 1995. MUMPS byl součástí operačního systému Diams, který byl mj. používán u počítačů řady SMEP.

Základy

Proměnné

MUMPS nemá datové typy. Vše je v něm uloženo jako textový řetězec a vyhodnocuje se podle kontextu. Proměnné se nemusí deklarovat a vznikají automaticky. Rozlišuje se velikost písmen. Proměnné mohou být globální nebo lokální. Lokální proměnná se ukládá do paměti programu a zaniká s koncem programu. Globální proměnná se ukládá na disk a s koncem programu nezaniká. Lokální i globální proměnnou lze zrušit pomocí příkazu kill. Název proměnné nesmí obsahovat podtržítko a začíná písmenem nebo znakem %. Název globální proměnné začíná znakem ^.

set var=3*4+2
set ^x=var
kill var

Pole

Pole se stejně jako proměnné nemusí deklarovat a vznikají automaticky při prvním přiřazení. Pole jsou takzvaně "řídká," což znamená, že když se přiřadí hodnota do prvku s indexem 10, nevznikají automaticky i prvky 0 až 9. Indexem pole může být cokoliv. Při indexování vyšších dimenzí se indexy oddělují čárkou. Pro pole platí stejná pravidla ohledně vznikání a zanikání, jako pro proměnné.

set rodina("matka")="Jana"
set rodina("syn",1)="Petr"
set rodina("syn",1,"vyska")=150
set rodina("syn",2)="Pavel"

Příkazy

Příkazy musí být správně zformátovány a záleží i na mezerách. Většinou je lze zkrátit na 2-3 písmena. Zápis příkazu: příkaz podmínka výraz, kde příkaz je název příkazu, podmínka říká, zda se má příkaz vykonat a výraz je parametr příkazu. Podmínka není povinná.

Tento příklad uloží do pole druha%mocnina druhé mocniny a pak je vypíše. Příkazy uvnitř cyklu musí být odsazené o 1 mezeru.

for i=1:1:20 do
 set druha%mocnina(i)=i*i
for i=1:1:20 do
 write druha%mocnina(i),!

Příklad

Hello world

write "Hello, world!",!

Zdroj