可以先理解这样一个模型:
语言不通的两个人相互交流,需要中间有一个翻译来作为中介。我们说着编程语言,通过编译器,翻译成0和1。
为啥不能直接用自然语言写程序呢?
中文、英文等统称为自然语言,自然语言是人们得以互相交流的媒介,机器能听懂的只有0和1,如果我们中间有一个翻译,可以直接把我们的自然语言完美准确的翻译为0或1,这当然再好不过,但实际上这是不可能的,原因在于自然语言的“不确定性”,这导致我们在将自己的意图转换为自然语言时,这个自然语言很难准确的直接转换成0和1。
这时编程语言就可以站出来解决问题了,我们把对自己的自然语言稍加限制,规定各种需求的写法,在某种程度上限制自然语言的自由程度,让编程语言成为自然语言和01之间的媒介(亦或是意图和01之间的媒介),就可以“在某种程度上准确的”向计算机传达我们的意图。而我们需要做的就是如何把自己的意图,用“编程语言”的方式准确的表达出来。