- 语言分类
- 低级语言 面向机器的语言,包括机器语言,汇编语言
- 高级语言 接近自然语言和数学语言的计算机语言
高级语言首先要书写源程序,通过编译程序把源程序转换成机器指令的程序
1954那年正式发布的fortran余元是最早的高级语言,本意是公式翻译
编译语言:把源代码转换成目标机器的CPU指令
解释语言:解释后转换成字节码(中间代码),运行在虚拟机上,解释器执行中间代码
高级语言的发展:
- 非结构化的语言 编号或者标签,GOTO,子程序有多个入口和出口
- 结构化语言 任何基本结构只允许有一个入口和出口 顺序、分支、循环、废弃GOTO
- 面向对象的语言 更加接近人类认知世界的方式,无视万物抽象成对象,对象之间的关系抽象成类和继承(封装 继承 多态)
- 函数式语言 应用在数学和并行处理的场景。
程序
- 程序=算法+数据结构
- 数据是一切程序的核心
- 数据结构是数据在在计算机中的类型和组织方式
- 算法是处理数据的方式,算法有优劣之分
写程序的难点
- 理不清数据
- 搞不清楚方法
- 无法把数据设计转换成数据结构,无法把处理方法转换成算法
- 无法用设计范式来进行程序设计
- 世间程序皆有BUG,但不会DEBUG
Python解释器
- 官方Cpython C语言开发,最广泛的编译器
- Ipython 一个交互式的,功能增强的Cpython
- PyPy Python编写的解释器,JIT技术,动态编译Python代码
- Jpython Python代码编译成java字节码,跑在JVM
- IronPython 运行在.net 平台的解释器,代码编译成.net字节码