Ho solo una conoscenza limitata di Lisp (cerco di imparare un po 'nel mio tempo libero) ma per quanto ne so io le macro Lisp permettono di introdurre costrutti e sintassi di un nuovo linguaggio descrivendoli in Lisp stesso. Ciò significa che un nuovo costrutto può essere aggiunto come una libreria, senza modificare il compilatore / interprete Lisp.
Questo approccio è molto diverso da quello di altri linguaggi di programmazione. Ad esempio, se volessi estendere Pascal con un nuovo tipo di loop o qualche particolare idioma, dovrei estendere la sintassi e la semantica del linguaggio e quindi implementare quella nuova funzionalità nel compilatore.
Esistono altri linguaggi di programmazione al di fuori della famiglia Lisp (ad eccezione di Common Lisp, Scheme, Clojure (?), Racket (?), ecc.) che offrono una possibilità simile di estendere la lingua all'interno della lingua stessa?
Modifica
Per favore, evita discussioni estese ed essere specifico nelle tue risposte. Invece di una lunga lista di linguaggi di programmazione che possono essere estesi in un modo o nell'altro, mi piacerebbe capire da un punto di vista concettuale cosa è specifico delle macro Lisp come meccanismo di estensione e quali linguaggi di programmazione non-Lisp offrono alcuni concetti è vicino a loro.