Qual è l'origine delle relazioni logiche?


15

In realtà ho due domande:

  1. Chi per primo ha usato le relazioni logiche per mettere in relazione la semantica?

    Li ho fatti risalire a " Sulla relazione tra semantica diretta e di continuazione " di Reynold , ma non posso affermare di aver fatto una ricerca esaustiva.

    Ho trovato riferimenti a relazioni logiche risalenti a prima (Tait, '67), ma non per la semantica relativa.

  2. Qual è la migliore introduzione attuale per le relazioni logiche?

Conosco i " Sistemi di tipi per linguaggi di programmazione " di Mitchell dal Manuale di TCS. Quali altre esposizioni ci sono?


2
C'è un capitolo sulle relazioni logiche nelle basi di Mitchell per i linguaggi di programmazione . Il fondo della prima pagina offre una breve panoramica storica, citando i documenti principali. Potrei scriverli se non riesci a mettere le mani sul libro di Mitchell.
Dave Clarke,

Posso metterci le mani sopra, grazie! Dare un'occhiata quando arrivo in ufficio.
Ohad Kammar,

OK, il libro è molto più elaborato del capitolo del manuale, sebbene copra più o meno lo stesso materiale (meno Sconing, purtroppo). Le note storiche sono quasi identiche, con la notevole eccezione che il libro menziona di seguito il rapporto tecnico di Plotkin NeelK.
Ohad Kammar,

Risposte:


6

Il secondo paragrafo del Memo di Plotkin del 1973 sulla definibilità e le relazioni logiche di Lambda dice questo:

"La definizione di [relazione] logica deriva da una corrispondente di M. Gordon per il calcolo λ tipizzato."

Questo non dice esplicitamente che il termine sia stato coniato da Gordon. Ma, dato che il memo è intitolato "Definibilità lambda e relazioni logiche" come se la "relazione logica" sia un'idea già nota, e il secondo paragrafo dice "costruire certe relazioni logiche cosiddette ", penso che molto probabilmente che Gordon coniò il termine e Plotkin lo usò quindi. (Plotkin mi ha confermato che tutto ciò che ha scritto nel memo è corretto.)

Gordon è nuovamente accreditato nella parte superiore di p. 12,

"M. Gordon ha proposto, come possibile rimedio, che le relazioni ... dovrebbero essere estese - non solo permutazioni."

La versione pubblicata dell'articolo ("Definibilità lambda nella gerarchia di tipo completo" in To HB Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism ) ha questa osservazione. Ha anche un'osservazione che potrebbe essere interpretata come una spiegazione del termine "relazione logica":

A causa della natura "logica" delle elementi -definable, dovrebbero essere invarianti per permutazioni di .λD

A mio avviso, questa è una spiegazione estremamente soddisfacente del perché le relazioni logiche sono "logiche". Il calcolo lambda è logico e, quindi, le funzioni definite usando saranno uniformi rispetto ai tipi di base. Non possono "vedere" le permutazioni che potremmo fare ai valori dei tipi di base. Visto in questo modo, ciò che Gordon e Plotkin intendevano per "logico" è essenzialmente lo stesso di ciò che Reynolds chiama "parametrico".

Tuttavia, il termine "relazione logica" non appare nella versione pubblicata del documento. È possibile che gli arbitri abbiano obiettato che il termine era confuso e che Plotkin avrebbe deciso che era meglio evitare il termine. Ma Statman è tornato alla vecchia terminologia e il termine è tornato al linguaggio popolare.


14

Plotkin usò le relazioni logiche nel suo inedito, ma tuttavia ampiamente diffuso e influente articolo del 1973 "Definibilità e relazioni logiche Lambda". Ho una copia di questa nota sulla mia pagina web.

Pensavo che da qui provenisse il nome, ma quando ho chiesto a Rick Statman di questo, mi ha detto che Mike Gordon ha coniato il termine relazione logica per descrivere il metodo di Tait e che lui e Gordon Plotkin lo hanno raccolto da lui. Penso che sia così che è entrato il gergo del linguaggio di programmazione, anche se puoi assicurarti chiedendo a Plotkin.


1
Sembra quasi un succoso gossip TCS.
Dave Clarke,

5
Non chiedere a Gordon, costringilo a partecipare a questo sito, come ho fatto con Dana.
Andrej Bauer, l'11

1
OK, ho chiesto sia a Gordon Plotkin che a Mike Gordon. Entrambi concordano sul fatto che Gordon Plotkin abbia coniato il termine "relazioni logiche", e ciascuno ha affermato che l'idea di usare le relazioni proveniva dall'altra.
Ohad Kammar,

1
La tesi di Gandy è ora disponibile gratuitamente online: repository.cam.ac.uk/handle/1810/245090
Ohad Kammar

2
@OhadKammar: La "definibilità lambda di Plotkin nella gerarchia del tipo completo" dà credito preciso a Howard affermando che l'idea di usare le relazioni piuttosto che le permutazioni "è stata anche usata da Howard per definire i suoi funzionali ereditarietà [Tro]". La citazione è di un libro, ma l'unico capitolo di Howard è l'appendice, "Funzionalità ereditabili di tipo finito": download.springer.com/static/pdf/314/… (da link.springer.com/book/10.1007 % 2FBFb0066739 ).
Blaisorblade,
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.