跟着严Sir学编程继续更新。希望严Sir能用20年程序类课程教学经验,帮助更多的伙伴更加容易地学习和理解程序。在相关的文章当中,我更多的是根据自己理解来讲解,并且根据自己教学经验,对于重点和难点问题进行了生活化的处理,这样能让更多的人容易理解,同时也带来了学术表达上的严谨程度不足。欢迎大家阅读、点赞、转发,更欢迎大家批评指正!

这是概念梳理的第08篇文章。

随着信息技术的发展,程序设计这个概念已经深入人心,失去了以前神秘的面纱。随着少儿编程的热浪兴起,似乎是个人都可以编程了。

程序设计,从根本上就是用程序设计工具编写代码指令,然后由计算机进行执行,完成相应功能,获得相应的结果。

有一个问题不知道大家思考过没有:程序语言如何被计算机理解?

如果计算机都不懂代码的意思,它只有乱来了。所以,需要探讨一下这个问题。

01 程序设计语言的发展

程序设计工具就是指程序设计语言,如C语言,VB,JAVA等。

程序设计语言到现在为止,公认经过了三代的发展:

第一代程序设计语言:机器语言。这代程序设计语言的代码全都是二进制表示的,如0101101010101010,估计没有几个能看懂它的意思。所以,冗长,难懂,是它缺点。但是,正是因为它是用二进制表示的,所以机器语言的代码是直接可以被计算机理解和执行的。

第二代程序设计语言:汇编语言。因为机器语言代码人阅读起来很困难,所以人们用助记符来代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。如用助记符ADD来表示加。汇编语言便于记忆和书写,但是因为它与机器硬件有密不可分的联系,所以代码的可移植性很差,而且不能直接从代码上来理解设计意图。

第三代程序设计语言:高级语言。人们越来越强烈地需要可移植性强的程序,而且在逻辑上更符合人的自然语言,于是发明了第三代程序设计语言——高级语言。这类语言有很多,如:BASIC、JAVA、C、C++、python等。高级语言优点是:可移植性强,不依赖机器硬件;符合人的自然语言,容易理解,容易学习。缺点是:程序代码不是二进制代码,不能被计算机直接理解和执行。

02 程序语言如何被计算机理解?

正如前文所讲,现在人们更多地是应用高级语言来进行编程,于是就是涉及到程序语言代码如何被计算机理解的问题。

如,C语言就是高级语言,用它写出的代码,计算机应该如何理解与执行呢?

人们为了解决这个问题,发明了两种方式来解决高级语言被计算机理解的问题:

第一种:解释方式。

举个例子:你到日本去旅游,汉语是高级语言,日本人无法理解,怎么办呢?对,请一个翻译。想一想,翻译是怎么做的呢?是不是你说一句,翻译就把意思解释给日本人听。说一句,解释一句,这种方式就叫解释方式。BASIC语言就是典型的解释型高级语言。

这种方式,有一个明显的问题,就是如果程序要执行多次的话,就需要翻译行多次,所以执行效率相对较低。

第二种:编译方式。

仍然是这个例子:你到日本去旅游,汉语是高级语言,日本人无法理解,怎么办呢?对,请一个翻译。但这个翻译是这样的做的:他找一张纸,找一支笔,然后请你说话,你说一句,他就记一句,等你全部说完,他就将记录了所有内容的纸交给日本人,然后让日本人去读。

发现这没有,这种方式与和第一种方式有明显的不同。这种方式就叫编译方式。C语言就是典型的编译型高级语言。

这种方式会产生一张记录的纸,这个东西我们把它称为中间目标程序,它会占用一定的存储空间,但是只需要翻译一次,以后随便执行,所以执行效率较高。

如:一个C语言源程序f.c,经过编译后,生成目标程序f.obj,它里面就已经被翻译后的文件。

03 总结

程序语言如何被计算机理解?它绝对不是靠猜的。两种翻译方式,其一是解释方式,其二是编译方式。小伙伴们,你们get√到了吗?

语言程序设计 郭有强_「概念篇8」程序语言如何被计算机理解?靠猜?那就搞笑了...相关推荐

  1. 判断质数和合数python代码_「质数和合数」C语言:质数和合数的判断 - 金橙教程网...

    质数和合数 给定一个正整数 n (2 <= n < 10000),判断是否为质数. 多组输入,每行一个 n (2 <= n <= 10000). 对于每一组数,如果是质数则输出 ...

  2. r语言将百分数化为小数_「淮南师出」教师资格/招聘小学数学:《百分数与小数的互化》...

    教学目标: 1.利用已有知识迁移.类推.发现百分数和小数互化的规律和方法. 2.理解.掌握百分数和小数互化的方法,并能熟练运用,进一步体会数学之间的内在联系,增强思维的深刻性. 3.通过合作交流.探索 ...

  3. 求长方形的周长和面积c语言两个函数_「长方形的周长」C语言初级-输入长方形的两边长a和b,求长方形的周长和面积 - 金橙教程网...

    长方形的周长 任务和代码/* *Copyright (c)2018,CSDN学院 *All rights reserved. *文件名称:main.c *作 者:解玉柱 *完成时间:2018年10月3 ...

  4. 圆形界面 开启相机_「基础篇三」手机摄影拍照界面详解

    ​[基础篇三]手机摄影拍照界面详解 手机拍照对我们来说已习以为常,每天我们都会用手机相机功能或多或少的拍出几张照片.故手机拍照界面对我们来说也不陌生,但手机拍照界面上的那些按钮,那些功能你都用过吗?你 ...

  5. c语言程序设计课程总结600字,2019年春季学期《C语言程序设计II》课程总结

    2019年春季学期<C语言程序设计II>课程总结 1.课程情况 2.课程总结 学生的课程总结: 本学期的目标 让课程形成模式,在较为清晰的教学内容的基础上,形成可持续性的教学管理方式,让同 ...

  6. java 画笔跟swing组件_「软帝学院」:2019思维最清晰的java学习路线

    第一步 首先要做好学习前的准备工作:java语言一般用于大型的服务器程序开发,所有有必要了解如下内容:Unix开发环境Unix系统原理.Unix开发环境.Unix常用命令.熟练掌握Unix常用命令:熟 ...

  7. 北京科技大学C语言程序设计,第1章_北京科技大学计算机系:C语言程序设计(李玲)_ppt_大学课件预览_高等教育资讯网...

    第 1章 预备知识北京科技大学 计算机系 C 语言程序设计 2009-7-29 2说明: 本课件的配套教材为: –,C语言程序设计教程> –,C语言程序设计教程习题解答与实验指导> 北京人 ...

  8. python语言程序设计 梁勇 下载_梁勇python语言程序设计

    第 3 章 教学重点 第 2章学习了 8086硬指令 , 第 3章介绍 MASM基本的伪 指令 . 第 3章重点掌握: 程序的格式 . 开发方法 参数的表达 . 变量的定义 变量和标号的属性 第 3 ...

  9. 自考04747《java语言程序设计(一)》课件_自考04747《java语言程序设计(一)》课后习题答案全集...

    <自考04747<java语言程序设计(一)>课后习题答案全集>由会员分享,可在线阅读,更多相关<自考04747<java语言程序设计(一)>课后习题答案全集 ...

最新文章

  1. maven(3)------maven构建web项目详细步骤
  2. ASP.NET Ajax – History Support 續
  3. Android中用Application类实现全局变量
  4. 北斗导航 | 坐标变换矩阵(CTM)与欧拉角(Euler)互相转换:Matlab源代码
  5. small用于不连续数组_Excel公式技巧19: 在方形区域内填充不重复的随机整数
  6. 只显示小方格_不妨谈谈二维方格子吧
  7. vijos 1198 最佳课题选择
  8. 泛型中的模糊继承,解析T的意义
  9. Array Sharpening CodeForces - 1291B(思维)
  10. [转]快速使用FileProvider解决Android7.0文件权限问题
  11. 数据结构之判断一棵树是不是完满二叉树
  12. c语言 回合制小游戏,一个回合制小游戏的设计笔记
  13. 使用 Eclipse 建立包的时候,“name”下可选项“Create package-info.java”的作用是什么?
  14. 【操作系统】同步和互斥
  15. android textview获取背景颜色,Android TextView背景颜色与背景图片设置
  16. linux终端自动输入,linux shell自动输入实现
  17. openstack nova调用libvirt,跟踪libvirt源码实例详解(cpu_mode及live_migrate 错误解决)...
  18. 3D LUT调色预设如何导入并应用?(fcpx/PR/AE/PS/LR/达芬奇)
  19. php中column函数,PHP array_column() 函数用法及示例
  20. 关于安装wordcloud库的那些事

热门文章

  1. pandas数据合并与重塑_PANDAS 数据合并与重塑(concat篇)
  2. MyBatis框架学习笔记03:利用MyBatis实现关联查询
  3. Java案例:读取XML文档
  4. 16软件1班安卓第二学期学习总结
  5. 【BZOJ1003】【codevs1655】物流运输,最短路+DP
  6. mysql 空字符串_NULL与MySQL空字符串的区别
  7. 2017.10.13 轮状病毒 失败总结
  8. 华为服务器高端系列,国产高端服务器 首选款华为RH2485 V2
  9. 网络互连与互联网知识点笔记(五)---路由器技术
  10. 74ls90设计十进制计数器电路图_利用555与74ls90制作电子秒表