Какое техническое определение для «рутины»? - PullRequest
20 голосов
/ 31 июля 2011

Я изучаю язык lisp (для выполнения процедур lisp), и в общем контексте я знаю, что такое рутина, но в техническом контексте я могу говорить об этом, потому что сейчас я начинаю изучать процедуры. Итак, каково настоящее определение рутины? (я уже "гуглил" это, но ничего не нашел)

Ответы [ 2 ]

28 голосов
/ 31 июля 2011

Термин рутина происходит от подпрограммы , которая является более распространенным термином в таких языках, как BASIC, где фактически создаются подпрограммы. (BASIC действительно имел разницу между подпрограммой и функцией, но тем не менее ...)

Из записи в Википедии:

В информатике подпрограмма ( также называемая процедурой, функцией, подпрограммой, методом или подпрограммой ) представляет собой часть кода в более крупной программе, которая выполняет определенную задачу, и составляет относительно независимо от оставшегося кода.

Как следует из названия «подпрограмма», подпрограмма ведет себя почти так же, как компьютерная программа, которая используется в качестве одного шага в более крупной программе или другой подпрограмме. Подпрограмма часто кодируется таким образом, чтобы ее можно было запускать («вызывать») несколько раз и / или из нескольких мест в течение одного выполнения программы, в том числе из других подпрограмм, а затем переходить назад (возвращаться) к следующей инструкции после "вызов", когда задача подпрограммы выполнена.

Различные языки / среды / эпохи имеют разные экосистемы и, следовательно, разные термины для описания одной и той же общей концепции. Я обычно использую термин function (или method в среде "ООП") в эти дни.

Счастливого кодирования.


Для удовольствия у меня есть сообщество Wiki'ed. Надеемся, что приведенный ниже список охватывает, какой термин (термины) является (являются) «правильными» (общепринятыми) для использования на данном языке, что означает рутина . Неофициально рутина используется в контексте всех языков, представленных ниже, поэтому ее следует опускать, если это не термин «де-факто». Не стесняйтесь добавлять, исправлять и комментировать соответствующим образом.

1 голос
/ 31 июля 2011

Вы не можете найти техническое определение, потому что нет технического определения, специфичного для lisp.«Рутина» за пределами водевиля - это просто другое название функции.Хотя прошло много лет с тех пор, как я программировал на Лиспе на полную ставку, никто никогда не использовал этот термин каким-либо формальным образом и даже не использовал его широко.Мы говорили о «функциях», «макросах» и «формах».Если кто-то сказал: «О, есть рутина для подсчета количества яблок в пироге», это было совершенно неформально.

...