C# 或 Java 类型语言的技术术语是什么?

发布于 2024-07-07 09:18:45 字数 241 浏览 9 评论 0原文

这可能是一个非常简单的问题,但是这类语言的技术术语是什么?

它们使用通过 JVM 或 CLR 发送的“中间”汇编类型语言。 它们都是面向对象的,并且都依赖于诸如 Java 虚拟机或公共语言运行时之类的中介来编译为本机机器语言。

与 Asm/C/C++ 不同,它们不直接编译为本机机器语言,并且需要大量的内存分配知识。 他们都使用垃圾收集。

是否有一个技术术语将 Java 和 C# 与 C++ 分开?

This is probably a very simple question, but what is the technical term for this class of language?

They use an "intermediate" assembly type language which is sent through the JVM or CLR. They both are object oriented and they both depend on an intermediary such as the Java Virtual Machine or the Common Language Runtime to compile into native machine laguage.

Unlike Asm/C/C++ they don't compile directly into native machine language and require intensive memory allocation knowledge. They both use garbage collection.

Is there a technical term which seperates Java and C# from C++?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

最近可好 2024-07-14 09:18:45

C++ 和 .NET/Java 之间的一个关键区别是自动回收不再需要的内存。 这称为垃圾收集。 对于此属性,它们被称为托管平台。

Java/.NET 都将字节码编译为本机代码的时间推迟到最后一刻。 对于此属性,它们被称为JIT 编译(Just In Time)。

C#/Java/C++ 语言被称为命令式、面向对象语言。

.NET 和 Java 中的类型系统只允许可验证的方法调用。 对于此属性,它们被称为静态类型

C#/Java/C++ 是图灵完备,这意味着,在实践中,它们可以产生任何计算。

A key difference between C++ and .NET/Java is the automatic reclaiming of memory that is no longer required. This is known as garbage collection. For this property, they are known as managed platforms.

Both Java/.NET delay the compilation of bytecode into native code until the last minute. For this property they are known as JIT-compiled (Just In Time).

The C#/Java/C++ languages are known as imperative, object-oriented languages.

The type system in both .NET and Java only allows verifiable invocation of methods. For this property they are known as statically typed.

C#/Java/C++ are Turing complete, meaning that, in practice, they can produce any calculation.

旧时模样 2024-07-14 09:18:45

这些语言通常称为“托管”语言。

Those languages are commonly referred to as 'managed' languages.

在梵高的星空下 2024-07-14 09:18:45

中间表示更多地是运行时系统的属性,而不是语言本身的属性。 这些类型的系统通常称为字节码系统。

The intermediate representation is more a property of the runtime system than of the language itself. These types of systems are often called Bytecode systems.

回首观望 2024-07-14 09:18:45

它们有时被称为静态类型托管编程语言。

They are sometimes called statically typed managed programming languages.

玩心态 2024-07-14 09:18:45

自从 Microsoft 推出 .NET 以来,他们开始使用“托管”一词来区分至少在逻辑上运行在虚拟机上的语言和运行在原始金属上的语言。 这个词已经流行起来了。

Since Microsoft came out with .NET, they started using the word "managed" to distinguish between languages that, logically at least, run on a virtual machine, and those that run on the raw metal. The term has mostly caught on.

涫野音 2024-07-14 09:18:45

“托管”或“内存管理”或“垃圾收集”都是可以接受的术语,用于根据内存分配/收集方式来区分它们,尽管第一个可以说是当今最常见的。

至于编译成中间语言(IL),这取决于它们运行的​​虚拟机(VM)如何工作。 在 .NET 中,公共语言运行时 (CLR) VM 在执行之前将 IL 编译为机器代码,这称为即时编译或“JIT 编译”。 其他环境实际上并不将代码编译为机器代码,而是简单地解释它,这要慢得多,这被称为“解释型”语言。

'managed' or 'memory managed' or 'garbage collected' are all acceptable terms to distinguish them in terms of how memory is allocated/collected, though the first is arguably the most common nowadays.

As for compiling to an intermediate language (IL), it depends on how the virtual machine (VM) they run on works. In .NET the common language runtime (CLR) VM compiles the IL to machine code just before it executes, which is known as just-in-time compilation, or 'JIT compilation'. Other environments don't actually compile the code to machine code but simply interpret it, which is significantly slower, and this is known as an 'interpreted' language.

春风十里 2024-07-14 09:18:45

我相信它将是托管语言。

I believe it would be managed languages.

塔塔猫 2024-07-14 09:18:45

这取决于,如果您谈论的是它们在虚拟机上运行的事实,那么它们被视为 JIT 编译(即时)或字节码(逻辑上 1/2 编译和 1/2 解释)。

如果您谈论的是垃圾收集,那么它们简称为垃圾收集。

这里的关键点是这两个属性是分开的,垃圾收集语言不必具有虚拟机,并且基于虚拟机的语言不必进行垃圾收集。

例如,Python 是一种具有垃圾收集功能的解释性语言,但它是解释性的,而不是在虚拟机上运行。

It depends, if you are talking about the fact they run on a virtual machine then they are regarded as JIT-compiled (Just-In-Time) or bytecode (logically 1/2 compiled and 1/2 interpreted).

If you are talking about the garbage collection then they are simply referred to as garbage collected.

The key point here is the two attributes are separate, a garbage collected language does not have to have a virtual machine and a virtual machine based language does not have to be garbage collected.

As an example Python is an interpreted language which has garbage collection, but it is interpreted as opposed to running on a virtual machine.

吾家有女初长成 2024-07-14 09:18:45

中间“字节码”表示只是一个实现细节。 C++ 可以编译为 ANDF(架构中性分布格式)。 P 代码曾经非常流行。 另一方面,JavaCards通常是分布式的,没有运行中间形式的能力,并且存在直接机器代码Java编译器。

C++ 可以被垃圾收集。 这在 C++0x 中应该更明确。 实时 Java 限制了实时线程的内存使用。

因此,Java/C# 类型语言的术语是:Java 方言。

(Java 是 Sun Microsystems 的商标,JavaScript 也是如此。)

Intermediate "bytecode" representation is just an implementation detail. C++ can be compiled to, say, ANDF (Architecture Neutral Distribution Format). P-code used to be really popular. On the other hand, JavaCards are generally distributed without the ability to run the intermediate form, and there exists direct to machine code Java compilers.

C++ can be Garbage Collected. That should be more explicit in C++0x. Real-Time Java has restricted memory use for real-time threads.

So, a term for Java/C# type languages: Java dialects.

(Java is a trademark of Sun Microsystems, so is JavaScript.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文