Pi是一种编程(最好是规范)语言。它是在年开发的1984并且在某些情况下使用德国的大学(例如德国波茨坦大学).这是为了制定规范。规范是临时计划。他们不是为了制作可以发布的真实程序,而是为了将给定的问题转化为算法,实现这个算法,测试它,并将它展示给客户验证,这就是他想要的。然后,您可以开始根据此规范制作真正的程序。给定的Pi-Compiler(可从以下网址下载网址:http://www.cs.uni-potsdam.de/~owilhelm/Manuscripte/Pi/Pi.zip)将给定的规范转换为Haskell(实际上,编译器有缺陷,因此有一个预编译器可以转换给定的代码,以便编译器理解它,还有一个后编译器可以工作)。如何编写Pi-specification(请熟悉规范s,然后阅读以下内容):
如中所述规范它由导出、导入、通用参数和正文组成。在前三个参数中,只有操作和类型的签名(在导入和通用参数中,这些参数不在本模块(规范)中)。签名是操作的第一行(例如C类int加法(int x,int y))。
为了向您展示这一切是如何工作的,我向您展示了自然数+0({0,1,…})的简短规范:
这就是导出的内容。
cem NAT公司
类型视图规范
出口
类型Nat
构造函数为空:->Nat构造函数继承者:Nat->Nat操作为空:->Nat操作继承人:Nat->Nat操作添加:Nat,Nat->Nat操作一:->Nat操作二:->Nat
导入为空,因为我们只导入一个规范,但这也是需要导出的
进口
现在遵循常见参数
通用参数类型逻辑
运算真值:->逻辑操作错误:->逻辑构造函数true:->逻辑构造函数false:->逻辑
现在是尸体
身体
Nat型结构为内部结构
构造函数为空:->Nat构造函数继承者:Nat->Nat
操作添加:Nat,Nat->Nat变量x,y:Nat方程加(x,null)=x;add(x,successiver(y))=继任者(添加(x,y))
操作一:->Nat方程式一=后继项(空)
操作二:->Nat方程式二=后继(一)
构造函数是构造类型的基础。请注意:大多数模块德国的所以非德语使用者可能很难理解