计算机理论:程序设计语言基础知识


在这里插入图片描述

1. 基本概念

1、低级语言(机器指令、汇编语言)、高级语言(C,C++,Java,Pthon等)
2、源程序、编译程序、解释程序(是否产生独立的目标程序)
3、程序设计语言定义:语法(词法规则,单词符号书写规则、语法规则,语法成分规则)、语义(静态语义,编译时确定,动态语义,运行时确定)、语用。
4、程序设计范型:命令式程序设计语言(基于动作,过程式语言)、面向对象程序设计语言(封装、继承、多态)、函数式程序设计语言(程序与数据等价、多递归)、逻辑式程序设计语言(以形式逻辑为基础)

2. 基本成分

1、程序设计语言基本成分:数据、运算、控制、传输

2.1 数据成分

1、数据:程序操作对象。属性:类型、名称、作用域、存储类别、生存期
2、常量和变量、全局量和局部量、数据类型(基本类型用户定义类型、构造类型、指针类型、特殊类型、抽象数据类型)

2.2 运算成分

1、运算成分:允许使用的运算符号及运算规则

2.3 控制成分

1、控制结构:顺序结构、选择结构、循环结构。控制语句:符合语句、if和switch语句、循环语句

2.4 函数

1、函数定义(函数首部、函数体)、函数声明、函数调用(传值调用,引用调用)

3. 语言处理程序基础

1、语言处理程序:将高级语言或汇编语言编写的源程序翻译成某种机器语言程序
2、基本分类:汇编语言、编译语言、解释语言

3.1 汇编语言基础

1、汇编语言:为特定计算机设计的面向机器的符号化程序设计语言。功能:将汇编语言编写的源程序翻译成机器指令程序。工作:将每条可执行汇编语句转换成对应的机器指令,处理源程序中出现的伪指令和宏指令。
2、程序语句分类:指令语句、伪指令语句、宏指令语句
3、汇编程序需扫描2次源程序:第1次定义符号的值并创建符号表ST,第2次产生目标程序。

3.2 编译程序基础

1、编译程序功能:将用某高级语言所写源程序翻译成等价的目标程序。
2、编译器工作阶段:词法分析(对源程序从前到后(从左到右)逐个字符扫描,识别出单词符号)、语法分析(将单词符号序列分解成各类语法单位,如表达式、语句程序等)、语义分析(分析程序中各种语法结构的语义信息,类型分析和检查)、中间代码生成(四元式)、代码优化(等价交换)、目标代码生成(将中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码)
3、出错处理:动态错误(程序运行时发生)、静态错误(程序编译时发生,语法错误、静态语义错误)
4、编译阶段:前端(从词法分析到中间代码生成各阶段工作)、后端(从中间代码优化到目标代码优化阶段工作)
词法分析
1、字母表、字符串运算、正规表达式及正规集
2、确定的有限状态机DFA,不确定的有限状态机NFA,状态转移图,状态转换矩阵
语法分析
1、程序设计语言语法:上下文无关文法描述

3.3 解释程序基础

1、解释程序词法分析、语法分析、语义分析与编译程序相同,但在运行用户程序时,它直接执行源程序或源代码的内部程序。
2、主要区别:解释程序不产生源代码的目标程序
3、以解释程序实现高级语言上3种方式:对源程序逐个检查字符,执行程序语句规定动作;先将源程序翻译成某中间代码,在解释中间代码实现用户程序运行;
4、解释程序基本结构:分析部分(词法分析、语法分析、语义分析、中间代码生成逆波兰表达形式)、解释部分(解释执行中间代码)
5、解释程序与编译程序比较:编译可能效率更高、解释程序更灵活、解释程序移植性更高。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统地讲述c语言基础知识、基本语法以及编程方法,并且结合c阐述面向对象的程序设计思想,使读者在掌握c语言语法知识的同时,能够解决现实生活中较简单的问题,并用计算机语言进行描述。本书每一章中都用大量实用性较强的例题阐述基本知识点,同时在每章的最后都提供一个有一定难度且趣味性较强的综合实例,将本章中多个知识点有机地结合起来,力求读者能把理论与实践紧密结合,体会解决实际问题的过程。全书内容精练,重点突出,从实例出发提出概念,突出应用,趣味性强。 语言表达严谨、文字通俗易懂,同时配有题型多样的典型习题,适用于c高级语言程序设计的初学者,可以作为普通高等院校中电子信息类专业程序设计基础的教材,也适宜有兴趣学习c的非计算机专业学生作为辅助教材,同时也适合自学。 目录编辑 第1章c简单程序设计1 1.1概述1 1.1.1c语言的发展历史1 1.1.2c程序设计的初步知识2 1.1.3字符集5 1.1.4词法记号5 1.2基本数据类型6 1.2.1基本数据类型7 1.2.2变量8 1.2.3常量10 1.3运算符和表达式13 1.3.1运算符的优先级14 1.3.2算术运算符及其表达式15 1.3.3关系运算符与逻辑运算符15 1.3.4增1、减1运算符及其表达式17 1.3.5赋值运算符、复合的赋值运算符及其表达式17 1.3.6条件运算符18 1.3.7位操作运算符18 1.3.8其他运算符20 1.3.9数据类型转换21 1.3.10类型别名22 1.4面向对象设计思想及其实例23 1.4.1程序设计语言的发展23 1.4.2面向过程的程序设计(pop)思想23 1.4.3面向对象的程序设计(oop)思想24 1.4.4面向对象思想分析实例——卖报亭24 1.5c上机实践26 1.5.1c程序的实现过程26 1.5.2cbuilder可视化编程环境27 本章小结30 习题31 第2章数据的输入/输出与控制结构34 2.1键盘输入34 2.2屏幕显示输出35 2.3字符数据的输入输出36 2.3.1字符数据的输入与输出36 2.3.2字符串的输入与输出37 2.4程序基本控制结构38 2.4.1语句的概念38 2.4.2算法的基本控制结构41 2.5选择结构42 2.5.1if-else语句42 2.5.2switch语句46 2.6循环结构48 2.6.1while语句与do-while语句48 2.6.2for循环语句50 2.6.3ifgoto实现循环功能51 2.6.4循环的嵌套52 2.7跳转语句53 2.7.1break语句54 2.7.2continue语句54 2.7.3break语句与continue语句的比较54 2.7.4goto语句55 2.8编程实例——水果收银机55 本章小结56 习题57 第3章数组61 3.1数组的基本概念61 3.2数组的定义与数组元素的表示法62 3.2.1数组的定义格式62 3.2.2数组元素的表示方法62 3.3数组的赋值63 3.3.1数组赋初值63 3.3.2数组赋值65 3.4字符数组66 3.4.1字符数组的定义格式66 3.4.2字符数组的赋值66 3.4.3字符数组的输入输出操作67 3.4.4字符串处理函数68 3.5编程实例——选择法排序和josephus问题70 3.5.1选择法排序70 3.5.2josephus问题71 本章小结72 习题72 第4章函数76 4.1函数的定义与调用76 4.1.1函数的定义76 4.1.2函数的声明和调用77 4.2函数的调用方式和参数传递79 4.2.1函数的调用过程79 4.2.2函数的传值调用80 4.2.3函数的引用调用81 4.2.4数组作为函数参数83 4.3函数的嵌套调用和递归调用85 4.3.1函数的嵌套调用85 4.3.2函数的递归调用86 4.4带默认形参值的函数90 4.5内联函数和重载函数92 4.5.1内联函数92 4.5.2重载函数93 4.6编程实例——二进制与十进制的转换94 本章小结95 习题95 第5章程序结构100 5.1全局变量与局部变量100 5.1.1全局变量100 5.1.2局部变量101 5.2静态变量102 5.3存储类型103 5.4作用域与生存期104 5.4.1作用域104 5.4.2可见性105 5.4.3生存期105 5.5编译预处理105 5.5.1文件包含106 5.5.2宏定义106 5.5.3条件编译108 5.6多文件结构109 本章小结110 习题110 第6章指针114 6.1指针的概念114 6.1.1指针变量的声明115 6.1.2指针变量的初始化与引用115 6.2指针运算116 6.2.1运算符“ [1]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值