En mi búsqueda por curiosear en la computadora y en Internet, siempre me topé con el interesante concepto de lenguajes de programación, los cuales representaré con chibis de animes:
Agradecimientos al otaku geek que hizo estas imagenes. |
Por lo tanto, hoy decidí darme un tiempo para aprender un poco de qué trata esta comunicación entre computador y programador.
El medio de comunicación
Una de las primeras cosas que debemos de saber de los computadores es que no son los seres más inteligentes en este mundo.Quizá en un futuro una inteligencia artificial me coja de las patas por andar diciendo eso, pero es la verdura. Las computadoras no son brillantes.
Es aquí donde los lenguajes de programación entran a la escena.
Se trata del medio en el cual el programador y el computador se comunican. Curiosamente, y esto es algo que empiezo a entender con mis lecturas, es importante que no solo la computadora entienda la sintáxis de las órdenes que se le envían, sino también que el propio programador entienda.
Esto con fines prácticos: El ciclo de vida de un software es: Diseño, implementación, prueba y mantenimiento de software.
Como imaginarán, los programadores no pueden vivir para siempre. Por lo tanto, el reto de la creación de un lenguaje de programación va por ambos lados: que la compu lo entienda y que cualquier persona con conocimiento del lenguaje pueda manipular dicho código (1).
Diferentes niveles
Se puede clasificar los lenguajes de programación de acuerdo a su nivel de abstracción. ¿Cuán lejanos son al lenguaje de la máquina?En esta simpática pirámide (2) encontramos que un lenguaje como Assembly es mucho más cercano al lenguaje de la máquina y al hardware que C o C++.
A partir de ello es que se puede clasificar los lenguajes de programación de la siguiente manera:
Low-level languages: Este tipo de lenguaje de programación es el más cercano al nivel de máquina. Son conocidos por ser rápidos y eficientes a nivel de memoria, pero estando tan cerca a la máquina, imaginarán que es un desequilibrio de cabeza tratar de mantenerlos. Lo sé porque alguna vez me interesé en hacer un sistema operativo (aún no lo descarto) y chequeé un rato Assembly y lloré internamente.
Middle-level languages: Esta clasificación es algo que no veo habitualmente en las discusiones de lenguajes de programación. Se trata de un puente entre lenguaje de máquina y la parte programable de un sistema computacional. Se considera que Java y C son ejemplos de este tipo de lenguaje (3).
High-level languages: Entramos al reino de lo abstracto. En esta categoría, ya estamos varias capas arriba del hardware. Esto llega incluso a afectar el rendimiento de estos lenguajes. Ruby es un ejemplo de esta categoría.
Vale la pena leer.
No hay comentarios:
Publicar un comentario