Об'єкт першого класу
У дизайні мов програмування, а також ще називаються First-class citizen (громадяни першого класу) є сутність, яка може бути побудована в ранта́ймі (під час виконання програми), передається як параметр, повертається з підпрограми , або призначені змінній. Цей термін був придуманий Крістофер Стречі в контексті "функції в якості громадян першого сорту" в середині 1960-х років.
Визначення [ред.]
Об'єкти являються об'єктом першого класу коли:
- можуть бути збережені в змінних і структур даних
- можуть бути переданий в якості параметра в підпрограму
- можуть бути повернуті в результаті роботи підпрограми
- можуть бути побудовані під час виконання
- мають внутрішню ідентичність (незалежно від будь-якого ім'я)
Приклади [ред.]
Слово об'єкт вживається тут не в сенсі ООП. Так наприклад скалярні об'єкти такі як цілі та з плаваючою точкою майже в усіх мовах являються об'єктами першого класу. В С та С++ функція не являється об'єктом першого класу, тому що не може бути створена рантайм.
Об'єкти другого та третього класу [ред.]
Рафаель Фінкель пропонує визначення об'єктів другого та третього класу. Але його визначення об'єкту першого класу протилежне до визначень інших авторів : він не вимагає можливаості створення рантайм
| Manipulation | First | Second | Third |
|---|---|---|---|
| Pass value as a parameter | yes | yes | no |
| Return value from a procedure | yes | no | no |
| Assign value into a variable | yes | no | no |
