PASCAL语言 吉林大学计算机科学与技术学院
第一章 基本知识
一、 本课程在四年学习中的位置 协同能力的培养 1、计算机操作、应用 2.数学、物理、外语知识 3.计算机语言、算法、模型建立 一、 本课程在四年学习中的位置 1、计算机操作、应用 2.数学、物理、外语知识 3.计算机语言、算法、模型建立 4.系统实现、专门知识、高级应用 协同能力的培养
计算机工作机理 二、 语言发展历史 C A B C 低 低 低 低 高 高 高 低 高 高 高 低 + A B
二、 语言发展历史 开发工具、编译和解释 1、机器语言 1 110 10(1+2) 2.汇编语言 1 ADD 2(1+2) 二、 语言发展历史 1、机器语言 1 110 10(1+2) 2.汇编语言 1 ADD 2(1+2) 3.1.瀑布高级语言 3.2、支持面向对象的高级语言 开发工具、编译和解释
用汇编语言或高级语言编出程序 将源程序录入计算机 由翻译器(汇编程序或编译程序) 将源程序翻译成机器语言程序 将机器语言程序送入计算机 并启动计算机执行机器语言程序 得到最后结果
三、 为什么要学习PASCAL? 1、结构化语言的典型(比较几种语言) 2.规则清晰、语法严谨、适合初学 3.有开发工具仍遵循该语言的语法 4.思维的载体
四、高级计算机语言的学习线索 1.内存空间的管理 外存 2.语法和算法(类PASCAL) 内存 CPU
五、PASCAL语言的产生 1.前身ALGOL、1968。纪念法国数学家 2.结构化程序设计的里程碑
一个简单PASCAL程序 PROGRAM Area(Input,Output); CONST Pi=3.14; VAR s,r:Real; BEGIN Readln(r); s:=Pi*Sqr(r); Writeln(‘s=‘,s) END.
六、程序语言的构成 1.程序语言是交流工具 2.语法元素+语法规则--》语义 3.最终目标是表示算法
6.1、语法元素的构成 6.1.1 字符 (存储形态和可视形态) 1、字母 (大小写) 2、数字 6.1.1 字符 (存储形态和可视形态) 1、字母 (大小写) 2、数字 3、其它 + - × / = < > . : ; ^ () [] {} ‘ 空格
6.1、语法元素的构成 6.1.2 符号 1、特定符号(又称作保留字或者关键字) 字特定符号 AND|ARRAY|BEGIN|CASE|CONST|DIV|DO| DOWNTO|ELSE|END|FILE|FOR|FUNCTION| GOTO|IF|IN|LABEL|MOD|NIL|NOT|OF│OR│ PARKED│PROCEDURE|PROGRAM|RECORD| REPEAT|SET|THEN|TO|TYPE|UNTIL|VAR| WHILE|WITH
+|-|*|/|=|<|>|[|]| .|,|:|; 6.1、语法元素的构成 6.1.2 符号 1、特定符号(又称作保留字或者关键字) 非字特定符号 +|-|*|/|=|<|>|[|]| .|,|:|; |^|(|)|'│<>│<=|>=|:=|
6.1、语法元素的构成 6.1.2 符号 2、标识符 预定义的标准标识符
3个常量:false,true,maxint 4个标准类型名:real,integer,char,boolea 2个标准文件变量名:input,output 17个标准函数:abs,sqr,sqrt,sin,cos,arctan,exp,ln, odd,eoln,eof,trunc,round,ord,chr,pred,succ 13个标准过程:rewrite,put,reset,get,write,writeln, read,readln,page, new,dispose,pack,unpack
6.1、语法元素的构成 6.1.2 符号 2、标识符 自定义标识符 以字母开头的字母、数字序列。 不能与保留字重复 可以与预定义标识符重复,但是不提倡 长度限制 望文生义 先定义后使用
标识符示例 ABE A+E MN98 8TR code code.pas Z2 0AO
6.1、语法元素的构成 6.1.2 符号 3、字符串 ‘PASCAL’ ‘This is a “string”’ 区分大小写 任意计算机字符(包括不可打印字符)
6.1、语法元素的构成 6.1.2 符号 4、注解 {注解} {不得出现在注解内部 允许换行 临时取消作用 也有用**
6.1、语法元素的构成 6.1.2 符号 5、分割符号 Thisisastring 空格 隐含分割(如换行、注解)
6.1、语法元素的构成 6.1.2 符号 6、标号 数字序列 在0~9999之间
6.1、语法元素的构成 6.1.2 符号 7、数 整数 正负 范围 实数 小数表示 小数点前后必须有数字 5.与 .5不合法 小数表示 小数点前后必须有数字 5.与 .5不合法 科学表示 E之前必须有数字、后面必须是整数
错误示例 5,204.65 7777. .8888 E5 755.E4 .777E-3 234E
6.2、语法的描述 巴科斯范式 G(二进制整数): N → D N → ND D → 0 D → 1 【例】 无符号二进制整数集合的文法如下: G(二进制整数): N → D N → ND D → 0 D → 1
巴科斯范式 G(二进制整数): N → D N → ND D → 0 D → 1 我们称这种描述形式为“文法”。 每一行称为一条规则式(或规则); 每条箭头表示它左端的符号由它右端的符号串组成; “G”是给该文法起的名字, 标在第一条规则式前; 第一条规则式的左端符号称为文法的开始符; 从文法的开始符出发不断用右端符号串替换左端符号, 直至所有符号都不能再替换为止, 得到的符号串称该文法的句子, 文法的所有句子构成的集合称为该文法定义的语言。
┌──────────┼─────────┐ <冠词> <形容词> <名词> <动词> <冠词> <名词> 6.2、语法的描述 巴科斯范式 <一个英语句子> ┌──────────┼─────────┐ <主语> <谓语> <宾语> ┌────┼────┐ | ┌──┴──┐ <冠词> <形容词> <名词> <动词> <冠词> <名词>
6.2、语法的描述 巴科斯范式 G: <一个英语句子> → <主语><谓语><宾语> <主 语> → <冠词><形容词><名词> G: <一个英语句子> → <主语><谓语><宾语> <主 语> → <冠词><形容词><名词> <冠 词> → the <形容词> → big <谓 语> → <动词> <动 词> → is <宾 语> → <冠词><名词> <名 词> → animal <名 词> → elephant
6.2、语法的描述 巴科斯范式 The big animal is the elephant The big elephant is the animal The big animal is the elephant The big animal is the animal The big elephant is the elephant
6.2、语法的描述 巴科斯范式 G(二进制整数): N → D N → ND D → 0 D → 1 用符号“│”表示“或者” ,则: G(二进制整数): N → D | ND D → 0 | 1
6.2、语法的描述 巴科斯范式 递归是定义无穷集合的一种常用的手段, 一般显性或者隐含对自身的嵌套引用。 G(有符号二进制整数): N → E E →D | ND | -ND D → 0 | 1
6.2、语法的描述 巴科斯范式 【例】整数表达式可以定义成: < 表达式 > → <运算分量>│<运算分量><运算符><表达式> <运算分量> → <整数>|(<表达式>) < 运算符 > → +|-|×|/ 【例】标识符可以如下定义: <标识符> → <字母>|<标识符><字母>|<标识符><数字>
6.2、语法的描述 其它文法表示 花括号{}可以看成循环标志,表示花括号括起来的部分要循环 出现若干次,一般也包括0次。 N (1/3)→ 0.{ 3 } N → D{ D } D → 0│1│2│3│4│5│6│7│8│9 N → { D }E E → 0│2│4│6│8
6.2、语法的描述 其它文法表示 方括号“[” 和“]”用来表示可选择的符号串 。 N (有符号整数)→〔+〕〔-〕 D{ D }
6.2、语法的描述 语法图(和巴科斯范式效果等同) 语法图可理解成沿箭头方向,从入口到出口,能在 该图中通过的任意一个字符序列都是该语言的句子。 字母 标识符: 字母 数字 标识符定义 数字 整数 整数的定义
七、算法及其描述 算法定义 操作+控制 控制=顺序+跳转
文字描述 NS图 流程图 PAD图(问题分析) 八、算法及其描述 文字描述 NS图 流程图 PAD图(问题分析)
PASCAL的作用、地位 学习线索 语言构成 巴科斯范式 语法图 九、小结 PASCAL的作用、地位 学习线索 语言构成 巴科斯范式 语法图
谢谢大家!