¿Qué son los niveles de abstracción?
IA
En programación, el término nivel de abstracción se refiere al parecido que tiene un lenguaje de programación con un lenguaje natural.
A mayor nivel de abstracción, el lenguaje será más parecido a un lenguaje natural. Lo cual lo hace más comprensible para los humanos.
A menor nivel de abstracción, el lenguaje será más parecido al lenguaje máquina. Lo cual lo hace más comprensible para las computadoras.
Los más común es querer alcanzar la sintaxis del idioma inglés. Aunque hay lenguajes de programación que son más visuales, como Scratch.
Ventajas y desventajas
Cada tipo de lenguaje tiene sus pros y sus contras:
Nivel | Ventajas | Desventajas |
---|---|---|
Alto |
|
|
Bajo |
|
|
Ejemplo
Aquí hay dos ejemplos de código para imprimir 10 números en la consola.
Lenguaje de alto nivel (Python):
for i in range(10): print(i)
Lenguaje de bajo nivel (Ensamblador):
section .data msg db '%d', 0
section .bss res resb 1
section .text global _start
_start: mov ecx, 0 ; Inicializar contador a 0
print_loop: mov eax, ecx ; Mover el valor de contador a eax add eax, '0' ; Convertir a carácter mov [res], eax ; Almacenar en res mov eax, 4 ; Llamada al sistema para escribir mov ebx, 1 ; File descriptor (stdout) mov edx, 1 ; Número de bytes a escribir int 0x80 ; Interrupción del sistema inc ecx ; Incrementar contador cmp ecx, 10 ; Comparar con 10 jl print_loop ; Si es menor, saltar a print_loop
mov eax, 1 ; Llamada al sistema para salir xor ebx, ebx ; Estado de salida int 0x80 ; Interrupción del sistema
Lista de lenguajes
Aquí hay una lista de los lenguajes más conocidos y su nivel:
Lenguaje de Programación | Nivel |
---|---|
Assembler (Ensamblador) | Bajo Nivel |
C | Bajo Nivel / Medio |
C++ | Alto Nivel |
Java | Alto Nivel |
Python | Alto Nivel |
JavaScript | Alto Nivel |
Ruby | Alto Nivel |
PHP | Alto Nivel |
C# | Alto Nivel |
Swift | Alto Nivel |
Go | Alto Nivel |
Rust | Alto Nivel |
Kotlin | Alto Nivel |
TypeScript | Alto Nivel |
Perl | Alto Nivel |
Haskell | Alto Nivel |
Scala | Alto Nivel |
Dart | Alto Nivel |