FÅRESYKKE
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 24. november 2018; checks kræver
3 redigeringer .
MUMPS ( engelsk Massachusetts General Hospital Utility Multi-Programming System - Multi-program system of the General Hospital of Massachusetts ; nogle gange M eller M-system) er et programmeringssprog oprettet i 1966-1967 til brug i den medicinske industri.
Fra MUMPS kom det gratis medicinske system VA VistA i 1970'erne , den de facto medicinske informationssystemstandard .
Historie
Definitionen af MUMPS som et programmeringssprog er vilkårlig, da det opstod under krystalliseringen af programmeringssprog, og dets omfang strækker sig fra arbejde med medicinsk udstyr til operationelle DBMS og ekspertsystemer (for eksempel VA VistA).
FYRESKE opstod i det specifikke medicinske miljø af kardiologer (Octo Barnett). Oprindeligt designet til at gøre det nemmere at skrive databaseapplikationer og samtidig maksimere brugen af computerressourcer . Bruges ofte på hospitaler og til finansielle informationssystemer og databaser (især dem, der er udviklet i 1970'erne og begyndelsen af 1980'erne) og bliver fortsat brugt af en række kunder. Nu er MUMPS basissproget i GT.M , MiniM , YottaDB , DSM, MSM , M3-LITE systemer. Den største og mest kendte implementering af MUMPS-sproget er den objektorienterede DBMS Caché (med en objektorienteret udvidelse af M-sproget - ObjectScript) og IRIS Data Platform
Globale arrays i MUMPS-systemer bruges til at bygge og administrere databaser. Strukturen af globale arrays er et unikt træk ved MUMPS-sproget. Disse arrays skrives automatisk til disk uden behov for at reservere og adressere skriveplads, og de er hierarkiske og sparsomme i sagens natur. Arrays kan indeholde et vilkårligt antal hierarkiniveauer, og data kan indeholdes på et hvilket som helst af arrayniveauerne. Et matrixindeks kan være et hvilket som helst gyldigt MUMPS-udtryk, der evalueres til et tal eller en tegnstreng. [en]
Den frit distribuerede implementering af M-systemet - GT.M, samt YottaDB, er optimeret til transaktioner og kan være en udviklingsplatform, har en compiler, der overholder ANSI / ISO standarden. Det bruges i forskellige brancher, mest af alt inden for finans og sundhedsvæsen.
Siden 6. januar 2005 og igen siden 25. juni 2010 har ISO -udvalget bekræftet internationale standarder relateret til MUMPS-teknologier: ISO/IEC 11756:1999, sprogstandard , ISO/IEC 15851:1999, Open MUMPS Interconnect og ISO/IEC 15852: 1999, MUMPS Windowing Application Programmers Interface .
Hovedideer af FÆSKE
- MUMPS dækker mange af de områder, der typisk er mere almindelige i generelle operativsystemer, der understøtter drift og udvikling af applikationsprogrammer. Ud over at være blot en sprogfortolker, har den databasestyringsfunktioner og giver også en god grænseflade med I/O-enheder. Ud over dette giver de fleste versioner af MUMPS mulighed for multi-user og multi-tasking ved at bruge principperne om tidsdeling mellem opgaver.
- FÆSKE er et fortolkende sprog. MUMPS-kommandoer kan udføres direkte fra tastaturet eller skrives som programmer til disken. MUMPS fortolker datatyper i sammenhæng med operationer udført på dem. I direkte tilstand kan brugeren nemt kontrollere enhver af sprogkonstruktionerne, bruge debuggeren til at fejlsøge programmer og deres procedurer, se og ændre indholdet af lokale og globale variabler til enhver tid.
- Fortolkning af data som et program (indirektion, faktisk lambda-regning ). Der er to måder at bruge indirektion på: XECUTE-sætningen, hvor datafeltet, der bruges som argument for sætningen, udføres som et sæt MUMPS-instruktioner; ved at bruge indirektionsoperatoren @, som giver dig mulighed for at erstatte operatorargumenter med datafelter.
- En global er et array, der automatisk adresseres til skrivning til disk. Den vigtigste form for MUMPS-datanotation. Globaler er sparsomme arrays, og deres diskplads bestemmes kun af størrelsen af de data, der skrives ved indekserne. Globaler kan deles mellem mange brugere på samme tid. Globale variabler er tilgængelige for alle processer, der kører i den samme mappe. Indeksering - organisering af den relative position af poster i et array kaldes indeksering og opnås i MUMPS ved hjælp af globale array-indekser. Indekser i disse arrays kan ikke kun være tal, men også alle tegnstrenge, der har en værdi (semantik), som så bruges i programmer. Det kunne for eksempel være nodebehandlingskoden.
- Multi-akse kodning bruges ofte i medicinske informationssystemer til at kode diagnoser og behandlinger, der kan have flere referencer i deres kode. Diagnosen kan omfatte et element, der indikerer skade på et specifikt organ i kroppen eller en bestemt del af et organ (for eksempel venstre ventrikelvæg i hjertet), et andet felt indikerer funktionelle ændringer på dette sted (betændelse), det tredje felt angiver årsagen til sygdommen (traume) . Hvert af felterne er et element i en hierarkisk struktur, kombinationen af tre felter skaber en enkelt sygdomskode, der indeholder tre links.
- I de fleste MUMPS-implementeringer er globale strukturer baseret på konceptet med såkaldte balancerede træer (også kaldet B-træer ). B-træer er et kraftfuldt værktøj til at organisere sparsomme strukturer ved hjælp af nøgler (indekser). Dette giver en effektiv mekanisme til at skrive og læse data med et minimum antal diskadgange.
- MUMPS er et linjeorienteret sprog, hver linje kan indeholde mange udsagn (antallet er kun begrænset af linjelængdegrænsen - normalt 255 tegn). Sprogets individuelle udsagn og funktioner kan grupperes sammen på en enkelt fysisk programlinje:
- ^ [System,Directory]Name(Subscripts) - Syntaks for en global reference til et program eller data. System-id'en angiver, at linket refererer til en region, der er placeret på det samme system (på samme vært) som den aktuelle proces. Områdeidentifikatoren (Directory) angiver, at adressen er lavet til det område, der er tildelt den aktuelle proces, når den starter;
- % - begyndelsen af navnet på biblioteksarrayet;
- : — operatørens eftertilstand;
- $ - begyndelsen af navnet på systemvariabler;
- [ - operation "streng indeholder";
- ] - operation "linje følger";
- $Z - funktioner af MUMPS udviklere og er ikke standard.
Hej Verden! på FÆSKE
Hej verden! , skrevet i MUMPS, ville se sådan ud:
hello()
write "Hello, World!",!
quit
Det kan køres fra MUMPS-kommandolinjen med kommandoen:
do ^hello()
Siden MUMPS begyndte at understøtte sekventielle kommandoer på en enkelt linje, og det blev muligt at skrive kommandoer med en enkelt bogstavsforkortelse, kan dette program skrives mere kompakt:
hello() w "Hello, World!",! q
Sammenligning med alternativer
Tilhængere af MUMPS har hævdet, at teknologien er lidt kendt og meget mindre almindelig uden for store virksomhedssystemer. Nye databaseapplikationer oprettes oftest ved hjælp af SQL understøttet i moderne MUMPS-implementeringer og populære programmeringssprog [2] .
Kritikere af MUMPS kalder direkte denne teknologi for forældet [3] og peger på sådanne mangler ved MUMPS som [3] [4] :
MUMPS-sproget er blevet kaldt fejlprovokerende af kritikere, fordi [3] [4] :
- der er ingen obligatorisk erklæring (erklæring) af variabler ;
- de sædvanlige prioriteter for aritmetiske operationer understøttes ikke (for eksempel giver udtrykket 2 + 3 × 10 værdien 50 i MUMPS);
- et ekstra mellemrum eller linjeskift kan fuldstændig ændre betydningen af en syntaktisk konstruktion;
- sprognøgleord er ikke reserveret og kan bruges i vid udstrækning som identifikatorer.
Noter
- ↑ John Levkowicz. Alt om programmeringssproget og MUMPS-systemet, 1994, kap. ti.
- ↑ Splinternye databasedrevne applikationer vil sandsynligvis blive skrevet i SQL og C, PHP eller et andet populært sprog. MUMPS' manglende popularitet og dens forskelle fra de moderne sprog i udbredt brug er måske dens største ulemper // Mumps at BookRags (utilgængeligt link)
- ↑ 1 2 3 Fåresyge: en dødelig sygdom eller et programmeringssprog? Arkiveret fra originalen den 23. december 2010.
- ↑ 1 2 Et tilfælde af fåresyge . Hentet 19. september 2013. Arkiveret fra originalen 3. oktober 2013. (ubestemt)
Se også
- DIAMS er en sovjetisk dialekt af MUMPS-sproget og et operativsystem med en indbygget fortolker af sit eget programmeringssprog, en indbygget trætype DBMS, et sæt hjælpeprogrammer og andre programmer
- HL7 - Health Information Standard
- UMLS - Medicinsk informationsressourcebeskrivelse Sprog
- VA Vista