Fundamentos de lenguajes de programación

 Un lenguaje de programación es un lenguaje, con reglas gramaticales bien definidas que le permiten a un programador la capacidad de escribir una serie de instrucciones con el fin de controlar el comportamiento de un sistema informático, de forma que se obtenga alguna clase de datos o ejecutar ciertas tareas. Al conjunto de instrucciones escritas con algún lenguaje de programación se le denomina programa informático.


Programar es el proceso de crear un programa informático fiable mediante la escritura, prueba, depuración, compilación o interpretación y mantenimiento de dicho programa. 


Primero aclaremos estos conceptos.


Prueba: Consiste en observar el funcionamiento esperado del programa, puede ser manual o automática. 

Depuración: Es el proceso de identificación y solución de errores en el programa.

Compilar: Un compilador traduce el código escrito en un lenguaje de programación a código máquina. De una sola pasada por el código y creando un archivo nuevo ejecutable.

Interpretar: Un intérprete es un programa que se encarga de ejecutar línea por línea las instrucciones en un determinado lenguaje.


La diferencia más práctica entre compilador e intérprete es que, el intérprete ejecuta el código en este mismo momento, mientras el compilador lo prepara para su posterior ejecución.



El proceso de desarrollo de un programa es el siguiente:





Los lenguajes están conformados por reglas gramaticales semánticas y sintácticas estrictas, contienen un conjunto de símbolos como su alfabeto.


¿Por qué lenguajes de programación?

Las computadoras sólo entienden código máquina, es decir, 0 y 1. Pero este código es excesivamente complicado para las personas, así que los primeros operadores de máquinas decidieron reemplazar los 0 y 1 por palabras y símbolos, este primer lenguaje es Ensamblador o Assembly. Ensamblador sigue asemejándose bastante al código máquina, pero las palabras y letras siguen siendo más sencillas de recordar que los números.


Posteriormente, llegaron diferentes lenguajes de programación, a estos se les conoce como lenguajes de alto nivel por su similitud sintáctica al lenguaje natural humano.


Luego de Ensamblador, en 1953 se ofreció una propuesta más práctica que Ensamblador: el lenguaje de programación Fortran, el primer lenguaje de alto nivel. En 1960 se creó COBOL, que aún es usado, y finalmente en la década de los 80’ s llegaron los lenguajes de alto nivel implementados en microordenadores con BASIC.


Clasificación de los lenguajes


  • Histórica o por generaciones: 

    • 1ra generación: Directamente en código máquina.

    • 2da generación: Lenguajes simbólicos, simplifican la escritura de instrucciones. Ejm: Ensamblador.

    • 3ra generación: Lenguajes de alto nivel, parecidos al lenguaje humano o matemático. Suelen ser de propósito general, es decir, para todo tipo de funcionalidad. Ejm: C, Fortran, Java, PHP.

    • 4ta generación: Aquellas herramientas que permiten crear aplicaciones sencillas usando piezas prefabricadas. Se puede pensar que estas herramientas no son propiamente dichas lenguajes. Tienen una estructura muy parecida al inglés. Ejm: Visual Basic, SQL.

    • 5ta generación: En ocasiones se les llama así a los lenguajes de inteligencia artificial.

  • Lenguajes de alto y bajo nivel: Entre más cerca se encuentre al lenguaje máquina se le denominará lenguaje de alto nivel, y entre más se acerque al lenguaje humano se le denominará lenguaje de alto nivel.

  • Paradigma: Un paradigma de programación es el método con el cual se estructura y organiza las tareas que debe realizar un programa. Representa un enfoque particular para solucionar un problema. El paradigma más usado es el orientado a objetos (POO).

La mayoría de los paradigmas son variantes de los dos tipos principales de programación, imperativa y declarativa. La programación imperativa consiste en escribir paso por paso cómo hacer un proceso, mientras la declarativa consiste en escribir que hacer. Para aclararlo veamos un ejemplo en Javascript:


Programación imperativa:

let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let greaterThanFive = [];

numbers.forEach((number) => {
    if (number > 5) {
        greaterThanFive.push(number);
    }
});


Programación declarativa:

let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let max5 = numbers.filter((number) => number > 5);


A continuación se encuentran algunas de las variantes de los paradigmas de programación:


  • Programación declarativa: Se describe el problema usando propiedades y reglas que deben cumplirse.

    • Programación funcional: Basado en una definición de predicados. Ejm: Scheme

    • Programación lógica: Basado en la definición de relaciones lógicas. Ejm: Prolog.

    • Programación con restricciones: Similar a la lógica usando ecuaciones.

  • Multiparadigma: Es el uso de dos o más paradigmas para utilizar el que mejor se ajuste al trabajo. Ejm: Python, C++, Javascript 

  • Programación imperativa o por procedimientos: Es el paradigma más usado y antiguo, el ejemplo principal es el código máquina. Los lenguajes puros de este paradigma son: C, Basic y Pascal.

    • POO (Programación orientada a objetos): Basada en el imperativo, encapsula elementos denominados objetos que incluyen variables y objetos. SmallTalk es puro de este paradigma, otros ejemplos de lenguajes que lo representan son: C# y Java

    • Programación dirigida por eventos: La estructura como la ejecución del programa van determinados por sucesos que sucedan en el sistema, definidos por el usuario o por ellos mismos.

  • Familia: Comparten ciertas características como el estilo general de sintaxis que emplean. Habitualmente heredan estas características por inspiración del creador. 

Publicar un comentario

Artículo Anterior Artículo Siguiente