A programming technique where programs write or manipulate other programs, including themselves, as data. It allows code to generate, modify, or analyze other code at compile time or runtime.
From Greek 'meta' meaning beyond or about, combined with programming. The concept emerged in the 1950s with LISP's ability to treat code as data, but the term 'metaprogramming' was popularized in the 1980s as languages developed more sophisticated code manipulation capabilities.
Metaprogramming is like teaching a robot to build other robots - instead of just following instructions, the program becomes a programmer itself! This is how Ruby's 'magic' methods work, how C++ templates generate specialized code, and how modern web frameworks can automatically create database interfaces from simple declarations.
Complete word intelligence in one call. Free tier — 50 lookups/day.