ventajas sharp programacion lenguaje ejemplos desventajas descargar caracteristicas antecedentes c# java programming-languages naming

sharp - lenguaje de programacion c# ejemplos



¿Cuál es el término técnico para C#o lenguajes tipo Java? (9)

A veces se denominan lenguajes de programación gestionados de tipo estático.

Esta es probablemente una pregunta muy simple, pero ¿cuál es el término técnico para esta clase de lenguaje?

Usan un lenguaje de tipo ensamblaje "intermedio" que se envía a través de JVM o CLR. Ambos están orientados a objetos y ambos dependen de un intermediario como la Máquina Virtual Java o el Common Language Runtime para compilar en el lenguaje de máquinas nativas.

A diferencia de Asm / C / C ++, no compilan directamente en el lenguaje nativo de la máquina y requieren un conocimiento intensivo de asignación de memoria. Ambos usan recolección de basura.

¿Hay un término técnico que separe Java y C # de C ++?


Creo que serían idiomas administrados.


Depende, si se está hablando del hecho de que se ejecutan en una máquina virtual, entonces se los considera JIT-compiled (Just-In-Time) o bytecode (lógicamente 1/2 compilado y 1/2 interpretado).

Si está hablando de la recolección de basura, entonces simplemente se los conoce como basura recolectada.

El punto clave aquí es que los dos atributos están separados, un lenguaje recogido de basura no tiene que tener una máquina virtual y un lenguaje basado en máquina virtual no tiene que ser basura.

Como ejemplo, Python es un lenguaje interpretado que tiene recolección de elementos no utilizados, pero se interpreta en lugar de ejecutarse en una máquina virtual.


Desde que Microsoft salió con .NET, comenzaron a usar la palabra "administrado" para distinguir entre lenguajes que, al menos lógicamente, se ejecutan en una máquina virtual y aquellos que se ejecutan en el metal en bruto. El término en general se ha puesto de moda.


Esos idiomas se conocen comúnmente como idiomas "administrados".


La representación de "bytecode" intermedio es solo un detalle de implementación. C ++ se puede compilar, por ejemplo, ANDF (Formato de distribución neutral de arquitectura). El código P solía ser muy popular. Por otro lado, las JavaCards se distribuyen generalmente sin la capacidad de ejecutar la forma intermedia, y existen compiladores Java de código directo.

C ++ puede ser basura recolectada. Eso debería ser más explícito en C ++ 0x. Java en tiempo real tiene uso restringido de memoria para hilos en tiempo real.

Por lo tanto, un término para los idiomas de tipo Java / C #: dialectos de Java.

(Java es una marca registrada de Sun Microsystems, también lo es JavaScript).


La representación intermedia es más una propiedad del sistema de tiempo de ejecución que del lenguaje en sí. Estos tipos de sistemas a menudo se llaman sistemas Bytecode .


''administrado'' o ''administrado por memoria'' o ''basura recolectada'' son todos términos aceptables para distinguirlos en términos de cómo se asigna / recolecta la memoria, aunque el primero es posiblemente el más común hoy en día.

En cuanto a la compilación en un lenguaje intermedio (IL), depende de cómo funciona la máquina virtual (VM) en la que se ejecutan. En .NET, la máquina virtual Common Language Runtime (CLR) compila el IL al código máquina justo antes de que se ejecute, lo que se conoce como compilación justo a tiempo, o ''JIT compilation''. En realidad, otros entornos no compilan el código en código máquina, sino que simplemente lo interpretan, lo que es significativamente más lento, y esto se conoce como un lenguaje "interpretado".


Una diferencia clave entre C ++ y .NET / Java es la recuperación automática de memoria que ya no es necesaria. Esto se conoce como recolección de basura . Para esta propiedad, se conocen como plataformas administradas .

Ambos Java / .NET retrasan la compilación de bytecode en código nativo hasta el último minuto. Para esta propiedad, se los conoce como JIT-compiled (Just In Time).

Los lenguajes C # / Java / C ++ se conocen como lenguajes imperativos, orientados a objetos .

El sistema de tipos en .NET y Java solo permite la invocación de métodos verificables. Para esta propiedad se los conoce como tipados estáticamente .

C # / Java / C ++ están completos , lo que significa que, en la práctica, pueden producir cualquier cálculo.