Algoritmos, Programas y Lenguajes de Programación: Conceptos Clave

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,27 KB

Conceptos Fundamentales de Algoritmos y Programación

Un algoritmo es una secuencia precisa de operaciones (pasos) que resuelven un problema. Un programa es la transcripción de un algoritmo en un lenguaje de programación, que puede ser procesado por una computadora, controlando su funcionamiento para resolver un problema.

Las instrucciones deben proporcionarse en un lenguaje que la computadora pueda comprender. Las computadoras utilizan un lenguaje llamado "lenguaje máquina" o "código máquina", que es difícil tanto de escribir como de corregir. Por eso, en la práctica, se emplean lenguajes más parecidos al lenguaje humano, llamados "lenguajes de alto nivel". Normalmente, estos son muy similares al idioma inglés, aunque siguen reglas mucho más estrictas.

Tipos de Lenguajes de Programación

Lenguaje Máquina

Solo son entendidos por la computadora, ya que sus instrucciones son cadenas binarias. Sus inconvenientes incluyen la dificultad de codificación, baja fiabilidad, gran dificultad para verificar y poner a punto, y solo son ejecutables en el procesador específico para el que fueron creados.

Lenguaje de Bajo Nivel (Ensamblador)

Dependen de la máquina donde se ejecutan y son difíciles de programar, aunque más fáciles de codificar que el lenguaje máquina. Un ejemplo es Assembler.

Lenguajes de Alto Nivel

Son independientes de la máquina (no dependen del diseño del hardware) y son muy portables. Son más fáciles de programar y entender, con una sintaxis más cercana al lenguaje humano que a la máquina. Sus inconvenientes son un mayor tiempo de ejecución y que no se aprovechan eficientemente los recursos internos de la máquina. Ejemplos: C, C++, Visual Basic, Java, Pascal, etc.

Proceso de Traducción: Compiladores e Intérpretes

Las órdenes que escribimos (el "programa fuente") deben convertirse a lo que el ordenador comprende (el "programa ejecutable").

  • Ensambladores: Si elegimos un lenguaje de bajo nivel, como el ensamblador (Assembly, abreviado como Asm), la traducción es sencilla. Las herramientas que realizan esta traducción se llaman ensambladores.
  • Compiladores: Cuando el lenguaje empleado es de alto nivel, la traducción es más compleja, y puede implicar recopilar varios fuentes o incluir bibliotecas. Las herramientas encargadas de esto son los compiladores. El programa ejecutable obtenido con el compilador puede funcionar en otra computadora similar sin necesidad de que tenga instalado el compilador.
  • Intérpretes: Son herramientas similares a un compilador, pero no crean un "programa ejecutable" independiente. Si queremos distribuir el programa, debemos entregar el programa fuente y el intérprete. El intérprete convierte el programa de alto nivel a código máquina, orden por orden, justo en el momento de la ejecución. Ejemplos: Python, Ruby y PHP.

Lenguajes con Máquina Virtual

Existen lenguajes que no se compilan a un ejecutable específico, sino a un ejecutable "genérico" que funciona en distintos tipos de ordenadores, siempre que exista una "máquina virtual" capaz de entenderlo. Esta es la idea de Java: los fuentes (ficheros .java) se compilan a ficheros .class, que pueden ejecutarse en cualquier ordenador con una "máquina virtual Java". C# sigue una idea similar.

Características de un Buen Programa

  • Programa: Algoritmo traducido a un lenguaje de programación, ejecutable por un ordenador.
  • Programación: Elaboración de un programa que sea:
    • Correcto: Hace lo que debe hacer, con especificaciones claras de datos y acciones. Debe ser documentado y probado.
    • Eficiente: Consume la menor cantidad de recursos (tiempo y/o memoria) posible.
    • Claro: La claridad y legibilidad facilitan el mantenimiento del software.
    • Modular: La subdivisión en subprogramas (módulos) reduce la complejidad y facilita la reutilización del código.

Entradas relacionadas: