Lenguajes de Programación: Clasificación, Criterios de Calidad y Proceso de Traducción
Clasificado en Informática
Escrito el en español con un tamaño de 4,63 KB
Clasificación de los Lenguajes de Programación Según su Nivel de Abstracción
Lenguaje Máquina
El lenguaje máquina es el código directamente inteligible por la máquina (la CPU). Se compone de instrucciones binarias (ceros y unos).
- Ventajas: Permite cargar programas sin necesidad de traducción, máxima velocidad de ejecución.
- Inconvenientes: Extrema complejidad de escritura y depuración, alta probabilidad de errores, no portable (depende del hardware).
Lenguaje Ensamblador
El lenguaje ensamblador es una representación simbólica del lenguaje máquina. Sustituye los códigos de operación binarios por mnemotécnicos (símbolos más fáciles de recordar). Cada instrucción ensamblador se traduce generalmente a una instrucción en código máquina.
Instrucción -> código dirección
- Ventajas: Más rápido que los lenguajes de alto nivel, uso eficiente de la memoria, acceso directo al hardware.
- Inconvenientes: Requiere muchas instrucciones para tareas simples, programas fuente grandes, riesgo de afectar recursos inadvertidamente, no portable, necesidad de personal muy especializado.
Lenguaje de Alto Nivel
Los lenguajes de alto nivel ofrecen un mayor nivel de abstracción. El programador se concentra en la lógica del programa, sin preocuparse por los detalles de la arquitectura de la máquina.
- Ventajas: Mayor abstracción, portable (independiente del hardware), código más fácil de modificar y depurar, menor complejidad, mejor documentación, más fácil de mantener.
- Desventajas: Generalmente más lentos que el lenguaje ensamblador, mayor uso de memoria, menor control directo sobre los recursos de la máquina.
Razones para Estudiar los Lenguajes de Programación
- Mejora la habilidad para desarrollar algoritmos eficientes.
- Mejora el uso del lenguaje de programación que ya se conoce.
- Aumenta el conocimiento del vocabulario relacionado con la programación.
- Permite elegir el lenguaje más adecuado para cada tarea.
- Facilita el aprendizaje de nuevos lenguajes.
Criterios de Calidad de un Lenguaje de Programación
- Claridad y sencillez: Debe tener un número limitado de conceptos con reglas de combinación sencillas y claras.
- Naturalidad para la aplicación: Debe proporcionar herramientas y una sintaxis adecuadas al tipo de problemas que se van a resolver.
- Soporte a la abstracción: Debe permitir la definición y uso de estructuras de datos y operaciones complejas de forma abstracta.
- Facilidad para verificar: Debe facilitar la verificación formal y la depuración de programas.
- Entorno de programación: Un buen entorno (editores, depuradores, etc.) facilita el trabajo con el lenguaje.
- Portabilidad: Debe ser posible ejecutar los programas en diferentes plataformas (sistemas operativos, hardware).
- Coste de uso: Considerar los costes de ejecución, traducción, creación y mantenimiento de programas.
Etapas del Proceso de Traducción (Compilación)
Pasos de un Compilador Estándar
- Análisis del programa fuente: Se divide en análisis léxico, sintáctico y semántico.
- Generación de código objeto: Se traduce el programa fuente a código intermedio o directamente a código máquina.
Compilador Optimizado para Velocidad de Compilación
- Según se analiza el código fuente, se va convirtiendo directamente en código objeto (análisis y generación entrelazados).
Compilador Optimizado para Velocidad de Ejecución
- Análisis del programa fuente: Similar al compilador estándar.
- Optimización: Se reescribe el programa fuente (o una representación intermedia) de forma más eficiente.
- Generación de código objeto: Se traduce el programa optimizado a código máquina.
Importancia de la Gramática Formal
- El usuario puede consultarla para resolver dudas sobre la sintaxis del lenguaje.
- El programador puede usarla para conocer todas las construcciones permitidas en el lenguaje.
- Ayuda a eliminar ambigüedades y diferencias sintácticas entre distintas implementaciones de un lenguaje.