MUMPS
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.
Paradigma | imperativní (procedurální), strukturovaný |
---|---|
Vznikl v | 1966 |
Typová kontrola | beztypovost |
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!",!