Lyt
posts - 16,comments - 61,trackbacks - 0

一、简介

1.不允许全局变量,全局区域只有函数定义

2.只能在函数的var里进行变量声明,不能初始化,不需变量声明时var可以省略

3.只支持整型integer、浮点型real、布尔型boolean

4.对大小写不敏感

5.有且只有一个main函数,从调用main函数开始执行程序

二、词法

1.关键字:function  procedure  integer  var  begin  end  if  then  else while  do  break  continue  integer  real  boolean  false  true

2.标识符:字母或下划线开头,由字母、下划线、数字构成

3.字面量:整型字面量(如【12】【1】等)、浮点型字面量(如【1.0】【0.23】等)、布尔型字面量(包括【false】【true】)

4.操作符:(  )  +  -  *  /  div  mod  <  <=  =  !=  >=  >  := not  and  or  xor

5.注释:/*注释内容*/,不可嵌套

三、语法

1.函数定义

(1)函数分两种类型,function有返回值,procedure无返回值

(2)无参数时参数表可以为空,但括号()不可以省略,参数与类型之间用冒号隔开,参数之间用分号隔开

(3)变量声明只出现在var中,无变量声明时var可省略,变量与类型之间用冒号隔开,变量声明语句之间用分号隔开,最后一个变量声明语句分号可加可省略

(4)函数定义不能嵌套,只能在全局区域

(5)函数不必先声明后使用

function Fun1(Param1:integer;Param2:integer):boolean
var i,j:integer; k:real;
begin
  
/*函数体*/
end

procedure Fun2()
begin
  
/*函数体*/
end

2.语句

(1)不允许空语句,语句直接用分号隔开,最后一个语句分号可加可省略

(2)语句块:a.由begin和end包围,可包围0个或以上语句;b.可以嵌套;c.在其所在层次上被视为一个语句

(3)表达式语句:单独的表达式可以构成一个语句,如【1】【test()】

(4)赋值语句:IdentityName:=Value 如【i:=1】(赋值操作是语句而非表达式)

(5)if语句:if (boolean表达式) then StatementTrue else StatementFalse(else可省略)如【if (true) then return 1】

(6)while语句:while (boolean表达式) do Statement 如【while (true) dosomething()】

(7)dowhile语句:do Statements while (boolean表达式) 如【do dosomething() while (true)】

(8)跳转语句:break退出循环;continue进入下一次循环

(9)return语句:【return】出现在procedure函数中,【return 表达式】出现在function函数中

3.表达式

(1)函数调用:FunctionName(arg1,arg2)

(2)操作符:a.算术:+  -  *  /  div  mod;b.逻辑:not  and  or  xor;c.比较:<  <=  =  !=  >=  >

(3)操作符优先级(由高到低):括号可以改变优先级

正号+  负号-  not  =>  *  /  div  mod  =>  加号+  减号-  =>  比较 =>  逻辑

四、示例代码

1.斐波纳契数列

function fab(i:integer):integer
begin
  
if (i=1) then return 1
  
else if (i=2) then return 1
  
else return fab(i-1)+fab(i-2);
end

function main():integer
begin
  
return fab(4);
end

2.求π

function GetPI():real
var sum,n,sign:real;
    pd:boolean;
begin
  sum:
=1.0;
  n:
=1.0;
  sign:
=1.0;
  
while (1.0/n>0.0001do
  begin
    sign:
=-sign;
    n:
=n+2.0;
    sum:
=sum+sign*1.0/n;
  end;
  
return 4.0*sum;
end

function main():real
begin
  
return GetPI();
end

源代码:http://www.cppblog.com/Files/Lyt/Pascal简化版.rar

posted on 2009-04-09 22:38 Lyt 阅读(1737) 评论(5)  编辑 收藏 引用 所属分类: Pascal简化版

FeedBack:
# re: Pascal简化版
2009-04-09 23:44 | 尹东斐
不错,如果结构设计的好的话,扩展可支持的类型,添加新的功能是很容易的。
如果你有scope的概念的话,增加函数功能也很容易。

加油。  回复  更多评论
  
# re: Pascal简化版[未登录]
2009-04-10 14:30 | 那谁
mark

  回复  更多评论
  
# re: Pascal简化版
2009-04-10 15:38 | 巫云
请问,这是个编译器吗?还是解释器?  回复  更多评论
  
# re: Pascal简化版
2009-04-10 16:28 | 陈梓瀚(vczh)
@巫云
一个编译到虚拟机的指令上的编译器。  回复  更多评论
  
# re: Pascal简化版[未登录]
2009-04-11 16:41 | jans2002
高手啊,像我们这种半路出来的程序员感觉这些东西都很玄。  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理