bondage-and-discipline language

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.