中级——002 程序语言基础知识

低级语言和高级语言
低级语言:面向机器的语言,机器语言和汇编语言
高级语言:接近自然语言,Java、C、C++、C#、Python、PHP、JavaScript
编译程序和解释程序
高级程序语言必须进行翻译才能为计算机硬件所理解,语言之间的翻译形式有多种,基本方式为汇编、解释和编译。
用某种高级语言或汇编语言编写的程序称为源程序,源程序不能直接在计算机上执行。如果源程序是用汇编语言写的,则需要一个汇编程序将其翻译成目标程序后才能执行。
如果源程序是用某种高级语言编写的,则需要对于的解释程序或编译程序对其进行翻译,然后在机器上运行。
解释程序也称为解释器,它直接解释执行源程序或将源程序翻译成某种中间代码再执行
编译程序是将源程序翻译成目标语言程序,然后在计算机上运行目标程序。
	区别是编译方式下:机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程
	      解释方式下:解释程序和源程序要参与到程序的运行过程中,运行程序的控制权在解释程序
	总结:解释方式下,翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立保存的目标程序
程序语言的定义
语法,语义、语用
常见程序设计语言
C语言:通用程序设计语言
C++:比C多了封装和抽象,增加类机制使C++称为面向对象的程序设计语言
C#:面向对象,运行于.NET Framework的高级程序语言,相对C++,在很多方面做了限制和增强
Java:保留了C++的基本语法、类和基础等概念,删掉C++一些不好的特征,因此Java相对更简单,语法和语义更合理
PHP:在服务器端执行的、嵌入HTML文档的脚本语言
Python:面向对象的解释型程序设计语言
JavaScript:脚本语言,应用于Web应用开发
程序设计语言的分类
1、命令式程序设计语言
2、面向对象的程序设计语言
3、函数式程序设计语言
4、逻辑型程序设计语言
程序语言的基本成分
1、数据成分:常量、变量、全局变量、局部变量、数据类型(整型、指针、构造类型等)
2、运算成分:算术运算、关系运算、逻辑运算
3、控制成分:顺序结构、选择结构(if语句、switch语句)、循环结构(while、do-while、for)
4、函数:函数定义、函数声明、函数调用
程序语言翻译基础
1、汇编语言:指令语句(机器指令语句,如ADD、SUB)、伪指令语句(汇编时需完成的工作)、宏指令语句(重复使用的程序的引用)
2、汇编程序:将汇编语言所编写的源程序翻译成机器指令程序
编译程序基本原理
1、词法分析:对源程序从前到后,从左到右逐个字符扫描,识别出其中的关键词、标识符、运算符、分隔符等
2、语法分析:根据语言的语法规则将单词符合序列分解成各类语法单位。如表达式、语句、程序等
3、语义分析:分析语法结构的含义,检查源程序是否包含静态语义错误,并收集类型信息供后面代码生成阶段使用
4、中间代码生成:根据语义分析的输出生成中间代码,是一种简单且含义明确的记号系统
5、代码优化:由于编译器将源程序翻译成中间代码的工作是机械的,因此中间代码在时间和空间上效率较差,当需要生成高效的目标代码时,可以在中间代码生成阶段进行。
6、目标代码生成:把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码
7、符号表管理:记录源程序中各符号的必要信息,以辅助语义的正确性检查和代码生成
8、出错处理:编译程序发现错误后,采用适当的策略修复它们

image

解释程序基本原理
1、解释程序的基本结构:分析部分(词法分析、语法分析、语义分析)
2、编译与解释方式的比较
	1、效率:编译比解释方式可能取得更高的效率
	2、灵活性:解释程序需要反复检查源程序,使得解释方式比编译方式更灵活
	3、可移植性:解释器一般也是用某种程序设计语言编写的,因此只要对解释器进行重新编译,就可以使解释器运行在不同的环境中。

image

posted @ 2023-05-01 19:21  快乐小狗呀  阅读(32)  评论(0)    收藏  举报