当前位置: 首页 > news >正文

程序员与编译器

1、编程工作的演进史

(1)CPU需要的只是1和0组成的二进制数据。

  • 不管编程怎么变,最终编程得到的可执行二进制程序都是给CPU运行的。CPU需要的只是按照二进制1和0组成的数字(机器码)执行,CPU根本不关心这些二进制是怎么来的。
  • 这些二进制可能是一个很厉害的程序员直接用1和0拼出来的;也可以是用汇编语言、C语言或java语言编写程序然后编译得到的;
  • 编程工作的演进其实一直是在处理的:就是使用何种语言编写程序,然后如何把这种程序源代码转成二进制(编译器的发明)。
  • CPU接收到一串01组成的序列后,如何达到工作目的是设计制造CPU的公司要考虑的事情,与软件工程师完全无关。

(2)早期的纸卡打孔编程者

  • 最早期的时候,CPU也很简单,指令集很少,二进制位数也不多。那时候编译器也没被发明,编程语言也没被发明,那时候就是用二进制直接编程的。

(3)编程工作的第一次革命:由二进制机器码到汇编语言。

  • 汇编语言的本质就是用一个符号来代替一串二进制。
  • 用汇编语言编写的源程序不能直接给CPU运行,必须通过一个翻译过程,把源代码翻译成二进制序列才能给CPU。这个翻译的过程就叫汇编,执行翻译动作的就是汇编器。

(4)编程工作的第二次革命:由汇编语言到C语言。

  • 汇编语言有一些不尽如人意的地方,譬如:没有可移植性。在这个CPU上写的汇编程序无法直接在另一个CPU上运行。因此汇编语言是和CPU一一对应的。
  • 为了可移植性于是乎发明了高级语言,第一个高级语言就是C语言。C语言进一步靠近人的思维,以人的思维发明了很多CPU没有的东西,譬如数组,最终的目的就是降低编程难度。
  • C语言编写的程序通过编译器、汇编器等的翻译后变成二进制然后给CPU运行。

(5)在C语言之上还有更高级语言,譬如:C++、Java、C#、bash等。越往上越靠近人的思维,越往上语言本身提供的封装越多,越往上编程难度越低、语言的掌握越容易。

2、程序员、编译器、CPU之间的关联

(1)CPU只认识二进制机器指令。

(2)人类的大脑本身不喜欢二进制而喜欢符号、文字,人类和机器之间天生有代沟,于是乎编程不容易。

(3)连接人(程序员)与机器(CPU)的桥梁:编译器

  • 编译器降低了编程难度。每一种编程语言都有对应的编译器,这个编译器的作用就是把这种语言的源文件编译成可执行程序。
  • 有了高级语言之后,我们程序员就不再关注二进制,而是编程语言的语法。
  • 发明一门语言关键就在于发明它的编译器,yacc和lex工具就是用来发明编程语言的。

(4)高级语言与低级语言的差别:越高级的语言越靠近人类思维;越低级的语言越靠近机器的需要。

(5)像编译器一样思考,编程语言的语法就是编译器的习性。

    http://www.dtcms.com/a/503785.html

    相关文章:

  • 含山县查询建设工程的网站v9做的网站被攻击链接吧跳转
  • 建盏公司官方网站厦门外贸商城网站建设
  • 多模态RAG进阶:基于GPT-4V+LangGraph的下一代智能体系统完全指南
  • 自己在电脑上建文档做网站怎么做宝塔面板 wordpress制作网页
  • Docker核心揭秘:轻量级虚拟化的革命
  • 网站首页新世纪建设集团有限公司安阳贴吧论坛
  • 网站不备案可以做百度竞价吗做网站过程视频
  • 计算机网络5
  • 【论文笔记】李飞飞 世界模型RTFM
  • 微信小程序开发哪个好优化关键词排名工具
  • Text2SQL与工作流实现:让数据库查询变得轻松又高效
  • 【Android】浅析 Android 的 IPC 跨进程通信机制
  • C#11--14新特性
  • 力扣热题100道之最大子数之和
  • 手机网站开发c 教程一嗨租车网站建设的功能特色
  • 购物网站 app网站建设时应该做的优化
  • 深圳网站建设raygf2022年免费ppt模板下载
  • 【Python】二.判断语句
  • 【数据集】最新全国景区A-5A级景区数据集(更新至2025年)-含矢量及Excel详细
  • Linux线程 --- 线程控制、pthread线程库、线程栈、线程本地存储
  • C++:从0开始学习链表(练习)
  • JAVA的Set集合类
  • linux系统中进程控制
  • 网站域名注册证书是什么视频拍摄设备
  • 下载 LibreCAD 并创建个人分支的 Git 操作指南
  • 石家庄大型网站建站网站开发能从事那些职业
  • JavaScript性能优化实战大纲性能优化的核心目标
  • 【Android】布局优化:include、merge、ViewStub的使用及注意事项
  • PHP 桌面端框架NativePHP for Desktop v2 发布!
  • 第7章 muduo编程示例(2)