войти зарегистрироваться

Персональные блоги язык программирования M, он же MUMPS, ДИАМС. параллельная обработка

! привет
.свою сагу начну с упоминания моего учителя и профи языка программирования М и удивительного друга Александра Велиева который ведёт сайт www.cgi2m.net.ua откуда я и копирую со своими комментариями его статью

:: Параллельная обработка :.



Я счастлив, что М успешно справился с новым вызовом времени — параллельной обработкой.
Это новейший и абсолютно иной вид программистского мышления.

Как я боялся своей программы


Начало этой истории — зима 2006 года.
Знакомая попросила для брата-студента книгу о Прологе.
Я разыскал Пролог-библию Братко и наконец решил её прочесть снова.
В ней я прочёл, как элегантно Братко нашёл алгоритм наибольшего общего делителя без вычислений.
Это решение было настолько элегантно, что я решил написать что-либо подобное в М.
Я написал программу на бумаге и боялся её запустить.
Как старый мумпсер я знал о строгих ограничениях на количество подпроцессов и не мог оценить размера базы данных, который для этого понадобится.
Я не хотел начинать испытания такой элегантной и мощной программы с таких вещей, как крах базы данных или отказ компилятора.
Но узнав GT.M лучше, я начал сомневаться в своих сомнениях и решил попросить совета на comp.lang.mumps.
Сразу же г-н. K.S.Bhaskar ответил мне.
Благодаря его советам и поддержке я смог её успешно испытать. Вот код:
 ;Эта программа создаёт численные ряды
 ;a - простые числа(делятся на 1 и себя)
 ;b - ряды делителей
 ;c - ряд простых чисел
example ;
 k ^a,^b,^c,^pid s Lim=1000000,^p=0,h1=$h
 f i=2:1:Lim s ^a(i)=i
 s (i,^c(1))=1 f  s i=$o(^a(i)) q:i=""  d
 .j a(i,Lim)::0 i  d c
 .e  d a(i,Lim) w Lim,i,!
 s h2=$h zwr  q
a(v1,v2) s ^pid($j)=,(^b(v1,v1),^c(v1))=v1,c=v1+v1
 i c<v2 f n=c:v1:v2 k ^a(n) s (^b(v1,n),^c(n))=n
 k ^pid($j) q
c k p m p=^pid s c="" f s=0:1 s c=$o(p©) q:c=""
 s c=$g(p) s:c<s ^pid=s w P ,i, ,s, ,c,! q

Испытания этой программы в GT.M было успешным — об этом Вы можете прочесть на форуме comp.lang.mumps.

Персональные блоги язык программирования M, он же MUMPS, ДИАМС. начало

! привет
.свою сагу начну с упоминания моего учителя и профи языка программирования М и удивительного друга Александра Велиева который ведёт сайт www.cgi2m.net.ua по счастливой случайности у которого я сижу сейчас на кухне и мы пьём чай

знакомство


.если вам не терпится узнать, что же такое MUPMS, ДИАМС, язык М-технологий, Википедия вам в помощь, а также просмотрите ссылки в конце статьи
: От себя замечу что это
* язык программирования со своеобразным синтаксисом
* ключевые слова можно сокращать до одной буквы
* встроена хорошая обработка строк
* встроена скоростная база на основе B+ деревьев, обращение с ней происходит на уровне массивов — как нынче модно говорить, ассоциативных с неограниченной вложенностью
* надежность, позволяющая работать в банках, заводах и промышленных объектах
.в те далёкие годы, когда мониторы компьютеров были зелёно-черными, друг предложил, тогда еще даже не двадцатилетнему, а меньше, мне попрограммировать за деньги в частной фирме.фирма располагалась в тогда уж отмирающем НИИ и состояла из программистов этого НИИ, которые попали под сокращения начала лихих девяностых.техника была тоже из НИИ, но было еще пару персоналок, тогда еще 486 и первый пентиум.на персоналке заседал гуру FoxPro и вещал о крутизне это продукта.к SQL я и тогда испытывал неприязнь и вышеупомянутый друг познакомил меня с начальником фирмы, бывшим его коллегой по программистскому цеху.шеф был очень неплохим админом VAX VMS — многопользовательской операционки для компов VAX, на которых и предполагалось начать работу в проекте для Мелитопольского завода — учет деталей всякоразных и наличие на складе их

: Алехандро, завершив моё оформление в фирму, созвал меня и еще троих программеров старше меня и начал вещать, показывая на экране нечто подобное