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, Python, etc.), but some use compile time reflection (such as C++).
APL Befunge BlitzMax C++ ColdFusion MX Curl D Delphi eC ECMAScript ActionScript JavaScript JScript Eiffel Factor Forth Go Io Java (see java.lang.reflect) Java virtual machine Julia Lisp Logo Pico Logtalk Lua Maude system .NET Common Language Runtime C# F# Visual Basic (.NET) Delphi (.NET) Windows PowerShell Oberon Object Pascal Perl PHP PL/SQL POP-11, Poplog Prolog Python R Rebol Ruby Rust (using third-party libraries) Scheme Smalltalk Pharo Bistro Squeak Self SuperCollider SNOBOL Tcl XOTcl Visual FoxPro Wolfram Mathematica Wolfram Language Xojo
References