编程学习网 > 编程语言 > 你还不够了解的5个脚本语言
2015
01-17

你还不够了解的5个脚本语言

  从操作系统到基本应用,从游戏到Web页面,脚本语言无处不在。脚本语言让忙碌的开发人员不再循环在"编译-测试-校订"周期里。有了脚本语言,开发者只需要"编辑-运行"。

  你可能熟知 Perl, Python, VBA, JavaScript...今天,我们要来谈谈另外5个脚本语言,虽然你可能还不够熟悉,不过他值得一看。

  Wren

  Wren是一个基于类的并发开源脚本语言,有5000行左右c写成,前游戏开发者Bob Nystrom(《the Games Programming Pattern》作者)完成了他。 Wren 致力于通过基于类的架构改善Lua脚本语言。体积小速度快,有简单的C API,少于10个函数调用(需要 C99 编译器)。Wren脚本语言是Wren虚拟机编译成字节码。

class Wren {
 
flyTo(city) {
 
IO.print(“Flying to “, city)
 
}
 
}

  Candle

  CandleScript由一个叫Henry Luo的开发者开发,致力于处理任何分层数据。它将标记数据作为一个内置的数据类型并提供处理能力。

  由于Candle是函数式编程,包括过程式编程,所以可以提供控制流语句。表达式也是函数式的。

<!--?csp1.0?-->
 
function main() {
 
let var = 123;
 
"Outer var: " {var} <br>
 
<div>
 
let var = 345;
 
"Inner var: " {var} <br>
 
</div>
 
}

  Fancy

  Fancy灵感来自Ruby,Christopher Bertels开发。是对象之间的消息发送系统,与Objective-C 或 Smalltalk 相似,操作很简单。下面是计算斐波纳契数的示例:

class Fixnum {
 
def fib {
 
match self {
 
case 0 -> 0
 
case 1 -> 1
 
case _ -> self – 1 fib + (self – 2 fib)
 
}
 
}
 
}
 
15 times: |x| {
 
x fib println
 
}

  Pikt

  由 Robert Osterlund开发,Pikt为Problem Informant/Killer Tool的首字母缩写。是Linux和Unix系统的监视设置管理软件。代码。下面是一个脚本示例,写出crontab的变化:

crontab_change(u)
 
init
 
status =piktstatus
 
level =piktlevel
 
task "Report changes in (u) crontabs"
 
input proc "if [ -e =hstdir/log/(u).crontab.bak ];
 
then =diff =hstdir/log/(u).crontab.bak =hstdir/log/(u).crontab
 
else =cat =hstdir/log/(u).crontab 2>/dev/null; fi"
 
begin
 
doexec wait "=crontab -u (u) -l > =hstdir/log/(u).crontab"
 
rule
 
output mail $inlin
 
end
 
doexec wait "=mv =hstdir/log/(u).crontab =hstdir/log/(u).crontab.bak"

  PPL

  PPL是JVM的跨平台语言,生成.jar或.class文件。有Christian Neumanns开发,致力于提高java null安全性和稳定性。编译器检null pointer错误并将其标记为编译错误标记。其他的特性还有:Design by Contract、集成单元测试、默认不可变队形、静态类型等。这些功能都意味着在编译时间中检测更多错误。

  他下面的示例显示了一个简单的输入/输出,包括集成单元测试:

command double_string
 
in string type:string end
 
out result type:string end
 
script
 
o_result = i_string & i_string // simply return twice the input string
 
end
 
test // start of test script
 
script
 
test "a" // call co_double_string with i_string = "a"
 
verify v_result =v "aa" // verify result is "aa"
 
test "foo"
 
verify result =v "foofoo"
 
end
 
end
 
end
 
end

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取