Кіріспе
Логика мен компьютерлік ғылымдағы әмбебап тип. Математикалық логика мен компьютерлік ғылымда кейбір типтік теориялар мен типтік жүйелерде әдетте "top" немесе ⊤ символымен белгіленетін жоғарғы тип кездеседі. Бұл жоғарғы типті кейде әмбебап тип немесе әмбебап супертип деп те атайды, себебі қызығушылық тудыратын типтік жүйенің барлық басқа типтері оның кіші типтері болып табылады, ал көп жағдайда ол типтік жүйенің барлық мүмкін объектілерін қамтиды. Бұл төменгі типтен немесе әмбебап субтиптен өзгеше, себебі барлық басқа типтер оның супертипі болып табылады және көбінесе бұл типте мүшелер болмайды.
In mathematical logic and computer science, some type theories and type systems include a top type that is commonly denoted with top or the symbol ⊤. The top type is sometimes called also universal type, or universal supertype as all other types in the type system of interest are subtypes of it, and in most cases, it contains every possible object of the type system. It is in contrast with the bottom type, or the universal subtype, which every other type is supertype of and it is often that the type contains no members at all.
Басқа тілдер
Объектіге бағытталмаған тілдерде әдетте жалпы супертип немесе субтип полиморфизміне қолдау болмайды. Хаскеллде мақсатты түрде субтипі болмаса да, оның басқа полиморфизм түрлері бар, соның ішінде параметрлік полиморфизм. Ең жалпы типтік класс параметрі – шектелмеген параметр a (типтік кластың шектеусіз). Rust-та <T: ?Sized> ең жалпы параметр болып табылады (<T> емес, өйткені ол әдепкі бойынша Sized қасиетін білдіреді). Жоғарғы тип жалпы тип ретінде қолданылады, әсіресе параметрлік полиморфизмі жоқ тілдерде. Мысалы, Java 5-те generics енгізілгенге дейін Java кітапханасындағы жинақ кластары (Java массивтерін қоспағанда) Object типіндегі сілтемелерді сақтады. Осылайша, кез келген ішкі типті жинаққа қоюға болады. Жоғарғы тип белгісіз типтегі объектілерді сақтау үшін де жиі қолданылады. Жоғарғы тип статикалық типтеуі жоқ тілдердің жасырын түрі ретінде де қарастырылуы мүмкін. Орындау кезінде типтеуді қолдайтын тілдер көбінесе орындау кезінде объект үшін нақты типті анықтауға мүмкіндік беру үшін төмендетуді (немесе типті нақтылауды) қамтамасыз етеді. C++ тілінде void *-тан қауіпсіз түрде төмендету мүмкін емес, мұнда сәтсіз төмендетулер тілдің орындалу кезінде анықталады. Құрылымдық типтік жүйесі бар тілдерде бос құрылым жоғарғы тип ретінде қызмет етеді. Мысалы, OCaml-дегі объектілер құрылымдық түрде типтеледі; бос объекті типі (әдістері жоқ объектілердің типі), < >, объекті типтерінің жоғарғы типі болып табылады. Кез келген OCaml объектісі осы типке нақты түрде көтерілуі мүмкін, бірақ нәтиже пайдасыз болады. Go да құрылымдық типтеуді қолданады; және барлық типтер бос интерфейсті іске асырады: interface {}, оның әдістері жоқ, бірақ оны одан әрі нақты типке қайтаруға болады.
Логикалық тұрғыдан
Жоғарғы ұғым ұйғарымдық есептеуде де кездеседі, бұл кез келген мүмкін түсіндіруде дұрыс болатын формулаға сәйкес келеді. Предикаттар есептеуінде де осыған ұқсас мағынасы бар. Сипаттамалық логикада жоғарғы – барлық ұғымдар жиынына сілтеме жасайды. Бұл бағдарламалау тілдеріндегі жоғарғы типтің қолданылуымен интуитивті түрде үйлеседі. Мысалы, әртүрлі сипаттамалық логикаларды қолдайтын Веб-онтология тілінде (OWL), жоғарғы – owl:Thing класына сәйкес келеді, барлық кластар owl:Thing класының субкластары болып табылады. (Төменгі тип немесе бос жиын owl:Nothing класына сәйкес келеді).