bondage-and-discipline language
n.
A language (such as Pascal, Ada, APL, or Prolog) that, though ostensibly general-purpose, is designed so as to enforce an author's theory of ‘right programming’ even though said theory is demonstrably inadequate for systems hacking or even vanilla general-purpose programming. Often abbreviated ‘B&D’; thus, one may speak of things "having the B&D nature". See Pascal; oppose languages of choice.