pascal中repeat与goto语句
- 格式:ppt
- 大小:52.00 KB
- 文档页数:7


1
Pascal语言精要
基本概念:标识符、保留字、常量、变量、运算符、表达式、标准数据类型
Pascal
数
据
类
型
简单类型
标准类型 整型 integer -32768~32767
shortint -128~127
longint -2147483648~2147483647
byte 0~255
word 0~65535
实型 real 绝对值在1E-38~1E38间
singel (单精度型)
double (双精度型)
extended (扩展型)
comp (装配十进制型)
字符型 char (字符)
string (字符串)
布尔型 boolean 只有两个值true和false
用户自定义类型 枚举型
子界型
构造类型 数组类型
记录类型
集合类型
文件类型
指针类型
PASCAL标准数据类型一共有4个:整型、实型、字符型、布尔型,分别用保留字integer、real、char、boolean来标记它们。其取值范围和运算如下:
整型(integer):范围 -32768—32767(16位运算);运算 + - * / mod div
实型(real): 范围 运算 + - * /
字符型(char): 范围 可显示的ASCII字符
布尔型(boolean):范围 true false ;运算 and or not
1.整型
类型 数值范围 占字节数 格式
shortint -128..128 1 带符号8位
integer -32768..32767 2 带符号16位
longint -2147483648..2147483647 4 带符号32位
byte 0..255 1 带符号8位
Pascal语言和程序设计基础(预备知识)
基本程序结构和几个概念::
标识符 保留字 常量 变量 运算符 表达式 标准数据类型
Pacal语言程序结构
Program prog_name;
var 变量申明;
begin
程序体;
end.
例如:
program pname;
const n=4;
type arr=array [1..4] of integer;
var i:integer; a:arr;
begin
for i:=1 to n do read(a[i]);
readln;
for i:=n downto 1 do write(a[i]:4);
writeln;
end.
以上是一个PASCAL程序。从键盘读入4个数据,逆序输出。
一般来说,一个PASCAL程序包括以下几个部分:
程序头:program pname; 其中,program是保留字,表示程序从这个地方开始,pname是标识符,是程序的名字,可由程序员自定。保留字是PASCAL选定的,具有固定意义和用法的专用单词或缩写,这些单词不允许作其它使用。如上,“program”就有“程序从这里开始”这样一种特别的意义,而“const”就有“常量说明从这里开始”的意义。我们不能再用“program”、“const”来作为其它变量、常量等的名字。标识符是以字母开头的字母数字串,其长度最大为8个字符。用来表示常量、变量、类型、文件、过程、函数和程序的名字。如“pname”、“i”、“j”、“a1”就是合法的标识符;但“1a”、“#a”是非法的标识符。有一点要注意的是,在PASCAL中,字母除了作为字符值或字符串值之外,其大小写是无关的。如标识符“A1”和“a1”在PASCLA看来是同一标识符。在PASCAL中除了保留字和自定义的标识符外,还有一类有特殊含义的标识符,这类标识符称为标准标识符。它们是用来标记程序中经常引用的处理对象,如常量、函数。(PASCAL定义的保留字和标准标识符附后)
72729320.doc
- 1 -
PL/0语言编译程序分析
PL/0语言是Pascal语言的一个子集,我们这里分析的PL/0的编译程序包括了对PL/0语言源程序进行分析处理、编译生成类PCODE代码,并在虚拟机上解释运行生成的类PCODE代码的功能。
PL/0语言编译程序采用以语法分析为核心、一遍扫描的编译方法。词法分析和代码生成作为独立的子程序供语法分析程序调用。语法分析的同时,提供了出错报告和出错恢复的功能。在源程序没有错误编译通过的情况下,调用类PCODE解释程序解释执行生成的类PCODE代码。
词法分析子程序分析:
词法分析子程序名为getsym,功能是从源程序中读出一个单词符号(token),把它的信息放入全局变量sym、id和num中,语法分析器需要单词时,直接从这三个变量中获得。(注意:语法分析器每次用完这三个变量的值就立即调用getsym子程序获取新的单词供下一次使用。而不是在需要新单词时才调用getsym过程)。getsym过程通过反复调用getch子过程从源程序过获取字符,并把它们拼成单词。getch过程中使用了行缓冲区技术以提高程序运行效率。
词法分析器的分析过程:调用getsym时,它通过getch过程从源程序中获得一个字符。如果这个字符是字母,则继续获取字符或数字,最终可以拼成一个单词,查保留字表,如果查到则为保留字,把sym变量赋成相应的保留字类型值;如果没有查到,则这个单词应是一个用户自定义的标识符(可能是变量名、常量名或是过程的名字),把sym置为ident,把这个单词存入id变量。查保留字表时使用了二分法查找以提高效率。如果getch获得的字符是数字,则继续用getch获取数字,并把它们拼成一个整数,然后把sym置为number,并把拼成的数值放入num变量。如果识别出其它合法的符号(比如:赋值号、大于号、小于等于号等),则把sym则成相应的类型。如果遇到不合法的字符,把sym置成nul。
Pascal语言概述与预备知识
关于 Pascal Pascal 的启动
1、关于Turbo Pascal
Pascal是一种计算机通用的高级程序设计语言。它由瑞士Niklaus Wirth教授于六十年代末设计并创立。
以法国数学家命名的Pascal语言现已成为使用最广泛的基于DOS的语言之一,其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。
正因为上述特点,Pascal语言可以被方便地用于描述各种算法与数据结构。尤其是对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一, NOI(全国奥林匹克信息学竞赛)把Pascal语言定为唯一提倡的程序设计语言,在大学中Pascal语言也常常被用作学习数据结构与算法的教学语言。
在Pascal问世以来的三十余年间,先后产生了适合于不同机型的各种各样版本。其中影响最大的莫过于Turbo Pascal系列软件。它是由美国Borland公司设计、研制的一种适用于微机的Pascal编译系统。该编译系统由1983年推出1.0版本发展到1992年推出的7.0版本,其版本不断更新,而功能更趋完善。
下面列出Turbo Pascal的编年史:
年代 版本名称 主要特色
1983 Turbo Pascal 1.0
Turbo Pascal 2.0
Turbo-87 Pascal 提高实数运算速度并扩大值域
1985 Turbo Pascal 3.0 增加图形功能
Turbo BCD Pascal 特别适合应用于商业
1987 Turbo Pascal 4.0 提供集成开发环境(IDE),引入单元概念
1988 Turbo Pascal 5.0 增加调试功能
1989 Turbo Pascal 5.5 支持面向对象的程序设计(OPP)