翻译TIPatterns--多个编程语言(Multiple languag…

2008-02-23 10:10:17来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

多个编程语言Multiple languages-1

本章我们讨论跨越语言边界所带来的好处。通常来说,对于某个问题的解决,使用多于一种的编程语言比死抱住一门语言不放,会更便利。本
章你将会看到,对于某种语言而言非常困难或者棘手的问题,如果用另外一种语言就可能很容易并且很快被解决掉。如果能够把多种语言结合起来,你就可以更快更节约的创造产品。
上面这个想法最直接的应用就是被称为IntERPreter的设计模式,它可以给你的程序添加一个解释语言(interpreted language),从而允许最
终用户很容易的定制一个解决方案。对于Java来说,实现上述想法最简单和最强大的方式就是通过Jython,它是用Java的纯字节码写的一个Python语言的实现。
Interpreter解决的是一个特定的问题——为用户创建一个脚本语言。但是有时候暂时转到另外一种语言解决你所面临的问题的某一方面会
更简单和快捷。并不是说要你创建一个解释器,你只需要使用另外一种语言写一些代码就可以了。再次重申一下,Jython是这方面很好的一个例子,而CORBA也允许你跨越语言边界。


Interpreter模式的动机Interpreter motivation

如果程序的用户在运行时刻需要更大的灵活性,例如,为了通过创建脚本来描述所期望的系统行为,你就可以使用Interpreter设计模式。这种情
况下,你(需要)创建一个语言解释器并把它嵌入到你的程序中。
别忘了,每种设计模式都允许一个或多个可以变化的因素,所以,重要的是首先要知道哪个因素是变化的。有些时候是你的程序的最终用户(
而不是程序的编写人员)在他们配置程序的某些方面的时候需要更大的灵活性。也就是说,他们需要做一些简单的编程工作。Interpreter模式通过添加一个语言解释器提供了这种灵活性。
问题是,开发你自己的语言并为它构建一个解释器是一项耗时的工作,而且它会分散你开发应用程序的精力
。你必须问问自己是想要写完应用程序呢还是要创造一门新的语言。最好的解决方案就是代码重用:嵌入一个已经构建好并且调试过的解释器。Python语言可以被免费的嵌入以盈利为目的的应用程序,而不需要签署任何许可协议和支付版税,也不必遵循任何的附加条件。基本上说,使用Python的时候你不受任何限制。
Python是一门非常容易学习的语言,它的逻辑性很强,便于读写,它支持函数和对象,有一大堆可用的库,几乎可以在所有平台上运行。你可
以到www.Python.org下载Python并在那里找到更多的信息。
为了解决与Java相关的问题,我们会着眼于Python的一个特殊版本Jython。它是完全由Java的字节码生成的,所以要把它并入你的应用程序非常简
单,而且它和Java一样有很好的可移植性。它和Java之间有一个非常干净的接口:Java可以调用Python类,Python也可以调用Java类。
Python从一开始就是用类来设计的,它是一门真正的纯面向对象的语言(C 和Java都以不同的方式违反了纯面向对象的原则)。由于Python是递增的(scales up),所以即使你创建非常大的程序也不会失去对其代码的控制。
要安装Python,访问www.Python.org按那些链接和说明做就可以了。要安装Jython,访问 http://jython.sourceforge.net. 下载下来的是一个.class文件,你用Java执行它的时候它会启动一个安装程序。你还需要把jython.jar添加到你的CLASSPATH。你可以访问
http://www.bruceeckel.com/TIPatterns/Building-Code.html.找到更进一步的安装说明。


Python概览

为了让你能够上手,下面是关于Python的一个简短介绍,这个介绍是针对有经验的程序员的(如果你正在读这本书那你必须得是个有经验的程
序员)。你可以参考www.Python.org上更为全面的Python文档(尤其是非常有用的那个HTML页面:Python 快速参考手册),此外,你还可以参考众多的Python书籍,比如Mark Lutz和David Aschor写的《Learning Python》(O'Reilly, 1999)。
Python经常被说成是一种脚本语言,但是脚本语言似乎有很大的局限性,尤其是就它们所解决的问题的领域而言。与此不同,Python是一门支持
脚本编程的语言。用它来写脚本确实是很棒的,你甚至会想用Python脚本替换掉你所有的批处理文件,shell脚本和一些简单的程序。但是它远远超出了一门脚本语言。
Python被设计成这样一门语言,用它写出来的代码非常干净,而且很容易读懂。你会发现即使过了很长时间你还是很容易读懂自己写
的那些代码,而且读别人的代码也是如此。这在某种程度上得归功于它简明扼要的语法,但是对于代码可读性来说很重要的一个因素是缩进——对于Python来说,作用域是通过缩进来确定的。例如:

##interpreter:if.py
response = "yes"
if response == "yes":
print "affirmative"
val = 1
print "continuing..."
##~


‘#’号表示直到该行结尾的一个注释,就像C 和Java里的‘//’注释那样。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java入门笔记6_线程

下一篇:Java入门笔记4_访问控制和包