Jump to content

Ограниченная количественная оценка

В типов теории ограниченная квантификация (также ограниченный полиморфизм или ограниченная универсальность ) относится к универсальным или экзистенциальным кванторам , которые ограничены («ограничены») диапазоном только подтипов определенного типа. Ограниченная количественная оценка — это взаимодействие параметрического полиморфизма с подтипированием . Ограниченная количественная оценка традиционно изучалась в функциональной настройке System F <: , но доступна в современных объектно-ориентированных языках, поддерживающих параметрический полиморфизм ( дженерики ), таких как Java , C# и Scala .

Цель ограниченной количественной оценки — позволить полиморфным функциям зависеть от некоторого конкретного поведения объектов вместо наследования типов . Он предполагает модель на основе записей для классов объектов, где каждый член класса является элементом записи, а все члены класса являются именованными функциями. Атрибуты объекта представлены как функции, которые не принимают аргументов и возвращают объект. Конкретное поведение — это имя некоторой функции вместе с типами аргументов и типом возвращаемого значения. Ограниченная количественная оценка рассматривает все объекты с такой функцией. Примером может служить полиморфный min функция, которая рассматривает все объекты, сравнимые друг с другом. [ нужна ссылка ]

F-ограниченная количественная оценка

[ редактировать ]

F -ограниченная количественная оценка или рекурсивно ограниченная количественная оценка , представленная в 1989 году, позволяет более точно типизировать функции, которые применяются к рекурсивным типам. Рекурсивный тип — это тип, который включает функцию, которая использует его в качестве типа для некоторого аргумента или его возвращаемого значения. [1]

Ограничение типа такого рода может быть выражено в Java с помощью универсального интерфейса. В следующем примере показано, как описывать типы, которые можно сравнивать друг с другом, и использовать их в качестве информации о типизации в полиморфных функциях . Test.min Функция использует простую ограниченную количественную оценку и не обеспечивает взаимное сравнение объектов, в отличие от функции Test.fMin функция, которая использует F-ограниченную количественную оценку.

В математической записи типы двух функций таковы:

мин: ∀ T, ∀ S ⊆ {compareTo: T → int}. С → С → С
fMin: ∀ T ⊆ Comparable[T]. Т → Т → Т

где

Comparable[T] = {compareTo: T → int}
interface Comparable<T> {

    int compareTo(T other);

}

public class Integer implements Comparable<Integer> {

    @Override
    public int compareTo(Integer other) {
        // ...
    }
}

public class String implements Comparable<String> {

    @Override
    public int compareTo(String other) {
        // ...
    }

}

public class Test {
    
    public static void main(String[] args) {
        final String a = min("cat", "dog");
        final Integer b = min(10, 3);
        final Comparable c = min("cat", 3); // Throws ClassCastException at runtime
        final String str = fMin("cat", "dog");
        final Integer i = fMin(10, 3);
        // final Object o = fMin("cat", 3); // Does not compile
    }
    
    public static <S extends Comparable> S min(S a, S b) {
        if (a.compareTo(b) <= 0) {
            return a;
        } else {
            return b;
        }
    }
    
    public static <T extends Comparable<T>> T fMin(T a, T b) {
        if (a.compareTo(b) <= 0) {
            return a;
        } else {
            return b;
        }
    }

}

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ F -ограниченный полиморфизм для объектно-ориентированного программирования. Каннинг, Кук , Хилл, Олтхоф и Митчелл . http://dl.acm.org/citation.cfm?id=99392
  • Карделли, Лука ; Вегнер, Питер (декабрь 1985 г.). «О понимании типов, абстракции данных и полиморфизме» (PDF) . Обзоры вычислительной техники ACM . 17 (4): 471–523. CiteSeerX   10.1.1.117.695 . дои : 10.1145/6041.6042 . ISSN   0360-0300 . S2CID   2921816 .
  • Питер С. Каннинг , Уильям Р. Кук , Уолтер Л. Хилл , Джон К. Митчелл и Уильям Олтхофф . «F-ограниченный полиморфизм для объектно-ориентированного программирования» . На конференции по функциональным языкам программирования и компьютерной архитектуре , 1989 г.
  • Бенджамин К. Пирс «Типы пересечений и ограниченный полиморфизм». Конспект лекций по информатике 664 , 1993.
  • Гилад Брача , Мартин Одерски , Дэвид Стаутамир и Филип Уодлер . «Сделаем будущее безопасным для прошлого: добавление универсальности к языку программирования Java». В объектно-ориентированном программировании: системы, языки, приложения (OOPSLA). АКМ, октябрь 1998 г.
  • Эндрю Кеннеди и Дон Сайм . «Проектирование и реализация универсальных шаблонов для общеязыковой среды выполнения .NET». В «Проектировании и реализации языков программирования» , 2001 г.
  • Пирс, Бенджамин К. (2002). Типы и языки программирования . МТИ Пресс. ISBN  978-0-262-16209-8 . , Глава 26: Ограниченная количественная оценка
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 275b086e55c0a6ec735487fa9ecde9a0__1694536920
URL1:https://arc.ask3.ru/arc/aa/27/a0/275b086e55c0a6ec735487fa9ecde9a0.html
Заголовок, (Title) документа по адресу, URL1:
Bounded quantification - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)