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

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

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

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

Определение

Объект называют «объектом первого класса» когда он[3][4]:

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

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

Примеры

В C и C++ нельзя создавать функции во время выполнения программы, поэтому функции не являются объектами первого класса в этих языках. В то же время указатели на функцию можно передавать в качестве аргумента и возвращать из другой функции, поэтому иногда функции в C++ называют объектами второго класса (англ. second-class object). Тем не менее, в C++ есть понятие функционального объекта (англ. function object), который является объектом первого класса и реализует эквивалентную функциям семантику[3].

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

Примечания

  1. Scott Michael Programming Language Pragmatics. — San Francisco, CA: Morgan Kaufmann Publishers, 2006. — P. 140.
  2. Rod Burstall, «Christopher Strachey—Understanding Programming Languages», Higher-Order and Symbolic Computation 13:52 (2000)
  3. 1 2 First Class. C2.com (25 января 2006). Архивировано из первоисточника 16 июля 2012. Проверено 16 июля 2012.
  4. first class object. Catalysoft.com. Архивировано из первоисточника 6 августа 2012. Проверено 9 октября 2010.
  5. First class functions in many programming languages (examples)
  6. Functions are first class objects in JavaScript



Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Полезное


Смотреть что такое "Объект первого класса" в других словарях:

  • Объект 241 — ИСУ 152 в Музее Великой Отечественной войны, Киев, Украина ИСУ 152 выпуска 1944 года Боевая масса, т 45,5 46,0 …   Википедия

  • объект — 3.14 объект (object): Элемент, который может быть охарактеризован посредством измерения его атрибутов. Источник …   Словарь-справочник терминов нормативно-технической документации

  • Биологический объект — Жизнь  способ бытия сущностей (живых организмов), наделенных внутренней активностью,[1] процесс развития тел органического строения[2] с устойчивым преобладанием процессов синтеза над процессами распада, особое состояние материи, достигаемое за… …   Википедия

  • Перцептрон — Логическая схема перцептрона с тремя выходами Перцептрон, или персептрон[nb 1] (англ. perceptron от …   Википедия

  • Персептрон — Логическая схема перцептрона с тремя выходами Перцептрон, или персептрон[nb 1] (англ. perceptron от лат. perceptio  восприятие; нем. perzeptron)  математическая и компьютерная модель восприятия информации мозгом (кибернетическая модель мозга),… …   Википедия

  • ECMAScript — Класс языка: мультипарадигменный: объектно ориентированное, обобщённое, функциональное, императивное, аспектно ориентированное, событийно ориентированное, прототипное программирование Появился в: 1995 Автор(ы) …   Википедия

  • Отражение (программирование) — У этого термина существуют и другие значения, см. Отражение. Для улучшения этой статьи желательно?: Перевести текст с иностранного языка на русский. Н …   Википедия

  • Парадигма — (Paradigm) Определение парадигмы, история возникновения парадигмы Информация об определении парадигмы, история возникновения парадигмы Содержание Содержание История возникновения Частные случаи (лингвистика) Управленческая парадигма Парадигма… …   Энциклопедия инвестора

  • C++11 — C++11[1][2] или ISO/IEC 14882:2011[3] (в процессе работы над стандартом носил условное наименование C++0x[4][5])  новая версия стандарта языка C++, вместо ранее действовавшего ISO/IEC 14882:2003. Новый стандарт включает дополнения в ядре… …   Википедия

  • Гороховая улица — У этого термина существуют и другие значения, см. Гороховая улица (значения). Гороховая улица Санкт Петербург Общая информация Район города Центральный, Адмиралтейский Полицейская часть Адмиралтейская Казанская, Спасская и Московская части… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»