Параметр (программирование): различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м →‎См. также: оформление
Строка 45:
| year = 2001
| url = http://www.cs.cornell.edu/courses/cs412/2001sp/iota/iota.html
}}</ref>. Многие языки, например [[Си (язык программирования)|Си]], не имеют механизма вызова по ссылке, но позволяют симулировать его внутри семантики вызова по значению посредством [[Ссылка (программирование)|ссылочных типов]], в частности, [[Указатель (программирование)|указателей]]. В последнем случае в сообществах таких языков часто говорят «''язык поддерживает две стратегии вычисления''», а также о «''вызове по указателю''» или «''вызове по адресу''».
 
На практике, модель вычисления многих промышленных языков ([[Java]], [[C Sharp|C#]]) сводится к стратегии «''вызов-при-упоминании/передача-по-ссылке''». Некоторые более старые языки, в особенности {{iw|Типобезопасность|небезопасные|en|Type safety}} языки, такие как [[C++]], сочетают несколько разных моделей вызова, включая экзотичные, такие как «''вызов-по-ссылке-на-[[Константа (программирование)|константу]]''». Исторически вызов по значению и вызов по имени восходят к [[Алгол-60|Алголу-60]], созданному в конце [[1950-е годы|1950-х годов]]. Только [[чистота языка программирования|чистые]] [[Функциональное программирование|функциональные]] языки, такие как [[Clean]] и [[Haskell]], используют [[вызов по необходимости]] ({{lang-en|call-by-need}}), который часто отождествляют (что также не вполне корректно) с [[Ленивые вычисления|ленивыми вычислениями]].