OREION
Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită pe 24 noiembrie 2018; verificările necesită
3 modificări .
MUMPS ( în engleză Massachusetts General Hospital Utility Multi-Programming System - Sistem multi-program al Spitalului General din Massachusetts ; uneori M, sau M-system) este un limbaj de programare creat în 1966-1967 pentru utilizare în industria medicală.
De la MUMPS a apărut sistemul medical gratuit VA VistA în anii 1970 , standardul de facto al sistemului de informații medicale .
Istorie
Definiția MUMPS ca limbaj de programare este arbitrară, deoarece a apărut în timpul cristalizării limbajelor de programare, iar domeniul său de aplicare se extinde de la lucrul cu echipamente medicale până la DBMS operațional și sisteme expert (de exemplu, VA VistA).
OREION a apărut în mediul medical specific cardiologilor (Octo Barnett). Proiectat inițial pentru a facilita scrierea aplicațiilor de baze de date, maximizând în același timp utilizarea resurselor computerului . Folosit adesea în spitale și pentru sisteme de informații financiare și baze de date (în special cele dezvoltate în anii 1970 și începutul anilor 1980) și continuă să fie utilizat de un număr de clienți. Acum MUMPS este limba de bază în sistemele GT.M , MiniM , YottaDB , DSM, MSM , M3-LITE. Cea mai mare și mai cunoscută implementare a limbajului MUMPS este DBMS Caché (cu o extensie orientată pe obiecte a limbajului M - ObjectScript) și IRIS Data Platform.
Matricele globale în sistemele MUMPS sunt folosite pentru a construi și gestiona baze de date. Structura matricelor globale este o caracteristică unică a limbajului MUMPS. Aceste matrice sunt scrise automat pe disc, fără a fi nevoie să rezerve și să adreseze spațiu de scriere și sunt ierarhice și rare prin însăși natura lor. Matricele pot conține un număr arbitrar de niveluri ierarhice, iar datele pot fi conținute la oricare dintre nivelurile de matrice. Un index de matrice poate fi orice expresie MUMPS validă care se evaluează la un număr sau un șir de caractere. [unu]
Implementarea distribuită gratuit a sistemului M - GT.M, precum și YottaDB, este optimizată pentru tranzacții și poate fi o platformă de dezvoltare, are un compilator care respectă standardul ANSI / ISO. Este folosit în diverse industrii, mai ales în finanțe și asistență medicală.
Din 6 ianuarie 2005 și din nou din 25 iunie 2010, comitetul ISO a confirmat standardele internaționale legate de tehnologiile MUMPS: ISO/IEC 11756:1999, standard de limbă , ISO/IEC 15851:1999, Open MUMPS Interconnect și ISO/IEC 15852: 1999, Interfața programatorilor de aplicații cu ferestre MUMPS .
Idei principale ale oreionului
- MUMPS acoperă multe dintre domeniile de obicei mai comune în sistemele de operare de uz general care sprijină operarea și dezvoltarea programelor de aplicație. Pe lângă faptul că este doar un interpret de limbă, are funcții de gestionare a bazelor de date și oferă, de asemenea, o interfață bună cu dispozitivele I/O. În plus, majoritatea versiunilor MUMPS permit multi-utilizator și multi-tasking folosind principiile de partajare a timpului între sarcini.
- MUMPS este un limbaj interpretativ. Comenzile MUMPS pot fi executate direct de la tastatură sau scrise ca programe pe disc. MUMPS interpretează tipurile de date în contextul operațiunilor efectuate asupra acestora. În modul direct, utilizatorul poate verifica cu ușurință oricare dintre constructele limbajului, poate utiliza depanatorul pentru a depana programe și procedurile acestora, poate vizualiza și modifica conținutul variabilelor locale și globale în orice moment.
- Interpretarea datelor ca program (indirecție, de fapt calcul lambda ). Există două moduri de a utiliza indirect: instrucțiunea XECUTE, în care câmpul de date folosit ca argument pentru instrucțiune este executat ca un set de instrucțiuni MUMPS; folosind operatorul de indirectă @, care vă permite să înlocuiți argumentele operatorului cu câmpuri de date.
- Un global este o matrice care este adresată automat pentru scriere pe disc. Forma principală de notare a datelor MUMPS. Globalurile sunt matrice rare și spațiul lor pe disc este determinat doar de dimensiunea datelor scrise la indici. Globalurile pot fi partajate între mai mulți utilizatori în același timp. Variabilele globale sunt disponibile pentru toate procesele care rulează în același director. Indexare - organizarea poziției relative a înregistrărilor într-o matrice se numește indexare și se realizează în MUMPS folosind indecși de matrice globale. Indecii din aceste matrice pot fi nu numai numere, ci și orice șir de caractere care au o valoare (semantică), care este apoi folosită în programe. De exemplu, ar putea fi codul de procesare a nodului.
- Codarea pe mai multe axe este adesea folosită în sistemele de informații medicale pentru a codifica diagnostice și tratamente care pot avea mai multe referințe în codul lor. Diagnosticul poate include un element care indică deteriorarea unui anumit organ al corpului sau a unei anumite părți a unui organ (de exemplu, peretele ventricular stâng al inimii), un alt câmp indică modificări funcționale în acest loc (inflamație), al treilea câmp indică cauza bolii (traumă). Fiecare dintre câmpuri este un element al unei structuri ierarhice, combinația a trei câmpuri creează un singur cod de boală care conține trei link-uri.
- În majoritatea implementărilor MUMPS, structurile globale se bazează pe conceptul de așa-numiți arbori echilibrați (numiți și arbori B ). Arborii B sunt un instrument puternic pentru organizarea structurilor rare folosind chei (indexuri). Acesta oferă un mecanism eficient de scriere și citire a datelor cu un număr minim de accesări la disc.
- MUMPS este un limbaj orientat pe linii, fiecare linie poate conține multe instrucțiuni (numărul este limitat doar de limita de lungime a liniilor - de obicei 255 de caractere). Declarațiile și funcțiile individuale ale limbajului pot fi grupate pe o singură linie fizică de program:
- ^ [System,Directory]Name(Subscripts) - Sintaxa unei referințe globale, la un program sau date. Identificatorul de sistem indică faptul că legătura se referă la o regiune situată pe același sistem (pe aceeași gazdă) ca și procesul curent. Identificatorul de zonă (Director), indică faptul că adresa este făcută zonei alocate procesului curent atunci când acesta începe;
- % - începutul numelui matricei bibliotecii;
- : — postcondiția operatorului;
- $ - începutul numelui variabilelor de sistem;
- [ - operația „șirul conține”;
- ] - operatia "line follows";
- $Z - funcțiile dezvoltatorilor MUMPS și nu sunt standard.
Salut Lume! pe OREION
Salut , lume! , scris în oreion, ar arăta astfel:
hello()
write "Hello, World!",!
quit
Poate fi rulat din linia de comandă MUMPS cu comanda:
do ^hello()
Deoarece MUMPS a început să accepte comenzi secvențiale pe o singură linie și a devenit posibil să scrieți comenzi cu o abreviere cu o singură literă, acest program poate fi scris mai compact:
hello() w "Hello, World!",! q
Comparație cu alternative
Susținătorii MUMPS au susținut că tehnologia este puțin cunoscută și mult mai puțin comună în afara sistemelor de întreprinderi mari. Noile aplicații de baze de date sunt create cel mai adesea folosind SQL suportat în implementările moderne MUMPS și limbaje de programare populare [2] .
Criticii MUMPS numesc direct această tehnologie învechită [3] și subliniază astfel de deficiențe ale MUMPS ca [3] [4] :
Limbajul MUMPS a fost numit de critici provocator de erori deoarece [3] [4] :
- nu există declararea (declararea) obligatorie a variabilelor ;
- prioritățile obișnuite ale operațiilor aritmetice nu sunt acceptate (de exemplu, expresia 2 + 3 × 10 dă valoarea 50 în MUMPS);
- un spațiu suplimentar sau o întrerupere de linie poate schimba complet sensul unei construcții sintactice;
- cuvintele cheie de limbă nu sunt rezervate și pot fi utilizate pe scară largă ca identificatori.
Note
- ↑ John Levkowicz. Totul despre limbajul de programare și sistemul MUMPS, 1994, cap. zece.
- ↑ Aplicațiile nou-nouțe bazate pe baze de date sunt probabil scrise în SQL și C, PHP sau alt limbaj popular. Lipsa de popularitate a lui MUMPS și diferențele sale față de limbile moderne utilizate pe scară largă sunt poate cele mai mari dezavantaje ale sale // Oreion la BookRags (link indisponibil)
- ↑ 1 2 3 Oreion: o boală fatală sau un limbaj de programare? Arhivat din original pe 23 decembrie 2010.
- ↑ 1 2 Un caz al oreionului . Consultat la 19 septembrie 2013. Arhivat din original la 3 octombrie 2013. (nedefinit)
Vezi și
- DIAMS este un dialect sovietic al limbajului MUMPS și un sistem de operare cu un interpret încorporat al propriului limbaj de programare, un SGBD de tip arbore încorporat, un set de utilitare și alte programe.
- HL7 - Standard de informare privind sănătatea
- UMLS - Limbaj de descriere a resurselor de informații medicale
- VA Vista