I termini della logica combinatoria sono sempre più grandi?


9

Quindi esiste un algoritmo per convertire i termini del calcolo lambda in logica combinatoria usando i combinatori SK. Produce cose che esplodono in dimensioni. Vorrei sapere di più su questa esplosione di dimensioni. Tuttavia, non riesco a pensare a un algoritmo migliore. Ho sentito parlare di linguaggi funzionali praticamente compilati per i combinatori, quindi sembra che debba esistere un algoritmo migliore. Ho consultato il documento di David Turner sull'argomento e in pratica dice solo di applicare alcune ottimizzazioni e che causano un "notevole miglioramento".

"Miglioramento considerevole" significa che la dimensione scende solo ad un aumento polinomiale? Esiste un modo noto per convertire i termini lambda in logica combinatoria con solo un aumento polinomiale (o inferiore?)? Se esiste un tale algoritmo, è pratico?


l'articolo è del 1979. c'è molto più moderno / pensiero recente / tecnologia su come tradurre il codice in logica, ad esempio con FPGA e GPU e generalmente non si baserebbe su linguaggi funzionali ....
vzn

Puoi indicarmi loro?
Jake,

la ricerca che citi è una "prova di principio" più teorica ... sarebbe meglio se citi il ​​concetto / la sezione "aumento polinomiale delle dimensioni" che sembra essere al centro della tua domanda ... sei interessato a teoria generale della conversione del codice in logica / circuiti, dal lato teorico o applicato, o teoria di farlo in modo efficiente, o entrambi? la domanda è molto trasversale nei suoi diversi aspetti ... forse può capirne di più nella Computer Science Chat
vzn

1) c'è un modo per importarlo in una chat? Non riesco a capirlo. 2) Non esiste una sezione sull'aumento polinomiale delle dimensioni e questo è il mio problema. In realtà non dice nulla di sostanziale (né posso trovare tali riferimenti) su quanto sia l'aumento delle dimensioni.
Jake,

i commenti possono essere importati per chattare dopo una serie di commenti postati separati. non è necessario per iniziare una chat. Per quanto riguarda l'aumento polinomiale potrebbe essere un concetto di "voci" o "folklore" su questa linea di ricerca, non sono sicuro. ma dove hai sentito cose come "produce cose che esplodono in dimensioni"; sarebbe utile essere più specifici ecc ...
vzn

Risposte:


4

non è un esperto in questo, ma qui ci sono due articoli storici che sembrano essere strettamente pertinenti alla domanda ed è probabilmente un'area di ricerca semi attiva. Turner ha proposto una serie di combinatori che possono essere ridotti a combinatori SK. questo prossimo articolo sostiene che i combinatori di Turner, anche se non ridotti a combinatori SK, portano a esponenziali esponenziali (e che presumibilmente la riduzione ai termini di SK sarebbe ancora maggiore). ma poi il secondo articolo afferma che esiste un algoritmo spaziale O (n log n) efficiente basato sui combinatori di Turner. (sembra forse che siano state fatte affermazioni sull'efficienza polinomiale che sono considerate non completamente dimostrate / non provate e sono quindi considerate congetture ...

  • Che cos'è un'implementazione efficiente del calcolo λ? / Frandsen, Sturtivant (1991) (vedi p.18)

    Inoltre, mostriamo che le implementazioni basate su Turner Combinator o Hughes Super-combinator hanno complessità , cioè un limite inferiore esponenziale. È aperto se esiste qualsiasi implementazione della complessità polinomiale, , sebbene alcune implementazioni abbiano implicitamente affermato di avere questa complessità.2Ω(ν)νO(1)

  • Traduzione di Turner Combinators in O (n log n) space / Noshita (1985)

    Viene presentato un metodo pratico per rappresentare i Combinatori di Turner, che richiede solo O (n log n) spazio nel peggiore dei casi per tradurre espressioni lambda di lunghezza n.


1
Perfetto! Ho trovato questo documento anche dopo aver cercato quei due documenti. sciencedirect.com/science/article/pii/002001908790161X Grazie!
Jake,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.