Eu tenho apenas um conhecimento limitado do Lisp (tentando aprender um pouco no meu tempo livre), mas até onde eu entendo, as macros do Lisp permitem introduzir novas construções de linguagem e sintaxe, descrevendo-as no próprio Lisp. Isso significa que uma nova construção pode ser adicionada como uma biblioteca, sem alterar o compilador / interpretador Lisp.
Essa abordagem é muito diferente da de outras linguagens de programação. Por exemplo, se eu quisesse estender o Pascal com um novo tipo de loop ou algum idioma específico, teria que estender a sintaxe e a semântica da linguagem e, em seguida, implementar esse novo recurso no compilador.
Existem outras linguagens de programação fora da família Lisp (ou seja, além de Common Lisp, Scheme, Clojure (?), Racket (?), Etc) que oferecem uma possibilidade semelhante de estender a linguagem dentro da própria linguagem?
EDITAR
Por favor, evite discussões prolongadas e seja específico em suas respostas. Em vez de uma longa lista de linguagens de programação que podem ser estendidas de uma maneira ou de outra, gostaria de entender, de um ponto de vista conceitual, o que é específico das macros Lisp como um mecanismo de extensão e quais linguagens de programação não-Lisp oferecem algum conceito isso é perto deles.