
Lenguaje de programación, compiladores, lenguajes intérpretes
Introducción
¡Bienvenida y bienvenido! En esta clase conceptualizaremos qué es un lenguaje programación, aprenderás sobre cuáles son los lenguajes de programación que han existido a través del tiempo, y cómo están divididos estos tipos de lenguaje.
Y como para toda comunicación es necesario tener una estructura, es importante entender la conceptualización sobre qué es un compilador y un intérprete, la comprensión de este conocimiento te permitirá en clases posteriores trabajar con la semántica necesaria para el desarrollo de líneas de programación.
Es muy importante para el área de programación tener una comprensión teórica de estos conceptos para tener una visión de todo lo que puedes lograr comprendiendo qué es un lenguaje de programación y la interacción con un compilador o con un intérprete, la comunicación entre ellos permite que finalmente puedan generar un resultado para la comprensión humana, a través de la ejecución de comandos (palabras reservadas) para lograr una señal o un mandato en un dispositivo.
Todo lo que utilizas hoy día en tu móvil está hecho en un lenguaje de programación, las redes sociales e inclusive el sitio en el que estas leyendo en este momento, está creado con un lenguaje de programación.
En la era de digital en la que vivimos, es imprescindible el conocimiento de cómo funciona una indicación para un dispositivo que estas manejando y esas indicaciones pueden lograrse a través del lenguaje de programación, en nuestro curso estaremos trabajando con lenguaje de programación C.
Sin más, comencemos a trabajar, espero que esta primera vista al mundo de programación te llene de expectativas amplias de lo que deseas lograr. ¡Abramos nuestra mente!
Desarrollo del tema
Lenguaje de Programación
Historia de los lenguajes de programación
Introduciéndonos un poco en la historia de lenguajes de programación, se le imputa a un inventor de Francia llamado Joseph Marie Jacquard como el primero en crear un sistema de instrucciones, este inventor de los años 1800 comenzó a utilizar una tarjeta perforada en la que introdujo diseños para un telar, el telar leía el código de la tarjeta e imprimía el diseño escrito en ella, el que el diseño estuviera escrito en una tarjeta permitía que cualquiera con un telar pudiera utilizar el diseño y esto optimizaba el procesos de tejido idénticos.
Posteriormente por 1812, el matemático Charles Babbage diseño una máquina que hacía cálculos matemáticos automáticos, el diseño de esta máquina la realizo basado en trabajos previos de Blaise Pascal y Gottfried Leibniz quienes habían realizado también algunas máquinas calculadoras, mejoro los diseños de Pascal y Leibniz quitando la parte tediosa que tenían las personas encargadas de la compilación de las tablas matemáticas de esa época.
Por 1843 se le apropia a Ada Lovelace como la creadora del primer algoritmo para la máquina de Babbage, Lovelace tradujo los escritos de Luigi Menabrea matemático italiano, mientras realizaba este trabajo de traducción, a mano creo este primer algoritmo, la intensión de esta traducción era calcular la serie de números de Benoulli con la máquina de Babbage.
1936, Alan Turing (matemático, lógico y filosofo), llamado también padre de la computación, creo La máquina de Turing. Turing demostró que esta máquina era capaz de resolver cualquier problema matemático que pudiera representase a través de un algoritmo. Introdujo el concepto de máquina universal, esta máquina era capaz de leer de una cinta un programa y simular su comportamiento en otra cinta, todo este trabajo llevo a la idea de almacenamiento programas almacenados en memoria y compiladores e intérpretes.
John Von Neumann en 1945, creo la máquina ENIAC (Electronic Numerical Integrator And Computer), esta máquina almacenaba en memoria una serie de instrucciones de procesamiento con direccionamiento indirecto. Para 1948, Neumann creo la arquitectura de la primera computadora digital que contenía un conjunto de instrucciones que realizaba saltos, condicionales y direccionamiento indirecto.
Los primeros computadores usaban un conjunto de instrucciones del procesador, las instrucciones eran en código máquina y en código hexadecimal.
El primer lenguaje de nivel más cercano al lenguaje máquina fue el lenguaje ensamblador. Este lenguaje lo utilizo por primera vez la EDSAC (Calculadora Automática de Almacenamiento Diferido Electrónico).
¿Qué es un lenguaje de programación?
Un lenguaje de programación es un conjunto de instrucciones estructuradas, ordenadas y consecutivas que permiten la comunicación entre el humano y un dispositivo.
Para aprender un lenguaje de programación hay dos características importantes en su constitución:
- Sintaxis: es la declaración de palabras reservadas (comandos), símbolos y reglas para estructurar una instrucción.
- Semántica: se refiere al significado de la instrucción para lograr el propósito de lo escrito, es formar la instrucción lógica de la sentencia.
El programador especifica las instrucciones de manera precisa, haciendo uso de palabras reservadas, sintaxis y reglas semánticas para que logren comunicarse el dispositivo y el programador.

Tipos de lenguaje de programación
- Lenguaje máquina. Es una colección de instrucciones en sistema binario (instrucciones por bits 0 y 1). Es el lenguaje que manejan finalmente los dispositivos o máquinas.
- Lenguaje de programación de bajo nivel. Son una colección de instrucciones más fáciles de entender y utilizar que el lenguaje máquina, fue creado para que el ser humano entendiera de forma más rápida las instrucciones, las instrucciones son guardadas de manera ordenada como texto y ejecutadas por el microprocesador, pero antes de llegar al microprocesador el ensamblador las vuelve a convertir a lenguaje máquina para poder procesarlas y controlar el dispositivo o máquina.
- Lenguaje de programación de alto nivel. Estos lenguajes ya utilizan palabras reservadas (palabras de un idioma en particular que funcionan como un comando). Facilitan el entendimiento entre el ser humano y la máquina ya que el ser humano es capaz de memorizar todo un rango de palabras reservadas, sintaxis y semánticas para poder procesar las instrucciones u ordenes que se desean dar para una tarea en específico a un dispositivo o máquina. Estos lenguajes de programación de alto nivel para que puedan llevar la interpretación hasta un lenguaje máquina deben hacer uso de traductores mejor llamados intérpretes o compiladores.
Otra forma de clasificar a los lenguajes de programación es por generaciones:
- Primera generación. lenguaje máquina y ensamblador
- Segunda generación. Fortran, Cobol
- Tercera generación. C, Pascal
- Cuarta generación. Nace el software para administración y manejo de bases de datos Natural, SQL.
- Quinta generación. Lisp, Prolog
Compilador
Es un programa que recibe instrucciones de un código fuente (lenguaje de alto nivel) escrito por un programador y genera como salida instrucciones de bajo nivel (lenguaje binario) para que una computadora las puede ejecutar. Tiene como salida un código objeto.
Intérprete
Un intérprete toma un código fuente (lenguaje de alto nivel) y traduce una a una la lista de instrucciones para ejecutarlas. El intérprete toma la primera línea del código fuente, la traduce a código objeto y la ejecuta y así sucesivamente para todas las líneas que contiene el código; el intérprete para de ejecutar hasta encontrar la última instrucción del código fuente sí y sólo sí, no se produce ningún error durante el proceso, los errores que se pudieran generar y detener el proceso son por sintaxis, semántica o por lógica.
Programación con Lenguaje C
C es un lenguaje flexible que permite desarrollar proyectos de imaginación ilimitada, el lenguaje C se ha utilizado para crear sistemas operativos, sistemas gráficos, procesadores de texto, hojas de cálculo, etc. Hoy día C, sigue teniendo gran auge en su uso debido a la compatibilidad para ejecutarse en cualquier sistema operativos, es un lenguaje transportable que, puede compilarse en un sistema operativo y ejecutarse, modificarse y volver a compilar en un sistema operativo diferente. En C puede ejecutar casi cualquier tarea con sus palabras reservadas, que en comparación de otros lenguajes de programación son pocas palabras reservadas, pero poderosas. C es un lenguaje de programación modular, el que sea un lenguaje modular significa que puede escribir rutinas o funciones y estas puede reutilizarlas en otros programas o aplicaciones.
Al llegar a aprender a programar con lenguaje C, entender la estructura, semántica y sintaxis, podrás aprender sin problemas cualquier otro lenguaje de programación en menor tiempo.
Conclusión
Has llegado al final de la primera clase, estas comenzando a entender y aprender el paradigma del área de programación, en lo posible sigue documentándote de fuentes externas para que tu visión siga creciendo.
Ahora comprendes los conceptos:
- Lenguaje de Programación
- Tipos de lenguaje (clasificados por nivel o por generación)
- Compilador
- Intérprete
Seguirás avanzando, en el desarrollo de la lógica y el desarrollo casi automático de instrucciones. Quiero invitarte a que sigas trabajando con el mismo entusiasmo con el que iniciaste. ¡Te espero en nuestra siguiente clase!
Material didáctico complementario
Para dejarte un poco más de información queremos compartirte un dato importante, si estabas pensando que C es un lenguaje de programación muy viejo por estar escrito en la década de los 70, te comparto que de acuerdo con los índices generados por TIOBE (Programming Community Index). Comunidad que mide los índices de popularidad de los lenguajes de programación y los calcula con el número de resultados de los motores de búsqueda (Google, MSN, Yahoo!, Wikipedia, Youtube) para consultas que contienen el nombre de un lenguaje de programación, muestran que, para el mes de mayo 2021, el lenguaje C fue el lenguaje más popular, ver tabla 1. Y para el mes de septiembre 2022, el lenguaje C es el segundo más popular, ver tabla 2.

Tabla 1. Muestreo de Lenguaje más popular mayo 2021 (TIOBE, 2021).

Tabla 2. Muestreo de Lenguaje más popular septiembre 2022 (TIOBE, 2022).
Fuentes de información
- Gottfried, B. S. (2005). Programación en C. McGraw-Hill Interamericana.
- Schildt H (1991), Programación en TURBO C. McGraw-Hill. Chavez A. (2017). Aprenda a diseñar algoritmos. Sello Editorial UNAD URL: https://repository.unad.edu.co/bitstream/handle/10596/11970/Chave?sequence=3
- C Programming Language, Brian W. Kernighan Dennis M. Ritchie. Prentice Hall; 2 ed. Sitios web con programación estructurada en C y trabajos académicos específicos.
- TIOBE. (6 de junio de 2021 y 20 septiembre de 2022). TIOBE. Obtenido de TIOBE: https://www.tiobe.com/tiobe-index/