Mi piacciono le lingue che mi danno la possibilità di estendere la sintassi della lingua. Allo stesso tempo, tutte le lingue che conosco mi permetteranno di estendere la sintassi dei sistemi di tipo relativamente pesanti. Esistono linguaggi più leggeri che consentono lo stesso tipo di estensibilità della sintassi? Oppure la sintassi flessibile richiede la possibilità di definire nuovi tipi di dati (e operazioni su questi tipi)?
Fondamentalmente, voglio la flessibilità sintattica di Haskell senza il sistema di tipi di Haskell. C'è un modo per ottenere questo, o quella flessibilità sintattica richiede l'assistenza di un sistema di tipi?
Esempi di lingue in cui so che il sistema di tipi può essere usato per creare nuova sintassi sono Haskell, C ++ e Python.
Possibili esempi di dove la sintassi potrebbe essere modificata senza un sistema di tipo strong forse Schema , Avanti e Common Lisp .
Tuttavia, mentre posso vedere come sovraccaricare gli operatori nel primo elenco per generare nuovi costrutti sintattici, non so abbastanza per sapere come farlo nel secondo elenco. Forse la risposta è per me di andare a leggere su macro in Common Lisp.
Quello che vorrei è un linguaggio con la semplicità concettuale di C, Lua o Erlang , ma con la possibilità di creare operatori sintattici aggiuntivi come desiderato.
TLDR - riepilogo di base della domanda:
È possibile che un linguaggio debolmente tipizzato supporti l'estensione della sintassi, oppure la capacità di estendere la sintassi di una lingua (all'interno della stessa lingua) richiede un sistema di tipi da implementare?