PŘÍUŠNICE
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 24. listopadu 2018; kontroly vyžadují
3 úpravy .
MUMPS ( anglicky Massachusetts General Hospital Utility Multi-Programming System - Multi-program system of General Hospital of Massachusetts ; někdy M, nebo M-system) je programovací jazyk vytvořený v letech 1966-1967 pro použití v lékařském průmyslu.
Z MUMPS vznikl v 70. letech bezplatný lékařský systém VA VistaA , de facto standard lékařského informačního systému .
Historie
Definice MUMPS jako programovacího jazyka je libovolná, protože vznikl během krystalizace programovacích jazyků a jeho záběr sahá od práce s lékařským vybavením až po operační DBMS a expertní systémy (například VA VistA).
MUMPS vznikly ve specifickém lékařském prostředí kardiologů (Octo Barnett). Původně navržen tak, aby usnadnil psaní databázových aplikací a zároveň maximalizoval využití počítačových zdrojů. Často se používá v nemocnicích a pro finanční informační systémy a databáze (zejména ty, které byly vyvinuty v 70. a počátkem 80. let 20. století) a nadále jej používá řada klientů. Nyní je MUMPS základním jazykem v systémech GT.M , MiniM , YottaDB , DSM, MSM , M3-LITE. Největší a nejznámější implementací jazyka MUMPS je objektově orientovaná DBMS Caché (s objektově orientovanou nadstavbou jazyka M - ObjectScript) a IRIS Data Platform
Globální pole v systémech MUMPS se používají k vytváření a správě databází. Struktura globálních polí je unikátní vlastností jazyka MUMPS. Tato pole se automaticky zapisují na disk, bez nutnosti vyhradit a adresovat prostor pro zápis, a jsou hierarchická a řídká ze své podstaty. Pole mohou obsahovat libovolný počet úrovní hierarchie a data mohou být obsažena na kterékoli z úrovní pole. Index pole může být jakýkoli platný výraz MUMPS, který se vyhodnotí jako číslo nebo řetězec znaků. [jeden]
Volně distribuovaná implementace M-systému - GT.M, stejně jako YottaDB, je optimalizována pro transakce a může být vývojovou platformou, má kompilátor, který odpovídá standardu ANSI / ISO. Používá se v různých odvětvích, nejvíce ve financích a zdravotnictví.
Od 6. ledna 2005 a znovu od 25. června 2010 komise ISO potvrzuje mezinárodní standardy související s technologiemi MUMPS: ISO/IEC 11756:1999, jazyková norma , ISO/IEC 15851:1999, Open MUMPS Interconnect a ISO/IEC 15852: 1999, MUMPS Windowing Application Programmers Interface .
Hlavní myšlenky MUMPS
- MUMPS pokrývá mnoho oblastí, které jsou obvykle běžnější v operačních systémech pro všeobecné použití, které podporují provoz a vývoj aplikačních programů. Kromě toho, že jde pouze o jazykový tlumočník, má funkce pro správu databází a také poskytuje dobré rozhraní s I/O zařízeními. Kromě toho většina verzí MUMPS umožňuje víceuživatelský a multitasking pomocí principů sdílení času mezi úkoly.
- MUMPS je interpretační jazyk. Příkazy MUMPS lze spouštět přímo z klávesnice nebo je zapisovat jako programy na disk. MUMPS interpretuje datové typy v kontextu operací na nich prováděných. V přímém režimu může uživatel snadno zkontrolovat kterýkoli z jazykových konstrukcí, použít debugger k ladění programů a jejich procedur, kdykoli zobrazit a změnit obsah lokálních i globálních proměnných.
- Interpretace dat jako program (indirection, vlastně lambda kalkul ). Existují dva způsoby použití nepřímosti: příkaz XECUTE, ve kterém je datové pole použité jako argument příkazu provedeno jako sada instrukcí MUMPS; pomocí nepřímého operátoru @, který umožňuje nahradit argumenty operátoru datovými poli.
- Globální je pole, které je automaticky adresováno pro zápis na disk. Hlavní forma zápisu dat MUMPS. Globals jsou řídká pole a jejich diskový prostor je určen pouze velikostí dat zapsaných v indexech. Globální údaje lze sdílet mezi mnoha uživateli současně. Globální proměnné jsou dostupné všem procesům běžícím ve stejném adresáři. Indexování – uspořádání relativní pozice záznamů v poli se nazývá indexování a v MUMPS je dosaženo pomocí globálních indexů pole. Indexy v těchto polích mohou být nejen čísla, ale také libovolné znakové řetězce, které mají hodnotu (sémantiku), která se pak používá v programech. Může to být například kód zpracování uzlu.
- Víceosé kódování se často používá v lékařských informačních systémech ke kódování diagnóz a léčebných postupů, které mohou mít ve svém kódu více odkazů. Diagnóza může obsahovat prvek indikující poškození konkrétního orgánu těla nebo konkrétní části orgánu (například stěna levé komory srdce), další pole indikuje funkční změny v tomto místě (zánět), třetí pole označuje příčinu onemocnění (trauma) . Každé z polí je prvkem hierarchické struktury, kombinace tří polí vytváří jeden kód nemoci, který obsahuje tři vazby.
- Ve většině implementací MUMPS jsou globální struktury založeny na konceptu takzvaných vyvážených stromů (také nazývaných B-stromy ). B-stromy jsou mocným nástrojem pro organizaci řídkých struktur pomocí klíčů (indexů). To poskytuje účinný mechanismus pro zápis a čtení dat s minimálním počtem přístupů na disk.
- MUMPS je řádkově orientovaný jazyk, každý řádek může obsahovat mnoho příkazů (počet je omezen pouze limitem délky řádku - obvykle 255 znaků). Jednotlivé příkazy a funkce jazyka lze seskupit do jedné fyzické řady programu:
- ^ [System,Directory]Name(Subscripts) - Syntaxe globálního odkazu na program nebo data. Identifikátor systému označuje, že odkaz odkazuje na region umístěný na stejném systému (na stejném hostiteli) jako aktuální proces. Identifikátor oblasti (adresář) označuje, že adresa je přidělena oblasti přiřazené aktuálnímu procesu při jeho spuštění;
- % - začátek názvu pole knihovny;
- : — následný stav operátora;
- $ - začátek názvu systémových proměnných;
- [ - operace "řetězec obsahuje";
- ] - operace "následuje řádek";
- $Z - funkce vývojářů MUMPS a nejsou standardní.
Ahoj světe! na MUMPS
Ahoj světe! , napsaný v MUMPS, by vypadal takto:
hello()
write "Hello, World!",!
quit
Lze jej spustit z příkazového řádku MUMPS příkazem:
do ^hello()
Protože MUMPS začal podporovat sekvenční příkazy na jednom řádku a bylo možné psát příkazy pomocí jednopísmenné zkratky, lze tento program psát kompaktněji:
hello() w "Hello, World!",! q
Srovnání s alternativami
Zastánci MUMPS tvrdili, že tato technologie je málo známá a mnohem méně běžná mimo velké podnikové systémy. Nové databázové aplikace jsou nejčastěji vytvářeny pomocí SQL podporovaného v moderních implementacích MUMPS a populárních programovacích jazycích [2] .
Kritici MUMPS přímo označují tuto technologii za zastaralou [3] a poukazují na takové nedostatky MUMPS jako [3] [4] :
Jazyk MUMPS byl kritiky nazýván způsobujícím chyby, protože [3] [4] :
- neexistuje povinná deklarace (deklarace) proměnných ;
- obvyklé priority aritmetických operací nejsou podporovány (např. výraz 2 + 3 × 10 dává hodnotu 50 v MUMPS);
- mezera navíc nebo zalomení řádku může zcela změnit význam syntaktické konstrukce;
- klíčová slova jazyka nejsou vyhrazena a mohou být široce používána jako identifikátory.
Poznámky
- ↑ John Levkowicz. Vše o programovacím jazyce a systému MUMPS, 1994, kap. deset.
- ↑ Zcela nové databázové aplikace budou pravděpodobně napsány v SQL a C, PHP nebo jiném oblíbeném jazyce. Nedostatek popularity MUMPS a jeho rozdíly od moderních jazyků v rozšířeném používání jsou možná jeho největší nedostatky // Mumps at BookRags (nedostupný odkaz)
- ↑ 1 2 3 Příušnice: smrtelná nemoc nebo programovací jazyk? Archivováno z originálu 23. prosince 2010.
- ↑ 1 2 Případ příušnic . Získáno 19. září 2013. Archivováno z originálu 3. října 2013. (neurčitý)
Viz také
- DIAMS je sovětský dialekt jazyka MUMPS a operační systém s vestavěným interpretem vlastního programovacího jazyka, vestavěným stromovým DBMS, sadou utilit a dalších programů.
- HL7 - Standard zdravotnických informací
- UMLS – jazyk pro popis lékařského informačního zdroje
- VA Vista