编译器设计中编程语言的属性是什么?