Nella pipeline di GHC c'è una fase di traduzione del codice sorgente Haskell in Core e quindi (non necessariamente come passaggio successivo immediato) della conversione di Core in STG. Tuttavia, un problema mi sfugge dalla mia comprensione: quando abbiamo un codice "normale" (cioè come testo normale) e quando qualcosa effettivamente vive nella memoria, come gli alberi sintattici astratti (AST)?Gasdotto GHC: Core, STG - AST o testo?
E per rendere la mia domanda un po 'più precisa, io divido in parti:
1) nella analisi della fase file sorgente Haskell, facciamo a costruire subito AST di linguaggio di base? In caso contrario, mi sembra che dobbiamo costruire AST di Haskell completo (che sembra strano) e poi trasformarli in AST di Core, o in primo luogo nella loro rappresentazione testuale in Core e di nuovo invocare l'analisi per ottenere gli AST di Core.
2) quasi la stessa domanda vale per Core STG di transizione (ma in questo caso credo di poter supporre che ciò che abbiamo è AST Core -? Corretto)
Ora è chiaro, grazie! Oh, e i collegamenti sembrano essere rotti ... – socumbersome
Dai un'occhiata [qui] (https://github.com/ghc/ghc/tree/ghc-7.8/compiler/hsSyn), in particolare [qui] (https: //github.com/ghc/ghc/blob/ghc-7.8/compiler/hsSyn/HsExpr.lhs), quindi [qui] (https://github.com/ghc/ghc/blob/ghc-7.8/compiler/ coreSyn/CoreSyn.lhs) e [qui] (https://github.com/ghc/ghc/blob/ghc-7.8/compiler/stgSyn/StgSyn.lhs). –
Risolti i collegamenti. Questo è quello che ottengo per cercare di produrre collegamenti 'https: // www.haskell.org/ghc /' invece di collegamenti 'https: // downloads.haskell.org/~ ghc /'. –