2016-09-04 6 views
2

Какова концептуальная разница между процедурой и процессом?SICP - Процедуры против процесса

Если ответы зависят от языка, я думаю об этом, изучая книгу SICP, в которой используется lisp (схема).

+2

Оба «процедуры» и «процесс» есть * лоты * разных определений, в зависимости от контекста, в котором они используются. Таким образом, пожалуйста, укажите немного больше контекста. –

+1

Прочитали ли вы главу 1.2 «Процедуры и процессы, которые они выполняют ел"? – molbdnilo

ответ

1

В контексте SICP:

  • Процедура является описание (если вы хотите, рецепт) процесса.
  • Процесс - результат (в широком смысле, а не только возвращаемое значение) применения процедуры к аргументам: все настроенные контексты, переменные с определенными или заданными значениями, все вычисления, которые будут иметь место, и т. Д. Ничего из этого не происходит в самой процедуре.

Другая аналогия: процедура - это схема, схема здания, например, процесс - это фактическое строительство здания.

3

Программа - это описание того, как вычислить что-то. Если вы сообщите операционной системе, чтобы она запускала программу, она считывает программу (в виде исполняемого файла) с диска и запускает процесс aka вычисление, где cpu следует за шагами вычислений, заданными программой. Если вы запускаете одну и ту же программу дважды, вы получаете два процесса (если вы используете графический интерфейс, который вы, вероятно, случайно попытались щелкнуть левой кнопкой мыши по значку дважды, создайте два окна (здесь каждое окно относится к процессу).

В контекст SICP, процесс бегущей вычисления и процедура является описанием вычисления аки программы (или части программы).

См https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-9.html#%_idx_114