Cita:
Aquí pongo la "versión oficial", objetiva y sin opiniones:
Iniciado por X.Cyclop
[Algo de bueno tiene wikipedia]
VB - Alto nivel:
Asm - Casi lenguaje de máquina:
VB - Alto nivel:
Asm - Casi lenguaje de máquina:
Bajo nivel: Ensambladores.
Alto nivel: Los demás.
Ahora bien, se añade un nivel intermedio para C (y la parte de C++ que hereda de C), dado que permite código como-ensamblador, punteros, etc:
Bajo nivel: Ensambladores.
Medio nivel: C y alguno similar.
Alto nivel: Los demás
Pero además, añadimos el "muy alto" nivel, que hace referencia a lenguajes que comienzan a abstraer su código de la plataforma, normalmente con una máquina virtual o framework. Por tanto:
Bajo nivel: Ensambladores.
Medio nivel: C y alguno similar.
Alto nivel: Los demás.
Muy alto nivel: C#, Java y similares.
Hay excepciones: C++ tiene Bajo nivel por soportar ensamblador, también Medio nivel porque viene heredado de C.
Pero también tiene POO, programación genérica, IDEs que ayudan a construir la GUI como Visual Basic... y por tanto es también Alto nivel.
Ahora bien, no llega al Muy alto nivel porque no usa ni framework ni máquina virtual o alguna cosa similar (que sin duda podrían fabricarse para él también).
Así hay otras excepciones: C# puede usar en zonas no-seguras los punteros a memoria. Algunos ensambladores tienen rutinas que convierten expresiones sencillas tipo C a ensamblador, por lo que ya no es puro código máquina, etc.
Creo que con esta explicación queda clara a las personas iniciadas la "teoría" general. Seguramente todo lo que he dicho no sea verdad, pero más o menos, así funciona la clasificación.