Un limbaj de programare cu mai multe paradigme este un limbaj de programare care a fost dezvoltat special ca un instrument de programare cu mai multe paradigme , adică ale cărui capacități expresive trebuiau inițial să fie moștenite de la mai multe limbaje, cel mai adesea neînrudite, ale diferitelor paradigme .
Într-un sens larg, un limbaj multi-paradigmă poate fi înțeles ca orice limbaj care acceptă mai multe paradigme de programare ; dar o astfel de definiție se dovedește a fi insuficient de exactă datorită faptului că însuși conceptul de paradigmă de programare este definit diferit de autori diferiți. De exemplu, dacă luăm în considerare recursiunea , programarea structurată și atribuțiile ca paradigme de programare , atunci se dovedește că aproape toate limbajele de programare existente sunt potrivite pentru definiția luată în considerare, cu excepția unor cazuri speciale (de exemplu, Haskell language , în care nu există nicio atribuire în forma obișnuită).
Scopul dezvoltării limbajelor de programare cu mai multe paradigme este, în general, de a permite programatorilor să folosească cel mai bun instrument pentru job, recunoscând că nicio paradigmă nu rezolvă toate problemele în cel mai simplu sau mai eficient mod.
Unul dintre exemplele mai ambițioase este Oz , care este un limbaj logic , un limbaj funcțional , un limbaj orientat pe obiecte , un limbaj de programare competitiv (paralel) . Oz a fost dezvoltat pe parcursul a zece ani, scopul său este de a combina concepte care sunt în mod tradițional asociate cu diferite paradigme de programare.
Unul dintre cele mai de succes limbaje de programare multi-paradigma este adesea numit limbajul C++ , care a combinat paradigma generalizată , procedurală și orientată pe obiecte .
Limbile care suportă nativ paradigmele funcționale și orientate pe obiecte sunt Dylan și Scala . Paradigmele funcționale și procedurale combină APL și Rust . Paradigmele funcționale și logice sunt întruchipate în AFL , Curry și Mercury .