¿Cómo funcionan los lenguajes de programación?
Los lenguajes de programación son una de las tecnologías que han marcado la historia de la humanidad así como también la vida de todos nosotros, pero ¿Cómo funcionan?
Antes de comenzar a describir el funcionamiento de los lenguajes de programación, abordaremos el concepto de lenguaje de programación.
¿Qué es un lenguaje de programación?
Un lenguaje de programación es una herramienta que te permite decirle a una computadora lo que quieres que haga por ti, en otras palabras un lenguaje de programación te permite darle instrucciones a una computadora.
Pero, ¿Para qué quiero darle instrucciones a una computadora? Es muy sencillo. Construimos computadoras para expandir nuestros cerebros. Las computadoras nos ayudan a resolver problemas de una forma en que los humanos no pueden. Y a eso se debe la necesidad de los lenguajes de programación: darle instrucciones a una computadora.
Pero, ¿Y por qué no usar el lenguaje natural para dar instrucciones a las computadoras? Es debido a que el lenguaje natural tiene vaguedad y ambigüedad, por lo cual puede tener diferente connotaciones. Para darle instrucciones a una computadora se necesita un conjunto de instrucciones precisas. Y esa es la razón por la que usamos lenguajes de programación y no lenguaje natural para programar computadoras.
¿Qué entiende una computadora?
Una vez que ya sabemos el concepto de lenguaje de programación, hay otra cuestión importante para entender el funcionamiento de los lenguajes de programación y es saber lo que entiende una computadora.
Los lenguajes de programación no están hechos para que una computadora los entienda, están hechos para que los humanos lo entiendan. Las computadoras entienden únicamente 0 y 1, es decir, código binario. Al 0 y 1 se les conoce como bit (binary digit).
0 significa que no hay carga de corriente y 1 significa que si hay. Se usa código binario porque da ventajas en términos de electrónica. Internamente, las computadoras tiene millones de circuitos eléctricos y señales eléctricas que trabajan en conjunto a una gran velocidad.
Aunque en su parte más fundamental las computadoras solo entienden código binario, hay otro lenguaje que está como una capa arriba del código binario que se llama lenguaje de máquina (también conocido como lenguaje ensamblador). El lenguaje de máquina asigna un significado a un código binario como una forma de indicarle a la computadora que realice un proceso. El lenguaje de máquina son instrucciones específicas a una arquitectura o procesador.
Diferencias entre lenguajes de programación
Ya sabemos que los lenguajes de programación se usan para decirle a una computadora lo que queremos que hagan por nosotros. También que las computadoras entienden solamente electricidad y código binario (o lenguaje de máquina). Antes de pasar al funcionamiento en sí de los lenguajes de programación, debemos de ver algunas diferencias en los lenguajes, ya que su clasificación dependen de ciertos criterios.
Bajo nivel vs. Alto nivel
Los lenguajes de programación pueden ser de bajo nivel, es decir, que están diseñados para que una computadora los entienda (como el código binario o el lenguaje ensamblador) y de alto nivel, que están diseñados para que un humano los entienda (como Python o JavaScript).
General vs. Dominio específico
Los lenguajes generales tienen todos los primitivos (tipos de datos) para computar cualquier tipo de algoritmos. Los lenguajes de dominio específico como su nombre los indica, están enfocados a aplicaciones muy específicas.
Interpretado vs. Compilado
El decir que un lenguaje es interpretado o compilado hace referencia a la herramienta que se usa para traducir el código y que una computadora pueda entenderlo. Los lenguajes interpretados utilizan intérpretes. Los lenguajes compilados utilizan compiladores.
Los intérpretes lo que hace es que mientras se ejecuta el programa la computadora va traduciendo al lenguaje de máquina. Es como los traductores humanos, a medida que una persona habla en un idioma, el traductor lo traduce en otro idioma.
Los compiladores lo que hacen es traducir todo el programa a lenguaje de máquina antes de entregárselo a la computadora. La analogía más cercana aquí son los traductores digitales (como Google Translate), ya que ingresas el texto que quieres traducir y te lo devuelve en otro idioma, pero no vez como va traduciendo palabra por palabra.
Tanto los intérpretes como los compiladores analizan todo el programa.Realizan un análisis léxico, sintáctico y semántico, así como también evalúan el programa.
Algunos ejemplos de lenguajes compilados son C, C++ y Go. Y ejemplos de interpretados son Python, JavaScript, y Ruby.
¿Entonces cómo funcionan los lenguajes de programación?
Hasta este punto de hecho ya vimos cómo funcionan, ya tenemos claro cada uno de los conceptos, solamente tenemos que unir todas las piezas del rompecabezas.
Los lenguajes de programación funciona de la siguiente manera:
Los lenguajes de programación hacen uso de un software, ya sea un intérprete o un compilador, que traduce el código fuente del programa a lenguaje de máquina y así una computadora lo puede entender.
Conclusión
Los lenguajes de programación son un pilar fundamental de nuestra civilización moderna. Aprender el cómo funcionan es muy interesante pero es mucho más interesante aprende a escribir en ellos, crear tus propios programas.
Aprender a programar es una de las mejores habilidades para aprender en el siglo XXI. Solo un tercio de uno por ciento de la población mundial sabe programar. Aprender a programar es como tener un superpoder, el poder de decirle a las computadoras lo que hacer.