Объект первого класса

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая 212.42.102.210 (обсуждение) в 17:54, 22 марта 2010. Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

Объектами первого класса ("first-class citizens") в контексте конкретного языка программирования называются сущности, которые могут быть переданы как параметр, возвращены из функции, присвоены переменной.[1]

Термин был впервые использован в контексте “функции как объекты первого класса” в середине 1960-х.[2]

Определение

Объект называют "объектом первого класса" когда он:

  • может быть сохранен в переменной
  • может быть передан в функцию как параметр
  • может быть возвращен из функции как результат
  • может быть создан в Run-time
  • has intrinsic identity (independent of any given name)

Термин "объект" используется здесь в общем смысле, и не ограничивается объектами языка программирования. Так значения простейших типов данных, например integer и float, во многих языках являются "объектами первого класса".

Примеры

В C и C++ нельзя создавать функции во время исполнения программы, поэтому функции не являются объектами первого класса в этих языках. В Smalltalk и JavaScript функции (методы) и классы являются объектами первого класса. Поскольку операторы (+, -) в Smalltalk суть методы, они также являются объектами первого класса.

Ссылки

  1. Scott, Michael. Programming Language Pragmatics. — San Francisco, CA : Morgan Kaufmann Publishers, 2006.
  2. Rod Burstall, "Christopher Strachey—Understanding Programming Languages", Higher-Order and Symbolic Computation 13:52 (2000)