PÅSSJUKA
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 24 november 2018; kontroller kräver
3 redigeringar .
MUMPS ( engelsk Massachusetts General Hospital Utility Multi-Programming System - Multi-program system of the General Hospital of Massachusetts ; ibland M, eller M-system) är ett programmeringsspråk skapat 1966-1967 för användning inom den medicinska industrin.
Från MUMPS kom det fria medicinska systemet VA VistA på 1970 -talet , den de facto standarden för medicinska informationssystem .
Historik
Definitionen av MUMPS som ett programmeringsspråk är godtycklig, eftersom det har sitt ursprung under kristalliseringen av programmeringsspråk, och dess omfattning sträcker sig från att arbeta med medicinsk utrustning till operativa DBMS och expertsystem (till exempel VA VistA).
Påssjuka har sitt ursprung i kardiologernas specifika medicinska miljö (Octo Barnett). Ursprungligen designad för att göra det lättare att skriva databasapplikationer samtidigt som användningen av datorresurser maximeras. Används ofta på sjukhus och för finansiella informationssystem och databaser (särskilt de som utvecklades under 1970-talet och början av 1980-talet) och fortsätter att användas av ett antal kunder. Nu är MUMPS basspråket i GT.M , MiniM , YottaDB , DSM, MSM , M3-LITE-system. Den största och mest välkända implementeringen av MUMPS-språket är den objektorienterade DBMS Caché (med en objektorienterad förlängning av M-språket - ObjectScript) och IRIS Data Platform
Globala arrayer i MUMPS-system används för att bygga och hantera databaser. Strukturen för globala arrayer är en unik egenskap hos MUMPS-språket. Dessa arrayer skrivs automatiskt till disk, utan att behöva reservera och adressera skrivutrymme, och är hierarkiska och glesa till sin natur. Matriser kan innehålla ett godtyckligt antal hierarkinivåer och data kan finnas på vilken som helst av matrisnivåerna. Ett matrisindex kan vara vilket giltigt MUMPS-uttryck som helst som utvärderas till ett tal eller en teckensträng. [ett]
Den fritt distribuerade implementeringen av M-systemet - GT.M, samt YottaDB, är optimerad för transaktioner och kan vara en utvecklingsplattform, har en kompilator som överensstämmer med ANSI / ISO-standarden. Det används i olika branscher, framför allt inom finans och sjukvård.
Sedan den 6 januari 2005 och igen sedan den 25 juni 2010 har ISO -kommittén bekräftat internationella standarder relaterade till MUMPS-teknologier: ISO/IEC 11756:1999, språkstandard , ISO/IEC 15851:1999, Open MUMPS Interconnect och ISO/IEC 15852: 1999, MUMPS Windowing Application Programmers Interface .
Huvudidéerna för PÅSSA
- MUMPS täcker många av de områden som vanligtvis är vanligare i generella operativsystem som stödjer drift och utveckling av applikationsprogram. Förutom att bara vara en språktolk har den databashanteringsfunktioner och ger även ett bra gränssnitt med I/O-enheter. Utöver detta tillåter de flesta versionerna av MUMPS fleranvändare och multi-tasking med hjälp av principerna för tidsdelning mellan uppgifter.
- Påssjuka är ett tolkningsspråk. MUMPS-kommandon kan köras direkt från tangentbordet eller skrivas som program till disken. MUMPS tolkar datatyper i samband med operationer som utförs på dem. I direktläge kan användaren enkelt kontrollera vilken som helst av språkkonstruktionerna, använda debuggern för att felsöka program och deras procedurer, se och ändra innehållet i lokala och globala variabler när som helst.
- Tolkning av data som ett program (inriktning, faktiskt lambdakalkyl ). Det finns två sätt att använda indirektion: XECUTE-satsen, där datafältet som används som argument till satsen exekveras som en uppsättning MUMPS-instruktioner; med hjälp av indirektionsoperatorn @, som låter dig ersätta operatorargument med datafält.
- En global är en array som automatiskt adresseras för skrivning till disk. Den huvudsakliga formen av MUMPS-datanotation. Globaler är glesa arrayer och deras diskutrymme bestäms endast av storleken på data som skrivs i indexen. Globaler kan delas mellan många användare samtidigt. Globala variabler är tillgängliga för alla processer som körs i samma katalog. Indexering - att organisera den relativa positionen för poster inom en array kallas indexering och uppnås i MUMPS med hjälp av globala arrayindex. Index i dessa arrayer kan inte bara vara siffror, utan också alla teckensträngar som har ett värde (semantik), som sedan används i program. Det kan till exempel vara nodbearbetningskoden.
- Fleraxlig kodning används ofta i medicinska informationssystem för att koda diagnoser och behandlingar som kan ha flera referenser i sin kod. Diagnosen kan innefatta ett element som indikerar skada på ett specifikt organ i kroppen eller en specifik del av ett organ (till exempel hjärtats vänstra kammarvägg), ett annat fält indikerar funktionella förändringar på denna plats (inflammation), det tredje fältet indikerar orsaken till sjukdomen (trauma) . Vart och ett av fälten är ett element i en hierarkisk struktur, kombinationen av tre fält skapar en enda sjukdomskod som innehåller tre länkar.
- I de flesta MUMPS-implementeringar är globala strukturer baserade på konceptet med så kallade balanserade träd (även kallade B-träd ). B-träd är ett kraftfullt verktyg för att organisera glesa strukturer med hjälp av nycklar (index). Detta ger en effektiv mekanism för att skriva och läsa data med ett minimum antal diskåtkomster.
- MUMPS är ett linjeorienterat språk, varje rad kan innehålla många påståenden (antalet begränsas endast av radlängdsgränsen - vanligtvis 255 tecken). Språkets individuella uttalanden och funktioner kan grupperas tillsammans på en enda fysisk programrad:
- ^ [System,Directory]Name(Subscripts) - Syntax för en global referens, till ett program eller data. Systemidentifieraren indikerar att länken hänvisar till en region som finns på samma system (på samma värd) som den aktuella processen. Områdesidentifieraren (Directory) indikerar att adressen görs till det område som tilldelats den aktuella processen när den startar;
- % - början av namnet på biblioteksmatrisen;
- : — Eftertillstånd för operatören.
- $ - början av namnet på systemvariabler;
- [ - operation "sträng innehåller";
- ] - operation "linje följer";
- $Z - funktioner för MUMPS-utvecklare och är inte standard.
Hej världen! på MUMPS
Hej världen! , skrivet i MUMPS, skulle se ut så här:
hello()
write "Hello, World!",!
quit
Det kan köras från MUMPS-kommandoraden med kommandot:
do ^hello()
Eftersom MUMPS började stödja sekventiella kommandon på en enda rad, och det blev möjligt att skriva kommandon med en bokstavsförkortning, kan detta program skrivas mer kompakt:
hello() w "Hello, World!",! q
Jämförelse med alternativ
Förespråkare av MUMPS har hävdat att tekniken är lite känd och mycket mindre vanlig utanför stora företagssystem. Nya databasapplikationer skapas oftast med SQL som stöds i moderna MUMPS-implementationer och populära programmeringsspråk [2] .
Kritiker av PUMPA kallar direkt denna teknik föråldrad [3] och pekar på sådana brister hos PUMPA som [3] [4] :
MUMPS-språket har kallats felprovocerande av kritiker eftersom [3] [4] :
- det finns ingen obligatorisk deklaration (deklaration) av variabler ;
- de vanliga prioriteringarna för aritmetiska operationer stöds inte (till exempel ger uttrycket 2 + 3 × 10 värdet 50 i MUMPS);
- ett extra mellanslag eller radbrytning kan helt förändra innebörden av en syntaktisk konstruktion;
- språknyckelord är inte reserverade och kan användas i stor utsträckning som identifierare.
Anteckningar
- ↑ John Levkowicz. Allt om programmeringsspråket och MUMPS-systemet, 1994, kap. tio.
- ↑ Helt nya databasdrivna applikationer kommer sannolikt att skrivas i SQL och C, PHP eller ett annat populärt språk. MUMPS brist på popularitet och dess skillnader från de moderna språken i utbredd användning är kanske dess största nackdelar // Mumps at BookRags (inte tillgänglig länk)
- ↑ 1 2 3 Påssjuka: en dödlig sjukdom eller ett programmeringsspråk? Arkiverad från originalet den 23 december 2010.
- ↑ 1 2 Ett fall av påssjukan . Hämtad 19 september 2013. Arkiverad från originalet 3 oktober 2013. (obestämd)
Se även
- DIAMS är en sovjetisk dialekt av MUMPS-språket och ett operativsystem med en inbyggd tolk av sitt eget programmeringsspråk, en inbyggd DBMS av trädtyp, en uppsättning verktyg och andra program
- HL7 - Health Information Standard
- UMLS - Medicinsk informationsresursbeskrivning Språk
- VA Vista