Programming languages and computing platforms that typically support reflective programming (reflection) include dynamically typed languages such as Smalltalk, Perl, PHP, Python, VBScript, and JavaScript. Also the .NET languages are supported and the Maude system of rewriting logic. Very rarely there are some non-dynamic or unmanaged languages, notable examples being Delphi, eC, and Objective-C.
Most languages supporting reflection use runtime reflection (such as Java,1 Python,2 etc.), but some use compile time reflection (such as C++).3
- APL
- Befunge
- BlitzMax
- C++3
- ColdFusion MX
- Curl
- D
- Delphi
- eC
- ECMAScript
- Eiffel
- Factor
- Forth
- Go
- Io
- Java (see java.lang.reflect)
- Julia
- Lisp
- Logo
- Pico
- Logtalk
- Lua
- Maude system
- .NET Common Language Runtime
- Oberon
- Object Pascal
- Perl
- PHP
- PL/SQL
- POP-11, Poplog
- Prolog
- Python
- R
- Rebol
- Ruby
- Rust (using third-party libraries)
- Scheme
- Smalltalk
- SuperCollider
- SNOBOL
- Tcl
- Visual FoxPro
- Wolfram Mathematica
- Xojo
References
References
- "Java® Platform, Standard Edition & Java Development Kit Version 21 API Specification". docs.oracle.com. Retrieved 2026-03-30.
- "inspect — Inspect live objects". Python documentation. Retrieved 2026-03-30.
- Katz, Dan; Rezvin, Barry; Dimov, Peter (26 June 2024). "Reflection for C++26". isocpp.org. Retrieved 8 May 2026.