Quali tipi di programmazione richiedono una teoria di categoria pratica?

8

La teoria delle categorie ha applicazioni nell'informatica teorica e ovviamente è fondamentale per la matematica astratta. Ho sentito che ha anche applicazioni pratiche dirette nella programmazione e nello sviluppo del software.

Per quale tipo di programmazione è necessaria la teoria delle categorie? Cosa fanno i programmatori per utilizzare la teoria delle categorie?

Si prega di notare il mio uso di "necessario" e "richiedere" in questo post. Mi rendo conto che in un certo senso molti programmatori trarranno beneficio dall'esperienza in diversi tipi di teorie, ma sto cercando applicazioni dirette in cui l'uso della teoria delle categorie è essenziale, cioè se non conoscessi la teoria delle categorie, probabilmente non potresti fallo.

Inoltre, vorrei chiarire che con "che tipo di programmazione" spero di meno per una risposta generica come "programmazione funzionale" e altro per applicazioni specifiche come "scrivere software di banca" o "creare sistemi operativi" ".

    
posta Alexander Gruber 26.04.2014 - 03:25
fonte

2 risposte

2

La domanda è di chiedere un concetto matematico astratto (teoria delle categorie) mentre si spera in una risposta molto pratica (applicazioni specifiche). Con tutto il rispetto, penso che questa sia un'aspettativa non realistica.

I concetti matematici astratti fanno parte dei fondamenti dei linguaggi di programmazione, non delle applicazioni. Ad esempio, tipi di dati sono fondamentali per la programmazione. Ogni lingua ha una qualche forma di tipi di dati e implementa un tipo di sistema - statico o dinamico, strong o debole, esplicito o implicito, ecc. Tuttavia, non esiste uno standard.

Pertanto, molti scienziati informatici hanno tentato di utilizzare la teoria delle categorie per definire un sistema di tipo unificato . Vedi ad esempio Hagino Categorical Programming Language (1987) e Charity (1996), quindi ML (2003) e CAML, e Haskell ovviamente, che definisce una" categoria Haskell " "di tipi e le funzioni di Haskell sono morfismi sui tipi ...

Questo perché la teoria dei tipi è strettamente correlata alla teoria delle categorie . Per citare JL Bell: "Le categorie possono essere viste come teorie del tipo di un certo tipo ... Quindi la teoria del tipo è molto più strettamente correlata alla teoria delle categorie che non alla teoria della teoria ... In parole povere, una categoria può essere pensata come una teoria del tipo priva della sua sintassi. " È stato dimostrato che, ad esempio, le categorie chiuse cartesiane corrispondono a typed λ-calculus e C-monoids corrispondono a untyped λ-calculus ...

Non penso che la teoria delle categorie sia necessaria per qualsiasi tipo di programmazione, ma è uno strumento molto utile nella progettazione e implementazione di linguaggi di programmazione, e . quelli che sono intrinsecamente matematici. Questo è il motivo per cui la programmazione funzionale è spesso citata come una programmazione categoriale e tutti i linguaggi di programmazione sopra menzionati sono linguaggi FP.

Un'introduzione raccomandata all'argomento è " Un assaggio della teoria delle categorie per gli informatici "di BC Pierce (1988). Questa e altre informazioni utili sono state trovate in una discussione simile su mathoverflow .

    
risposta data 04.06.2014 - 19:20
fonte
-2

È come la modalità org per le banche.

Mi rendo conto che è vago ma hai detto che volevi una risposta pratica ..

Le categorie sono tutte basate sulla dualità (o almeno è così che la vedo io) a causa dell'assioma di scelta, quindi personalmente direi che sarebbe un modo sciocco per indurre un sistema di tipi unificato anche se un tipo stesso (un istanza di un tipo) è fondamentalmente una categoria.

I lambda calculi semplicemente digitati non hanno un sistema di tipo assiomatico, motivo per cui si dice che siano la base per la teoria dei tipi. Questo è diverso dai calcoli lambda che usano un sistema di tipo appropriato.

Il calcolo lambda semplicemente digitato è strongmente normalizzato e sebbene i tipi di corrispondenza siano piuttosto noiosi, la logica è corretta.

Anche il calcolo lambda infinito / tipizzato (o puramente dattilografato) non si normalizza correttamente in quanto ha un tipo per tutti i tipi, che è fondamentalmente un sistema di tipo codificato in chiesa.

Le categorie sono ovunque, ma per loro natura sono quasi impossibili da vedere immediatamente.

    
risposta data 28.06.2014 - 07:39
fonte

Leggi altre domande sui tag