|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
То ли я не могу понять, то ли автор плохо объясняет.... Читаю Каратаев Е MUMPS СУБД Практика применения и опыт программирования. 2013 год . Итак читаем: (стр. 125 1 абзац) Рутинами (routine) в языке MUMPS называется исходный текст программ, организованный как совокупность строк. Это понятно, но из прочитанного далее где начинается и где заканчивается рутина? Далее: (стр. 127 2 абзац) Первоначально в спецификации языка допускалось существование двух или более меток с одинаковыми именами в одной рутине, и т.д. КАК ЭТО? А как тогда определить на какую метку прыгать? Не понятно что такое рутина, просто файл с расширением .m но по книге можно сказать что нет, кусок кода или что то ещё? Потом не понятно с блоками - строками начинающимися на точку. Когда интерпретатор выполняет do без аргументов - с двумя пробелами, то после он начинает выполнять строки и количеством точек на единицу больше чем было в строке с do. Потом когда эти строки закончились то опят передаётся управление на строку с do без аргументов и уже начинают пропускаться строки с числом точек больше чем там где была do. Не понятно как в этом случае увязывается цикл, по логике вещей он не должен выполняться. Прогнали строки один раз вышли на do и всё пропустили эти строки и пошли выполнять то что за ними. То есть не зависимо от условия цикла его тело будет выполнено один раз и всё. Ещё не понятно как это рутина может храниться в глобале - просто текст программы записанный в глобале? Интересно тогда, может ли в глобале храниться байткод или пикод? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 19:41 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
Да, все верно рутина, это файл целиком, в Caché это файлы с расширением *.int и *.mac, в других системах *.m В Caché файлы рутин по сути виртуальные, потому как весь текст хранится в глобале, собственно и откомпилированный код *.obj файлы, хранятся так же в БД только в другом глобале. Хранить в БД можно все что угодно, если оно конечно влезет. меток в рутине может быть много, а что значит как определить на какую прыгнуть. do label^myRoutine() тут мы прыгаем на метку label в рутине myRoutine, здесь метка может быть любая которая есть в этой рутине. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 19:54 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
уровень точек это как новый уровень стека, т.е. это как будто вызвали подпрограмму, с циклом будет выполнятся столько раз сколько этого требует цикл, потому как при прохождении итерации, снова возрощается и проверяет условия цикла ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 19:57 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
То что меток может быть много это понятно. Не понятно как метки могут имет одинаковые имена. Одна метка label и другая метка label и ещё одна label не понятно тогда на какую будет сделан переход. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 21:13 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
Виталийv4567Не понятно как метки могут имет одинаковые имена. Одна метка label и другая метка label и ещё одна label В одном файле? Где Вы такое видели? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 21:18 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
с блоками вроде как разобрался. получается что если выпрыгнуть из подпрограммы по quit с предусловием, то после того как закончится рутина или код в который выпрыгнули, мы опять вернёмся в подпрограмму в то место из которого выпрыгнули? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 21:19 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
П.С.М.Виталийv4567Не понятно как метки могут имет одинаковые имена. Одна метка label и другая метка label и ещё одна label В одном файле? Где Вы такое видели?Вот здесь! Каратаев Е MUMPS СУБД Практика применения и опыт программирования. 2013 год . (стр. 127 2 абзац) Первоначально в спецификации языка допускалось существование двух или более меток с одинаковыми именами в одной рутине, и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 21:21 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
Виталийv4567, Сейчас при попытке компиляции рутины с двумя одинаковыми метками выдается ошибка <LABELREDEF>. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 21:49 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
Да в книге написано, что сейчас так делать нельзя и при компиляции с двумя одинаковыми метками выдаётся ошибка, а вот раньше было можно, но тогда не понятно как такой код мог работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 22:20 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
Все вызовы и переходы на метку попадали на её первое вхождение по тексту программы. А вообще рутина - безобразный термин, калька с английского, который к сожалению попал в хорошую книгу. Всю жизнь это переводили как программа. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 23:44 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
Alexey MaslovА вообще рутина - безобразный термин, калька с английского, который к сожалению попал в хорошую книгу. Всю жизнь это переводили как программа. А я и говорил, что надо отдельно писать учебник. В терминологии еще с индексами и сабскриптами не все модняво получается. А программа - это нечто цельное, с одной точкой входа. Рутины же они как-бы примерно как хранимые процедуры в sql, ну или пакет процедур. Это же не обязательно программа. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 00:31 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
Иногда, наоборот, рутина - это суперпрограмма)) http://www.routine2.com/testversion.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 08:52 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
ну яА я и говорил, Ни в коем случае не в обиду искренне уважаемому мной автору, но в нашей конторе (а это компания с мировым брендом, продукты которой есть у каждого человека) эта фраза входит в перечень запрещенных. Наравне с "это было еще до меня", "я ему сказал, а он не сделал" и им подобными. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 10:49 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
EvLaUyно в нашей конторе (а это компания с мировым брендом, продукты которой есть у каждого человека)Думаю, что в "ОАО ГАЗПРОМ" могут позволить себе еще больше всяких условностей... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 10:56 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
EvLaUyну яА я и говорил, Ни в коем случае не в обиду искренне уважаемому мной автору, но в нашей конторе (а это компания с мировым брендом, продукты которой есть у каждого человека) эта фраза входит в перечень запрещенных. Наравне с "это было еще до меня", "я ему сказал, а он не сделал" и им подобными.Конторы, запреты и начальство приходят и уходят, а мы все равно будем обсуждать как правильно - рутина и сабрутина или программа и подпрограмма. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 11:01 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
Спасибо, с этим вроде как немного разобрался. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 11:05 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
EvLaUyну яА я и говорил, эта фраза входит в перечень запрещенных.Меня удивляет в этом то, что топы до того теряют контакт с реальностью, что своим запретом фраз надеются запретить явления. Давайте запретим слова "коррупция", "взятка", "убийство" - может у нас все с преступностью станет сразу лучше? Что за компания то, продукция которой есть в каждой семье? Именно этой компании, а не аналогичных. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 12:22 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
Блок А.Н.Меня удивляет в этом то, что топы до того теряют контакт с реальностью, что своим запретом фраз надеются запретить явления. Давайте запретим слова "коррупция", "взятка", "убийство" - может у нас все с преступностью станет сразу лучше?Опровергать путем доведения до абсурда? Речь идет всего лишь об определенном уровне культуры делопроизводства и исполнительской дисциплины. Преступность - не моя тема. Блок А.Н.Что за компания то, продукция которой есть в каждой семье? Именно этой компании, а не аналогичных. Это не имеет отношения к данной теме, не хотелось бы скатываться в оффтоп. Если моя фраза Вас как-то сильно задела, я согласен ее смягчить. Будем считать, что я сказал: "ПОЧТИ у каждого человека". Так лучше? А по теме - известный канадский специалист молдавского происхождения в области M-технологий (переведший на русский язык книгу Джона Левковича) Игорь Топалов так же, как и Алексей Маслов, является противником применения термина "рутина", так же считая его неблагозвучным для русского языка. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 12:37 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
голосую за 'программный модуль' ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 14:17 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
Голосовать можно за всё что угодно. Согласен, термин программа не идеален, можно предложить более точные по смыслу варианты, но он - сложившаяся реальность: см. все книги В. Кирстена, документацию на MSM (переводившуюся на русский с 1993 года), Портал Cache', всевозможные учебно-методические материалы InterSystems, к переводу которых я не имел никакого отношения ))). Да и на нашем форуме поищите оба слова, "программа" и "pутина", и почувствуйте разницу. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 16:50 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
Давайте за то, чтобы наши программы не были рутиной! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 22:08 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
gluconat_caголосую за 'программный модуль'А вот контраргумент: в рутине нет автоматической инициализации и собственных переменных и внутренних функций, как это есть у модулей. Назовите рутину программой или модулем - и кого-то обманете. Ну не модуль это и не программа. В рутине даже подпрограмм толком нет, потому что можно выполнить goto из одной строки одной рутины в другую строку и в другой рутине и потом обратно. Вот в ассемблерных вставках на Борланд С можно выполнить jump из одной функции С в другую в том же модуле, а на Майкрософт С нельзя. Вот в MUMPS как с первым вариантом - да, можно. И между разными рутинами можно. Это просто набор строк; а то, что оно выполняется последовательно и хранится вместе - это и делает этот набор строк рутиной. Ближайшее к рутине понятие - это пакет функций. Да и функций, строго говоря, толком нет, потому что метка становится функцией лишь тогда, когда ее вызывают как функцию. Так что как дали изначально название routine и subroutine так оно и не вносит путаницу, как в переводах сделанных в СП.АРМ. Читаешь написанное - написано, что программа. Смотришь что на самом деле - а там рутина. Нужно понимать не только что означает написанное но и что означает перевод. А с переводом Кирстена про объекты - так хорошо еще, что про объекты разобрался перед тем как читал перевод, так бы не сразу понял что слово Embedded было переведено несколькими разными способами и на самом деле они были про одно и то же, а не про разное, и надо угадать что в этом месте мог переводить именно этот переводчик-гуманитарий, а их там судя по стилю перевода было несколько. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 00:08 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
ну яgluconat_caголосую за 'программный модуль'А вот контраргумент: в рутине нет автоматической инициализации и собственных переменных и внутренних функций, как это есть у модулей. Назовите рутину программой или модулем - и кого-то обманете. Ну не модуль это и не программа. В рутине даже подпрограмм толком нет, потому что можно выполнить goto из одной строки одной рутины в другую строку и в другой рутине и потом обратно. Вот в ассемблерных вставках на Борланд С можно выполнить jump из одной функции С в другую в том же модуле, а на Майкрософт С нельзя. Вот в MUMPS как с первым вариантом - да, можно. И между разными рутинами можно. Это просто набор строк; а то, что оно выполняется последовательно и хранится вместе - это и делает этот набор строк рутиной. Ближайшее к рутине понятие - это пакет функций. Да и функций, строго говоря, толком нет, потому что метка становится функцией лишь тогда, когда ее вызывают как функцию. Так что как дали изначально название routine и subroutine так оно и не вносит путаницу, как в переводах сделанных в СП.АРМ. Читаешь написанное - написано, что программа. Смотришь что на самом деле - а там рутина. Нужно понимать не только что означает написанное но и что означает перевод. А с переводом Кирстена про объекты - так хорошо еще, что про объекты разобрался перед тем как читал перевод, так бы не сразу понял что слово Embedded было переведено несколькими разными способами и на самом деле они были про одно и то же, а не про разное, и надо угадать что в этом месте мог переводить именно этот переводчик-гуманитарий, а их там судя по стилю перевода было несколько.Это несущественные детали реализации языка. Само слово рутина ничего не решает и ничему не помогает. Это специфический термин русскоязычного MUMPS сообщества. Я считаю что он только сбивает с толку приходящих и данный пост тому подтверждение. Понятие Модуль вполне подходяще. И почему это модуль всегда должен специально инициализироваться? В Си модуль просто обозвали файлом и не стали заморачиваться. Я все таки за вменяемые названия. А применение слова в какой то книге или переводе не является стандартом. Все таки терминологию надо вырабатывать и желательно понятную любому ИТ специалисту, а не только MUMPS сообществу. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 05:55 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
ну я, всё верно говорите, и спорить по большому счёту не с чем. Тут больше дело привычки, чем следование предельной строгости и точности. Я лично как начал употреблять слово программа так и остаюсь с ним, а для 'global' употребляю 'глобал', а не 'глобаль', которая до сих пор почему-то режет слух :) Что касается 'модулей', вот в gt.m нельзя скакнуть в другую м-программу на +n^routine, есть приватные метки 'невидимые' из других программ, так что уже есть некое 'модулеобразие'. Может быть назвали бы изначально рутину модулем, так и пришлось бы со временем соответствовать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 09:25 |
|
[gt.m] подскажите, что такое рутина
|
|||
---|---|---|---|
#18+
misha_sharСамо слово рутина ничего не решает и ничему не помогает. Это специфический термин русскоязычного MUMPS сообщества.Routine - этот термин используется и gt.m и Cache. Нет тут ничего специфичного именно в русскоязычном сообществе. Переводится данное слово на русский и как рутина и как программа, не вижу никакого смысла называть рутину модулем или еще чем то. misha_sharВсе таки терминологию надо вырабатывать и желательно понятную любому ИТ специалисту, а не только MUMPS сообществу.Я думаю в других языках тоже найдется немало примеров, когда термин понятен только тем кто работает с этим языком. Взять к примеру .Net с их Assembly ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 10:20 |
|
|
start [/forum/topic.php?fid=39&msg=38993218&tid=1556634]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 185ms |
0 / 0 |