Кіріспе

Бағдарламалау тілі
MUMPS ("Massachusetts General Hospital Utility Multi Programming System") немесе M – бұл императивті, жоғары деңгейдегі бағдарламалау тілі, кілт-мәнді деректер базасымен және транзакцияларды өңдеу мүмкіндігі біріктірілген. Ол бастапқыда Массачусетс жалпы ауруханасында пациенттердің медициналық жазбаларын және ауруханалық зертхана ақпараттық жүйелерін басқару үшін әзірленген. MUMPS технологиясы АҚШ-та денсаулық сақтау ақпараттық жүйелері мен электрондық денсаулық сақтау жазбалары үшін басым деректер базасы ретінде кеңейді. АҚШ-тағы ауруханалардың 40 пайызынан астамы MUMPS-ке негізделген ақпараттық жүйелерде жұмыс істейді, АҚШ-тың барлық федералдық ауруханалары мен клиникаларында қолданылады және АҚШ-тағы пациенттердің 54 пайызынан астамына денсаулық сақтау ақпараттық қызметтерін ұсынады. MUMPS технологиясының ерекшелігі – оның кіріктірілген деректер базасы тілі, ол тұрақты дискідегі сақтауға тікелей, жоғары жылдамдықты оқу-жазу мүмкіндігін береді. Бұл бірыңғай деректер базасында шексіз қосымшаларды тығыз интеграциялауды қамтамасыз етеді және онлайн транзакцияларды өңдеу жүйесі ретінде жоғары өнімділік пен сенімділікті ұсынады.

1960-1970 жылдар - Жаратылыс

MUMPS Нил Папалардо, Роберт А. Гринс және Курт Марбл доктор Окто Барнетттің зертханасында, Массачусетс жалпы ауруханасында (MGH) Бостонда 1966 және 1967 жылдары әзірленді. 1978 жылы жарыққа шыққаннан кейін параллель сатылды. Екі аппараттық отбасы да, сондай-ақ MUMPS нұсқалары 1995 жылға дейін DEC компаниясынан қолжетімді болды. DSM 11 екі нұсқада Alpha-ға көшірілді: OpenVMS үшін DSM және Ultrix үшін DSM. InterSystems, VMS (M/VX) жүйесінде ISM (InterSystems M) және PDP 11 платформасында ISM 11, кейін M/11+ (1978), MS DOS жүйесінде M/PC, Data General жүйесінде M/DG, IBM VM/CMS жүйесінде M/VM және түрлі Unix жүйелерінде M/UX. Greystone Technology Corporation 1980 жылы құрылды, GT деп аталатын компиляцияланған нұсқасымен. M, AIX, HP UX, UNIX және OpenVMS үшін. DataTree Inc. 1982 жылы Intel PC негізінде DTM деп аталатын өніммен. Micronetics Design Corporation (1980) MSM деп аталатын өнім желісімен. MSM PC, MSM/386, MS UNIX, MSM NT, IBM үшін MSM/VM, VAX/VMS платформалары және OpenVMS Alpha платформалары. Компьютерлік кеңесшілер (кейін MGlobal деп аталды), Хьюстон қаласындағы компания бастапқыда 6800 процессорларында CCSM, содан кейін 6809 процессорларында және ақырында 68000 процессорларына көшірді, ол кейіннен Mac OS негізіндегі өнім болған MacMUMPS аталды. Олар сондай-ақ MGM MUMPS іске асыруы үстінде жұмыс істеді. MGlobal сонымен қатар олардың іске асырылуын DOS платформасына көшірді. MGlobal MUMPS IBM PC үшін алғашқы коммерциялық MUMPS және классикалық Mac OS үшін жалғыз іске асырылуы болды. Tandem Computers компаниясы өздерінің қатеге төзімді компьютерлері үшін іске асыруды жасады. IBM сәтке MUMPS/VM деп аталатын MUMPS іске асыруын VM/370 үстінде виртуалды машина ретінде ұсынды. Осы кезеңде МДК белсенділігі де жоғары болды. MUMPS үшін ANSI стандартының екінші редакциясы (X11.1 1984) 1984 жылдың 15 қарашасында бекітілді.

1990 жылдар

1990 жылдың 11 қарашасында ANSI стандартының үшінші қайта қаралуы (X11.1 1990) бекітілді. 1992 жылы осы стандарт ISO 11756–1992 стандарты ретінде қабылданды. Сол шамада М-ді тілдің баламалы атауы ретінде пайдалану да мақұлданды. 1995 жылдың 8 желтоқсанында ANSI стандарттың төртінші қайта қаралуын (X11.1 1995) бекітті, ал ISO 1999 жылы ISO 11756:1999 ретінде бекітті, оны ANSI да жариялады. MDC 1998 жылы стандартқа тағы бір түзетуді аяқтады, бірақ ол ANSI-ге бекітуге ұсынылмады. 1999 жылы соңғы M стандарты (ISO/IEC 11756 1999) бекітілді. ISO оны 2020 жылы қайта растады. ISO/IEC 15851:1999, Ашық MUMPS қосылысы және ISO/IEC 15852:1999, MUMPS терезелік қолданба бағдарламалаушы интерфейсімен бірге.

Атауы

InterSystems компаниясының бас директоры MUMPS атауын ұнатпады және оның маркетингтік кедергі екенін сезінді. Сондықтан, M-ді белгілі бір дәрежеде қолдау InterSystems-пен байланыстырылды. 1990 жылғы ANSI стандарты M және MUMPS екеуіне де ашық болды, ал 1992 жылы өткен «жалпыға ортақ» талқыдан кейін Mumps пайдаланушылар тобы атауды ресми түрде M деп өзгертті. Бұл дау сонымен қатар ұйымдардың (M Technology Association, MUMPS Development Committee, ANSI және ISO стандарттау комитеттері) арасындағы тілдің «ресми» атауын кім анықтайтыны туралы бәсекелестікті көрсетті. 2020 жылғы мәліметтер бойынша ISO әлі де M және MUMPS екеуін де ресми қабылданған атаулар ретінде көрсетеді. Массачусетс жалпы ауруханасы 1971 жылдың 28 қарашасында «MUMPS» атауын USPTO-да сауда белгісі ретінде тіркеді және 1992 жылдың 16 қарашасында жаңартты, бірақ 2003 жылдың 30 тамызында оның тіркеу мерзімі аяқталды.

Сын

MUMPS синтаксисінің кейбір аспектілері заманауи тілдерден күрт өзгеше, бұл шатасуға себеп болуы мүмкін, бірақ бұл ерекшеліктер тілдің әртүрлі нұсқаларында айырмашылыққа ие. Кейбір нұсқаларда, өрнектерде бос орынға жол берілмейді, себебі ол операторды аяқтайды: 2 + 3 – қате, және 2+3 деп жазылуы тиіс. Барлық операторлардың приоритеті бірдей және солдан оңға қарай есептеледі (2+3*10 нәтижесі 50-ге тең). «Кішпей немесе тең» және «үлкен немесе тең» операторлары ‘ және > белгілерімен белгіленеді (яғни, логикалық инверсия операторы ‘ және кері бағыттағы қатаң салыстыру операторы), алайда кейбір нұсқалар тиісінше <= және >= стандартты операторларын қолдануға рұқсат береді. DO блогындағы жолдарды бағындыру үшін нүктелер (.) қолданылады, бос орын емес. ELSE операторына сәйкес IF операторы міндетті емес, себебі ол жүйелік $test айнымалысының мәнін тексеру арқылы жұмыс істейді. MUMPS-тың ауқым ережелері басқа заманауи тілдерге қарағанда көбірек мүмкіндік береді. Жарияланған жергілікті айнымалылар стекті пайдаланып ауқымға ие болады. Реттік әдетте шақыру стегіндегі төменгі реттіктердің барлық жарияланған жергілікті айнымалыларын көре алады, және шақырған реттік шақырған реттіктердің жарияланған жергілікті айнымалыларын өзгертуіне бөгет жасай алмайды, егер шақырушы қолмен жаңа стек деңгейін (do) жасап, қорғағысы келген әрбір айнымалының псевдонимін (. new x,y) жасамаса. Керісінше, жарияланбаған айнымалылар (декларацияланбаған, пайдаланылу арқылы құрылған айнымалылар) бір процесте жұмыс істейтін барлық реттіктер үшін қолданыста болады және бағдарлама аяқталғанға дейін ауқымда қалады. MUMPS дерекқорының сілтемелері ішкі айнымалы сілтемелерден тек caret префиксімен ғана ерекшеленеді, сондықтан дерекқорын қателікпен өңдеу немесе тіпті дерекқорының «кестесін» жою өте оңай.