Парадигма: рефлексивная
Рефлексивное программирование — это разновидность метапрограммирования, предусматривающая написание программ, которые могут изменять свое собственное поведение.
Возможность обработки инструкций так же, как и данных, является одним из ключевых моментов архитектуры фон Неймана; разница между ними проявляется только в том, как именно их обрабатывает компилятор. В большинстве языков инструкции выполняются, а данные обрабатываются. Рефлексивное программирование позволяет обработку инструкций перед их выполнением. Таким образом, последовательность инструкций, подлежащих выполнению, может быть сформирована в процессе выполнения на основании входных данных и другой информации, доступной только на этом этапе.
- Befunge
- Dylan
- Lisp (диалекты: Clojure, Common Lisp, Lisp Machine Lisp, Scheme)
- Logo
- Lua
- Objective-C
- Perl
- POP-11
- PowerShell
-
Prolog
(диалекты:
Edinburgh Prolog,
ISO Prolog,
Strawberry Prolog)
- Arity Prolog
- Arity/Prolog32
-
B-Prolog
- B-Prolog 1.0
- B-Prolog 1.2
- B-Prolog 1.5
- B-Prolog 1.6
- B-Prolog 2.0
- B-Prolog 2.1
- B-Prolog 3.0
- B-Prolog 3.1
- B-Prolog 3.2
- B-Prolog 4.0
- B-Prolog 5.0
- B-Prolog 5.0-a
- B-Prolog 5.0-b
- B-Prolog 6.0
- B-Prolog 6.0 beta
- B-Prolog 6.1
- B-Prolog 6.2
- B-Prolog 6.4
- B-Prolog 6.5
- B-Prolog 6.6
- B-Prolog 6.7
- B-Prolog 6.7-1
- B-Prolog 6.7-3
- B-Prolog 6.8
- B-Prolog 6.9
- B-Prolog 7.0
- B-Prolog 7.1beta4
- B-Prolog 7.4-3
- B-Prolog 8.0
- BinProlog
- Brain Aid Prolog
- Ciao Prolog
- CxProlog
- ECLiPSe CLP
- EZY Prolog
- GNU Prolog
- IF/Prolog
- JIProlog
- K-Prolog
- MINERVA
- Open Prolog
- PDC/Turbo Prolog
- Poplog (Prolog)
- Qu-Prolog
- SICStus Prolog
- SWI-Prolog
- Trinc-Prolog
- Visual Prolog
- YAP
- R