Hands on and Overview of Maude

获取Maude

Maude

运行Maude

将下载Maude中的bin目录添加到系统目录中,输入maude即可运行。

退出: q or quit
module:大写
文件:以.maude结尾

pnat.maude

fmod PNAT is
    sorts Nat .
    
    op 0 : -> Nat .  
    op s_ : Nat -> Nat .
    
    var Y X : Nat .
    
    op _+_ : Nat Nat -> Nat [assoc comm] .
    op _*_ : Nat Nat -> Nat [assoc comm] . 
    
    eq 0 + X = X .
    eq s X + Y = s (X + Y) .

    eq 0 * X = 0 .
    eq s X * Y = (X * Y) + Y .
endfm

reduce: 归纳
用red可以替代reduce,in XXmodulename 也不是必须的。

load pnat.maude

reduce in PNAT : s s 0 + s s s 0 .

ctrl + C可以打断reduce进程。

load
prelude.maude文件是预定义了maude2的许多模型。
Maude从以下三个目录顺序加载模型文件:

  • MAUDE_LIB为名的环境变量
  • 环境变量中可执行目录
  • 当前文件夹

STRING模型就是predefined的

red in STRING: "hello" + " " + "world!" .

in
使用某个模型文件:

in XXX

XXX是模型文件名字,可是是单独的名字或者以.maude .fm .obj扩展名结束。
Maude从以下三个目录顺序查找特定文件:

  • 当前目录
  • MAUDE_LIB环境变量
  • 可执行文件目录

注释

  • 单行注释 *** —
  • 多行注释 *** XX ***

介绍

简洁性、表达性、高效性

Maude的三大设计原则

  • 简介性:程序尽可能简洁,意义明晰
  • 表达性:能运用于多种情况下的应用,以及形式化逻辑,表达性好
  • 高效性:要和其他高效编程语言一样牛逼

明确域的语言在某些特定应用下,高效经济。Maude 可以被视为高效的元语言。

简洁性

有三表述,等式equations和规则rules以及重写语义rewriting semantics

  • S_ 表示自然数的继承函数
  • == 引用中的相等断言
  • or Bool值的析取

等式从左到右替换

表达性

相等模式匹配

  • 语法匹配

类型

Maude有两种变量类型:

  • sorts 对应完好定义的数据,可以分层为不同的子集,Nat<Int<Rat
  • kinds 可能存在错误的元素

Maude的逻辑基础

Maude计算是一种逻辑推论,数学上,成员等式逻辑基于重写逻辑
成员等式逻辑,可是视为(Σ,EUA)
Σ是信号,表明类型,sorts、subsorts、kinds、overload operators
E是等式集合,函数模型
A是等式属性,assoc结合律、comm交换律等。

从数学到程序的转化,保持一致性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值