Programovací jazyky s omezujícími podmínkami