programmable [adjective] + communication [noun]