我在CS一开始学生,我的课大多是在Java中。我目前正在通过“小策士”打算作为一个自学,并找出如何做到这一点我发现计划“实现”多次提到的过程。我的问题是,什么是实现?

他们是方案的次方言,或者是别的东西(DrScheme似乎允许不同语言的“味道”)?难道仅仅是提供给任何特定生态系统结合了IDE,翻译,交互工具之类的?

名称

是否所有其他语言(例如,Java)来也有多种“实施方式”的,或者是它的东西保留为“开放式”的语言?

感谢您,

乔丝德拉赫

有帮助吗?

解决方案

一种编程语言的实现是一个编译器或解释该语言。生态系统的附加组分,IDE等,可以是一个实现的一部分,但不是必需的。对于方案有很多种,例如DrScheme,狡诈,开局。

许多编程语言具有不同的实现,但在一定的语言的所有实现应该实现(即,编译)完全相同的方言。这是最简单的,如果有语言的一个明确的官方规格,如对于方案的情况。当然,大多数语言规范要经过很多版本,所以不同的实现方式可以支持不同版本的语言。

对于Java,有来自Sun,甲骨文,IBM实现,我认为一个其他

其他提示

这是的实施的语言装置的任何程序,运行或编译该特定语言。

在方案具体,这是一个很好的问题,因为已经出现了语言规范的多次重大修改。除此之外,还有很多是被称为计划语言(包括原来的计划!)不遵循任何规格的完全。对HTDP的初学者语言是小,为了一点点的限制有关的问题是如何解决的(和其他原因可能)。在GIMP直到最近使用非标准Scheme解释称为SIOD(计划在一个defun定义或计划在一天)。还有许多其他的例子;例如参见方言方案了解PLT的计划我们以语言标准的支持。

实现是特定供应商的版本/产品,器械(符合,提供等)一定标准(类接口,API,语言规范,等等)。

为了使这个简单类推理解,无论可口可乐和百事可乐可以被认为是苏打的实现(或者,如果这样,倾斜的流行)。苏打/流行音乐是一个总的概念,和可口可乐和百事可乐是符合这一概念的特定产品。

类似地,的Mac OS X和Linux是单一UNIX标准的两个实现。在GNU C ++编译器和英特尔C ++编译器是C ++编程语言的实现。在Sun Java 6 JDK,OpenJDK的,和GNU Java编译器(GCJ)是Java的所有实现。

在Java中,你很快就会发现,单词“工具”被用作当一个类提供了一个功能的具体定义在接口中声明的关键词,因为,通过提供具体的定义,类实现的要求一般概念的实施由接口。

我希望帮助改善你的“实施”的含义理解。

实现是一个编译器或解释为一种编程语言;它是对语言的指令转化为行为的方式。有多种实现目前最常用的语言可能是JavaScript的。

当人们谈论实现方式中,它常常在具有处理从具有多个的出现的问题的上下文中的。有好处 - 你最喜欢的人会做的事情,你的方式一样 - 但问题可能是令人沮丧的。由于Chrome和Firefox和IE浏览器和Safari浏览器的行为都略有不同与相同的JavaScript代码,Web开发人员必须花费的大量时间在不同的浏览器测试他们的代码,检测你使用哪一个,和调整代码到稍微不同的集库,臭虫,的等

一些语言是由标准执行(红宝石,PERL,Python的),而不是由文件,这就是为什么你不听这些的多种实现的定义。即使在这些语言必须具有不同行为的各种版本的相关问题。

实现不是一个新现象:早在他的高中时代,比尔·盖茨得到了他的许多基本实现开始写一个,例如:

是什么让比其他语言更糟糕的流程式的问题是,规范是有意小 - 尝试指定很少。好处是人谁设计的编程语言能够相对快速地创建一个新的实验方案的实施与整齐的新属性。一旦他们做到了这一点,他们可以声称,即使他们已经写了小语种是“有用的”,因为其他人已经表明了如何将小语种扩展到有益的。然而,工作在“编程的简单的事情”了很多,每个实现必须自己作出很多决定,所以实现之间的差异有很多大。因此有多种实现相关的问题有很多,大的方案相比,更充分地指定的语言。

在计划社会承认的问题,用小规格的利益一起,并正在积极研究如何使从实验语言有用的语言与标准的新版本更清晰的过渡。    http://scheme-reports.org/

现在(2010年),我个人建议新用户开始PLT的计划工作,我很高兴你在那里开始。不要让许多实现问题吓唬你:有利于在编程语言的设计者专为他们自己的语言工作很大。 PLT有一个庞大的社区和良好的组库,这将帮助你克服上述困难的。

最佳, GREM

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top