MLisp
- „MLisp” to także inna nazwa Mocklisp , okrojonej wersji Lispa używanej jako język rozszerzeń w Gosling Emacs .
MLISP to wariant Lispa ze składnią podobną do Algola , opartą na wyrażeniach M , które były składnią funkcji w oryginalnym opisie Lispa autorstwa Johna McCarthy'ego . M-wyrażenia McCarthy'ego nigdy nie zostały zaimplementowane w dokładnej formie.
MLISP został po raz pierwszy zaimplementowany dla IBM 360 przez Horace'a Eneę, a następnie ponownie zaimplementowany dla PDP 10 przez Davida Canfielda Smitha. Ta druga implementacja obsługiwała również specjalny rodzaj wyrażeń lambda („ FEXPR ”), które nie oceniają swoich argumentów. Podobnie jak w Lisp-1 lub Scheme , istniała jedna przestrzeń nazw dla zmiennych i funkcji.
Podczas gdy MLISP był tylko preprocesorem z alternatywną, bardziej przyjazną dla czytelnika składnią dla Lispa, potomek MLISP 2 wprowadził nowe koncepcje:
- interaktywna interpretacja programów zamiast kompilacji
- rozszerzalność o język opisu składni (patrz makra higieniczne )
- dopasowanie wzorca
- cofanie się za pomocą zamknięć na stosie i indeksów dla kontynuacji
MLISP2 został nazwany przez autorów językiem przejściowym. Larry Tesler udoskonalił system dopasowywania wzorców, aby zaimplementować następcę języka o nazwie LISP70 , który został ukończony tylko do wersji wstępnej. Chociaż ta ścieżka ewolucji LISP-a jest powszechnie zaniedbywana, przypomina pewne cechy znalezione później w ML lub Scheme.
M-LISP (MetaLISP) autorstwa Roberta Mullera to niepowiązany język z lat 1989–1992. To była „hybryda M-expression LISP i Scheme ”.
Zobacz też
Było wiele implementacji Lispów z notacją infiksową oraz języków podobnych do Lispa lub wywodzących się z Lispa. Niektóre godne uwagi przykłady obejmują: