分布式计算需要两种语言吗? [英] Do I need two languages for distributed computing?

查看:65
本文介绍了分布式计算需要两种语言吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在寻找有关C ++和CORBA的信息时遇到了这个问题:
http://www.zeroc.com/ice.html 。这让我想知道为什么我需要两种不同的语言才能编写分布式计算应用程序。在CORBA的

情况下,这意味着IDL和C ++。在ICE的情况下,这意味着

切片和C ++。 Slice实际上看起来比C ++更接近C ++。

尽管如此,我想知道C ++中是否存在一些基本限制

这使得它无法在情境中使用其中使用了这些接口定义

语言。对此有何想法?


如果我理解正确,分布式操作系统服务是C ++旨在解决的主要工程领域。

-

如果我们的假设是关于任何事情而不是关于某一个或多个特定事物,那么我们的推论就构成了数学。因此,数学可能被定义为我们永远不知道我们所讨论的是什么,以及我们所说的是否属实的主题.- Bertrand Russell

解决方案

Steven T. Hatton写道:

我在寻找有关C ++和CORBA的信息时遇到了这个问题:
< a rel =nofollowhref =http://www.zeroc.com/ice.htmltarget =_ blank> http://www.zeroc.com/ice.html 。它让我想知道为什么我需要两种不同的语言来编写分布式计算应用程序。在CORBA的情况下,这意味着IDL和C ++。在ICE的情况下,这意味着切片和C ++。 Slice实际上看起来比IDL更接近C ++。
尽管如此,我想知道C ++中是否存在一些基本限制,这使得它无法在这些界面定义的情况下使用
使用语言。有什么想法吗?


基本限制你问的是一个简单的特征

过于通用了。你_can_ define" interfaces"在C ++中,只有它可能是_ b $ b可能是_less_efficient_而不是专门设计的语言*

这样做。

如果我正确理解,分布式操作系统服务是C ++旨在解决的主要工程领域。




C ++并不是为解决_any_特定工程领域而设计的。这是

旨在解决各种各样的工程问题。


V


Victor Bazarov写道:

Steven T. Hatton写道:

我在寻找有关C ++和CORBA的信息时遇到了这个问题:
http://www.zeroc.com/ice.html 。它让我想知道为什么我需要两种不同的语言来编写分布式计算应用程序。在CORBA的情况下,这意味着IDL和C ++。在ICE的情况下,这意味着切片和C ++。 Slice实际上看起来比IDL更接近C ++。
尽管如此,我想知道C ++中是否存在一些基本限制,这使得它在这些接口定义的情况下无法使用
语言被使用。对此有何看法?



基本限制你问的是一个过于通用的简单特征。你_can_ define" interfaces"在C ++中,只有它可能是_less_efficient_而不是使用专门设计的语言*
来做到这一点。




那种提出问题。这意味着有一些功能可以使用专门的语言来提供C ++所缺乏的功能。这些是什么?

接口定义通常不直接编译成源代码。

它们通常在某些实现中被翻译成存根和骨架

语言(例如作为C ++),存根和骨架然后用

实现目标语言。这意味着最终计划的效率

可能不是一个激励因素。优点是设计

时间。


这主要是界面语言的一个禁止功能吗?也就是说,界面语言中的
你不能使用会损害界面设计的功能,因为这些功能不属于

语言。

如果我理解正确,分布式操作系统服务是C ++旨在解决的主要工程领域。



C ++并不是为解决_any_特定工程领域而设计的。它旨在解决各种各样的工程问题。

V




如果主要是我想说C ++是

,主要用于解决分布式操作系统领域

设施。

http://www.research.att。 com / ~bs / bs_faq.html#why

问:你为什么要发明C ++?

A:我想编写有效的系统程序鼓励的风格

Simula67。为此,我添加了更好的类型检查设备,数据,b
抽象,以及面向对象的编程C.特定项目

促使这项工作与分配操作系统

整个网络的设施。更一般的目标是设计一种语言

,其中我可以编写既高效又优雅的程序。许多

语言迫使您在这两种选择之间做出选择。


导致我开始设计和实现C ++的具体任务

(最初称为C with Classes)与

分布式操作系统的设计有关。


你可以找到更多详细解释在设计和演变中

C ++。


-

如果我们的假设是关于任何事情的话不是某一个或多个特定的东西,然后我们的推论构成数学。因此,数学可能被定义为我们永远不知道我们所讨论的是什么,以及我们所说的是否属实的主题.- Bertrand Russell


" Steven T. Hatton"写道:


[snip]
"导致我开始设计和实现C ++的具体任务(最初称为C with Classes)与分布式操作系统的设计有关。




和?

BS因为遇到问题而开始开发C ++设计了一个

分布式操作系统。这并不意味着C ++被设计为
来解决分布式操作系统问题。实际上*标准C ++ *为现在使用的
,小心避免*任何*操作系统特定问题。


-

Karl Heinz Buchegger
kb******@gascad.at


I came across this while looking for information on C++ and CORBA:
http://www.zeroc.com/ice.html. It got me to wondering why I need two
different languages in order to write distributed computing apps. In the
case of CORBA, that means IDL and C++. In the case of ICE, that means
slice and C++. Slice actually looks a lot closer to C++ than does IDL.
Nonetheless, I''m wondering if there is some fundamental limitation in C++
which precludes its use in the situations where these interface definition
languages are used. Any thoughts on this?

If I understand correctly, distributed operating system services is the
primary engineering domain C++ was designed to address.
--
If our hypothesis is about anything and not about some one or more
particular things, then our deductions constitute mathematics. Thus
mathematics may be defined as the subject in which we never know what we
are talking about, nor whether what we are saying is true.-Bertrand Russell

解决方案

Steven T. Hatton wrote:

I came across this while looking for information on C++ and CORBA:
http://www.zeroc.com/ice.html. It got me to wondering why I need two
different languages in order to write distributed computing apps. In the
case of CORBA, that means IDL and C++. In the case of ICE, that means
slice and C++. Slice actually looks a lot closer to C++ than does IDL.
Nonetheless, I''m wondering if there is some fundamental limitation in C++
which precludes its use in the situations where these interface definition
languages are used. Any thoughts on this?
The "fundamental limitation" you''re asking about is a simple trait of
being too generic. You _can_ define "interfaces" in C++, only it''s gonna
be probably _less_efficient_ than with a language *specifically designed*
to do that.
If I understand correctly, distributed operating system services is the
primary engineering domain C++ was designed to address.



C++ wasn''t designed to address _any_ specific engineering domain. It was
designed to address a broad variety of engineering problems.

V


Victor Bazarov wrote:

Steven T. Hatton wrote:

I came across this while looking for information on C++ and CORBA:
http://www.zeroc.com/ice.html. It got me to wondering why I need two
different languages in order to write distributed computing apps. In the
case of CORBA, that means IDL and C++. In the case of ICE, that means
slice and C++. Slice actually looks a lot closer to C++ than does IDL.
Nonetheless, I''m wondering if there is some fundamental limitation in C++
which precludes its use in the situations where these interface
definition
languages are used. Any thoughts on this?



The "fundamental limitation" you''re asking about is a simple trait of
being too generic. You _can_ define "interfaces" in C++, only it''s gonna
be probably _less_efficient_ than with a language *specifically designed*
to do that.



That kind of begs the question. It implies there are features that the
specialized language provides which C++ lacks. What are they? The
interface definitions are typically not directly compiled into source code.
They are usually translated into stubs and skeletons in some implementation
language (such as C++), and the stubs and skeletons are then implemented in
the target language. That means efficiency of the resulting program
probably isn''t a motivating factor. The advantages would be at design
time.

Is this primarily a prohibitive feature of the interface language? That is,
in the interface language you cannot use features which would compromise
the proper design of the interface because those features are not part of
the language.

If I understand correctly, distributed operating system services is the
primary engineering domain C++ was designed to address.



C++ wasn''t designed to address _any_ specific engineering domain. It was
designed to address a broad variety of engineering problems.

V



If "primarily" is taken to mean "in the first place", I would say C++ was
primarily designed to address the area of distributed operating system
facilities.

http://www.research.att.com/~bs/bs_faq.html#why
Q:Why did you invent C++?
A:"I wanted to write efficient systems programs in the styles encouraged by
Simula67. To do that, I added facilities for better type checking, data
abstraction, and object-oriented programming to C. The particular projects
that prompted this work had to do with distributing operating system
facilities across a network. The more general aim was to design a language
in which I could write programs that were both efficient and elegant. Many
languages force you to choose between those two alternatives.

"The specific tasks that caused me to start designing and implementing C++
(initially called "C with Classes") had to do with the design of a
distributed operating system.

"You can find more detailed explanations in The Design and Evolution of
C++."

--
If our hypothesis is about anything and not about some one or more
particular things, then our deductions constitute mathematics. Thus
mathematics may be defined as the subject in which we never know what we
are talking about, nor whether what we are saying is true.-Bertrand Russell


"Steven T. Hatton" wrote:

[snip]
"The specific tasks that caused me to start designing and implementing C++
(initially called "C with Classes") had to do with the design of a
distributed operating system.



And?
BS started to devlop C++ because he had problems with the design of an
distributed operating system. That does not mean that C++ was designed
to address distributed operating systems. In fact *standard C++* as
it is in use today, carefully avoids *any* operating system specific issues.

--
Karl Heinz Buchegger
kb******@gascad.at


这篇关于分布式计算需要两种语言吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆