Programovatelná logika