- 三种语言类型: 1.命令式 2.函数式 3.逻辑式
- “命令式的语言相信很多人都学了一把了,C,C++,Java,C#,我就较系统的学了这一把,其他浅尝辄止的语言就不提了。函数式以前摸过Scheme后 就再也没派上用场,逻辑式似乎只有一种Prolog,我记得还专门买过清华的一本烂书《人工智能(AI)编程语言(面向对象语言)》,全部翻译的是 Visual Prolog官网的资料,词不达意还残缺不全,顺序混乱,而且那个Visual Prolog个人版每次编译都跳出烦人的对话框,界面丑陋,令人失望。目前函数式编程理论成熟,逻辑式编程理论似乎有缺陷,而且工业上那一吨的专家系统都 是Common Lisp写的(注意,我可没有提Scheme),而且Common Lisp在人工智能领域外也大有作为,有很多成功的商业案例,Prolog就似乎只能在人工智能这一角混了。”(引用http://hi.baidu.com/soulmachine/blog/item/60c477270b023802908f9dc8.html)
- 最早的函数式语言当然是Lisp,现在有两个分支:Common lisp 和Scheme。Common lisp 是一个庞大的语言,支持多种编程范式,Scheme是Common lisp的子集,二者都是ANSI标准。Scheme 由于语言核心很小,多用在教育领域,Common Lisp多用来写专家系统,也可以构造大型软件。
最纯的函数式语言是Haskell,完全没有副作用,有一个Hakell98标准,但还不是ANSI或ISO标准,算是一个社区标准吧。
ML也是一种跟Lisp差不多老的语言,现在有Standard ML,Caml和微软的F#三个常见变种。
Lisp 和Scheme 在tiobe的排名还不错,又老又壮,ML 和Haskell比 Lisp家族都要年轻,用的人明显少了很多,社区也比较小。erlang和ocaml排名都很后。(引用http://hi.baidu.com/soulmachine/blog/item/60c477270b023802908f9dc8.html) - Java Scripting API: 框架类似JDBC,可以利用统一的接口对不同的脚本语言的调用。
- Java Scripting API: 主要类:ScriptEngineManager ScriptEngine (全部都是工厂模式了,这世道)使用SciptEngine的eval方法来调用脚本。
- Java Scripting API: ScriptEngine可以维持应用程序组件的状态,即上文中执行了的eval方法中定义了一个脚本函数,在下文中的eval方法中可以调用。事实上,Java 脚本 API 并不要求脚本引擎提供这一特性。本文中所使用的 JavaScript、Groovy 和 JRuby 脚本引擎确实在 eval() 调用之间维持了这些状态。
- Java Scripting API:允许在脚本语言中调用Java对象。使用ScrpitEngine的put方法:put(name,object)将Java对象放入到脚本上下文中。
- Java Scripting API:加入了脚本语言的Java将变得更加灵活,想像逻辑层,规则层使用脚本语言编写,然后嵌入到Java中的快感吧。