Teorie typů je jakýkoli formální systém , který je alternativou k naivní teorii množin , doprovázený klasifikací prvků takového systému pomocí typů, které tvoří určitou hierarchii. Teorie typů je také chápána jako studium takových formalismů.
Teorie typů je matematicky formalizovaný základ pro navrhování, analýzu a studium systémů datových typů v teorii programovacích jazyků (sekce informatiky ). Mnoho programátorů používá tento termín k označení jakékoli analytické práce, která studuje typové systémy v programovacích jazycích. Ve vědeckých kruzích je teorie typů nejčastěji chápána jako užší odvětví diskrétní matematiky , zejména λ-počet s typy.
Moderní teorie typu byla zčásti vyvinuta v procesu řešení Russellova paradoxu a je z velké části založena na práci Bertranda Russella a Alfreda Whiteheada „ Principia mathematica “ [1] .
Nauka o typech sahá až k B. Russellovi, podle kterého je jakýkoli typ považován za rozsah významnosti výrokové (výrokové) funkce. Kromě toho se má za to, že každá funkce má svůj typ (svou doménu, rozsah). V doktríně typů je respektována proveditelnost principu nahrazení typu (propozice) definičně ekvivalentním typem (propozice) .
Tato teorie je založena na principu hierarchie. To znamená, že logické pojmy – výroky , individua, výrokové funkce – jsou uspořádány v hierarchii typů. Podstatné je, že libovolná funkce má jako své argumenty pouze ty pojmy, které jí v hierarchii předcházejí.
Určitá teorie typů je obvykle chápána jako aplikovaná logika vyšších řádů, ve které existuje typ N přirozených čísel a ve které jsou splněny axiomy Peanovy aritmetiky . .
Historicky první navrhovanou teorií typů (období od roku 1902 do roku 1913) je rozvětvená teorie typů ( RTT ) , postavená Whiteheadem a Russellem a nakonec formulovaná v základní práci Principia Mathematica . Tato teorie je založena na principu omezení počtu případů, kdy objekty patří k jednomu typu. Osm takových případů je explicitně deklarováno a rozlišují se dvě hierarchie typů: (prostě) "typy" a "objednávky". Přitom samotný zápis „typu“ není definován a existuje řada dalších nepřesností, neboť hlavním záměrem bylo deklarovat nestejné typy funkcí z různého počtu argumentů nebo z argumentů různých typů [2] . Nedílnou součástí teorie je axiom redukovatelnosti .
Ve dvacátých letech minulého století Chwistek a Ramsey navrhli nerozvětvenou teorii typu, nyní známou jako „Simple Type Theory“ nebo Simple Type Theory , která hroutí hierarchii typů, čímž eliminuje potřebu axiomu redukovatelnosti.
Intuicionistic Type Theory ( ITT ) vytvořil Per Martin-Löf .
Teorie systémů čistého typu ( eng. pure type systems , PTS ) zobecňuje všechny výpočty lambda-krychle a formuluje pravidla, která umožňují jejich výpočet jako speciální případy. To bylo nezávisle postaveno Berardi a Terlouw . Systémy čistého typu pracují pouze s konceptem typu, přičemž všechny koncepty ostatních kalkulů uvažují pouze ve formě typů - proto se nazývají " čisté ". Neexistuje žádné oddělení mezi pojmy a typy, mezi různými vrstvami (tj . rody typů se také nazývají typy, pouze související s jiným vesmírem), a dokonce i vrstvy samotné se nazývají nikoli variety , ale typy (přesněji vesmíry typů) . Obecně je systém čistého typu definován pojmem specifikace, pěti pevných pravidel a dvou flexibilních pravidel (která se liší systém od systému). Specifikace čistého typového systému je trojitá (S, A, R), kde jeS množina druhů ( S orts), Aje množina axiomů ( A xiomy) nad těmito druhy a Rje množina pravidel ( Pravidla ). [3] [4] [5]
Vyšší - dimenzionální typové teorie nebo jednoduše vyšší typové teorie ( HTT ) zobecňují tradiční typové teorie , dovolovat netriviální vztahy rovnocennosti mezi typy být založen . Vezmeme-li například množinu dvojic ( karteziánských součinů ) přirozených čísel a množinu funkcí, které vracejí přirozené číslo , pak nelze říci, že prvky těchto množin jsou párově stejné, ale lze říci, že tyto množiny jsou ekvivalent. Izomorfismy mezi typy a jsou studovány ve dvourozměrném, trojrozměrném atd. teorie typu. Celý nezbytný základ pro formulaci těchto teorií položil Girard-Reynolds , ale samotné teorie byly formulovány mnohem později. [6] [7]nat × natnat -> nat
Teorie homotopických typů ( angl. Homotopy type theory , HoTT ) zobecňuje multidimenzionální teorie a zakládá rovnost typů na úrovni topologií . V multidimenzionálních teoriích jsou koncepty „typové ekvivalence“ a „typové rovnosti“ považovány za odlišné. Radikální inovace teorie homotopie je axiom univalence , postulovat to jestliže typy jsou topologically ekvivalentní, pak oni jsou topologically se rovnat.
Cost -Aware Type Theory ( CATT ) , formulovaná v roce 2020 , rozšiřuje funkční typy o nejjednodušší informace o algoritmické složitosti – počtu výpočetních kroků potřebných k získání výsledku – což vám umožňuje ověřit programy nejen z hlediska sémantické správnosti, ale také z hlediska vynucených omezení časové složitosti. [8] To se provádí pomocí konstruktoru typů závislých funkcí . Formalizace teorie vyžaduje mimo jiné zohlednění problému zastavení , pro který pravidla psaní vyžadují, aby rekurzivní volání bylo přísně méně složité než volání s aktuální hodnotou argumentu. CATT umožňuje rozlišovat mezi „abstraktními náklady“ zahrnujícími matematické kroky (jako je rekurzivní volání) a „náklady na stroj“ s přihlédnutím k účinnosti fyzicky implementovaných instrukcí (například, že aritmetické operace součtu a součinu trvají stejnou dobu na většině procesorů). ), a také vzít v úvahu paralelismus . funtime
Slovníky a encyklopedie |
---|