从本质上看,编程语言是什么?

​"语言并非仅仅是一种用以交流思想的工具,而且是存在的住所。"

编程思维与编程语言是编程中两大重要板块。轻松搭建编程逻辑的关键,在于准确把握它们本质。

编程语言种类有很多,Python、C语言、C++,Java.....当然还有孩子喜欢的Scratch图形化编程语言。这么多编程语言,共通之处在哪里?新手老师,如何快速掌握一门编程语言?孩子学编程语言,关键在于学什么?

一、万变不离其宗,编程语言的实质是什么?

语言是人类最重要的交际工具,是人们沟通的主要表达方式。

人类迄今为止发明了三种标志性的语言,分别是自然语言、数学语言、程序语言,分别对应了人类的三个文明时代:农业与手工业时代、工业时代、信息时代。

每一种符号体系的建立都是人类智慧跨越式的发展,是上了一个大台阶。

相比于人类语言,琳琅满目的编程语言,它们的实质是什么?

实际上,任何一门编程语言至少包含两类内容:     

知识(编程语言的共性,可迁移)

规则(编程语言的特性,不可迁移)

知识是共性,面向所有编程语言通用。

规则是特性,一门编程语言特有的规则。

就像人类语言用于人与人的交流,编程语言能实现人与机器之间的交流沟通,让人类可以享受智能服务的便利与好处。编程语言的实质,在于人机高效沟通的规则。

1)首先,编程是一门语言类技能

通俗的说,语言基本被定义成一种人际沟通的工具,或用于人际沟通的一组符号。而编程语言(Programming Language)可以简单理解为一种计算机和人都能识别的语言。既然能称作做语言,同样也遵循着语言的规律。

我们学习一门语言,最接近本质地学习一门语言时,我们最关心什么?

答案就是这个语言的规范/语言标准。正是这份规范/标准里的内容,让一门语言真正成了一门语言。

人类语言的规则,并没有一开始就被固化在某处,而是会经过一个动态学习的过程,然后最终被固化在人类大脑中。

人类的语言是人与人直接交流用的,经过了几十万年的打磨,可以比较随意地表达,文字顺序乱了我们也能看得懂,因为有文化和语境的帮助。然而,机器为了准确,不能有这样的随意性,必须得有一定的规范。

2)其次,编程语言规范,起源于人机相互驯化

编程语言和人类语言相似的地方,在于都有一定规则:

谁是倾听者、执行者,谁就要理解命令者语言背后隐含的意义;同样的,谁是发号施令者,发起沟通的人,谁就有义务把话说清楚、说明白、保证对方基本能听懂。

横梗在现实的问题是:机器与人类不同。

机器,是人类发明出来的傀儡,胜在“严谨刻板”“唯令是从”,也败在“机械呆板”“不知变通”。

人类不屑于机器唯令是从的特性,机器也没有快速理解人类意图的智慧。

人类的语言充满迂回,不同个性的人沟通时,过于木讷,缺乏共同的文化背景、经历与共识,不敞开天窗说亮话,就有人根本听不出话中话、弦外之音,机器更是如此。

然而,毕竟是我们想让机器代劳,我们就得使尽招数让机器力所能及,就是我们人类先去理解机器的行事风格和思维方式,然后再教会机器全力理解人类的意图与规则。

这就相当于我们想让英国人替我们完成一个任务,我们说英语的效率最高;我们想让计算机完成任务,我们就要去理解计算机的运作方式,然后输入计算机能识别的语言。

编程语言的诞生与演化,其实是人类与机器互相学习、双向驯化的产物,是“让机器听人类”与“还是让人类懂机器”双方博弈的结果。

二、编程语言的演变:编程语言是如何演化的?

编程语言自诞生起,就是在不断的进化升级,进化的方向包括两种:更像机器的语言,还是更像人类的语言。

1)第一阶段:机器语言

第一代计算机语言,称为机器语言。用二进制代码0和1描述的指令称为机器指令。全部指令的集合构成计算机的机器语言。

机器的底层世界只是有电和没电两种状态,分别用1和0表示,这就是二进制的来源。在计算机内部,无论是一部电影还是一首歌曲或是一张图片等等,最终保存的都是0和1组成的代码。

机器语言对于CPU来说十分亲切友好,能够被CPU识别并执行,但是对于设计开发人员却完全相反。毕竟机器语言不是人类擅长使用的语言,它的可阅读性很差。

理解机器语言尚需要时间,更别提用它编写程序。人们很快就设计出来了各种高级语言来编程,但是也带来了新的问题——计算机读不懂我们写的程序。

2)第二阶段:汇编语言

为了辨别和记忆,人类开始使用第二种语言,即将 0/1 代码翻译为英文单词,这些英文单词直接对应着一串 0/1 指令。这个就是汇编语言。

通过专门的软件就可以将这些英文单词转化成 0/1 代码并由计算机执行,这种专门起翻译的作用的软件叫作编译器。

这些英文单词和与它们对应的 0/1 代码之间的对应关系,以及语言的语法,在编写这个软件的时候就已经写在里面了。只需要通过编译器就可以将这些都转化成 0/1 代码,大大方便程序的编写。

3)第三阶段:高级语言

第三代语言又叫“高级语言”,就是我们今天不断进阶的各类编程语言,可阅读性更强,能够方便地表达程序的功能,更好地描述使用的算法,更容易被初学者所掌握。

编程一般用高级语言,计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算机才能运行高级语言所编写的程序。

三、思维vs语言:为什么学习编程能够训练思维?

在农业与手工业时代,人类对上帝的隐喻就是一个农夫;工业时代,上帝被假想为一个伟大的机械工程师;而今天,最精妙的隐喻就是——上帝是一个程序员。当你观察DNA上基因的序列时,你一定觉得那是伟大程序员的作品。

编程语言是一种简洁的、高纯度的、形式化的知识系统。它的类比对象是自然语言、数学语言,是一种思维工具。它的关键作用是塑造一种全新的世界观、思维方式、解决问题的手段,掌握它的人可以发掘出这个世界更深、更广的可能性。

不论是历史中的可编程发明,还是近代的计算机编程语言发展,我们都能从中看出,编程技术的目的是驾驭机器、驾驭计算机,让它们更高效地解决问题。

所以孩子学编程时,要逐步接触、理解、体验编程的逻辑操作、算法、数据结构、工程设计等通用的工程方法与数学知识,这样才符合孩子的学习成长规律。

学生在需要使用新的编程语言时,这些核心知识也能够帮助他们更快融汇贯通。更重要的是,学生可以脱离编程语言,更纯粹地思考如何让计算机解决问题,具有“编程思维”

现在为了竞赛升学,很多家长送孩子去学 C++ 之类的编程语言。在小学阶段就开始学 Python和C++编程语言意义不大。因为孩子的抽象思维和形式逻辑思维发展还不完善,对纯代码难以产生真正的理解,很容易死记硬背。

而语言是死的,而思维是活的。学编程,重要的是掌握编程语言的语言特性,而不是语言本身。毕竟,大多数孩子未来不会靠编程吃饭,学习编程的目的,更偏重于培养编程思维,把编程中的概念和解决问题的方法论,尽可能地应用到学习和生活中去。

写在最后

对于儿童而言,编程语言的学习,可以是无意识的伴随状态,关键在于学习编程语言的规则,也就是规则背后思维的训练!不管是从语言角度,还是从思维角度出发,学编程对孩子最重要的还是掌握编程思维、搭建编程逻辑。打好编程思维基础后,掌握了用搜索引擎查找资料、阅读官方文档、在社区求助的能力之后,孩子日后完全可以自学任何一门编程语言,真正受益!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351