Qual è l'equivalente del progetto The Little Lisper in Haskell?

3

Nel libro The Little Lisper , si implementa uno schema minimo in 10 capitoli in grado di interpretare qualsiasi capitolo nel libro.

Per me sembra che tu possa fare lo stesso per un "sottoinsieme minimo di un linguaggio tipizzato" come auto-bootstrap. Sto cercando di capire cosa è fattibile.

Per me le opzioni sono:

  • Calcolo Lambda semplicemente tipizzato
  • Sistema F
  • Miranda
  • sottoinsieme Haskell

Ipotesi:

  • Si noti che sto ignorando gli elementi di runtime di GHC come interprete grafico senza tag senza colonne

La mia domanda è: Qual è l'equivalente del progetto Little Lisper in Haskell?

    
posta hawkeye 19.01.2016 - 06:51
fonte

2 risposte

3

C'è un utile tutorial di Oleg Kiselyov e Chung-chieh Shan , in cui costruiscono un implementazione molto semplice del calcolo lambda semplicemente tipizzato con inferenza di tipo Hindley-Milner. Gli IIRC non scrivono un parser per la loro lingua (si scrivono gli alberi di analisi in Haskell per usarlo), ma questa sarebbe chiaramente un'aggiunta molto semplice che potrebbe essere basata su un tipico tutorial di parsec.

    
risposta data 19.01.2016 - 10:04
fonte
1

C'è un articolo "Digitare Haskell con Haskell *". Presenta la parte più problematica della domanda - rendendo il type checker / inferrer per la lingua Haskell (incluso il codice). Per quanto ne so, questo rende il linguaggio polimorfico a 1 rango.

Per 2 + -rank poly potresti usare google per "Tipi di Boxy" (tuttavia, non c'è codice come in THIH, ma solo matematica di tipo infernale in forma di "modus ponens").

    
risposta data 19.01.2016 - 17:23
fonte

Leggi altre domande sui tag