Programación y lingüística

¿Qué es un lenguaje de programación? A nivel lingüistico, se puede definir por su léxico (el conjunto de elementos de que está compuesto), la sintaxis (reglas para la combinación de los elementos, léxico y lexemas) y la semántica (el significado de una estructura gramatical).

Durante la última lectura en que me he embarcado, he empezado a pensar sobre esto, la lingüistica, la programación y sus similitudes. Por ejemplo, para entender la diferencia entre la sintaxis y la semántica es muy útil trazar analogías con el lenguaje natural: así pues, leyendo a Chomsky –Colorless green ideas sleep furiously– lo comprendo mejor.

 Y he empezado a desarrollar la convicción de que entender estas relaciones, nos da herramientas para estructurar mejor nuestras sentencias, y también, nuestro código. Al fin y al cabo código y lenguas versan sobre cómo estructurar mejor nuestras ideas:

The acts of the mind, wherein it exerts its power over simple ideas, are chiefly these three:

  1. Combining several simple ideas into one compound one, and thus all complex ideas are made.
  2. The second is bringing two ideas, whether simple or complex, together, and setting them by one another so as to take a view of them at once, without uniting them into one, by which it gets all its ideas of relations.
  3. The third is separating them from all other ideas that accompany them in their real existence: this is called abstraction, and thus all its general ideas are made.

— John Locke, An Essay Concerning Human Understanding (1690) (via SICP)

Programar, como escribir, consiste en controlar la complejidad de un sistema/idea, y transmitirla de un modo sencillo a otros. Porque

«programs must be written for people to read, and only incidentally for machines to execute»

— SICP, preface to the first edition

Leave a Reply

Your email address will not be published. Required fields are marked *