Lenguaje de programación

Un lenguaje de programación es un lenguaje formal que comprende un conjunto de cadenas que producen varios tipos de salida de código de máquina. Los lenguajes de programación son un tipo de lenguaje informático y se utilizan en la programación informática para implementar algoritmos. La mayoría de los lenguajes de programación constan de instrucciones para computadoras. Hay máquinas programables que utilizan un conjunto de instrucciones específicas, en lugar de lenguajes de programación generales. Desde principios del siglo XIX, se han utilizado programas para dirigir el comportamiento de máquinas como telares Jacquard, cajas de música y pianos. Los programas para estas máquinas (como los pergaminos de un piano) no produjeron un comportamiento diferente en respuesta a diferentes entradas o condiciones. Se han creado miles de lenguajes de programación diferentes y cada año se crean más. Muchos lenguajes de programación están escritos en forma imperativa (es decir, como una secuencia de operaciones a realizar) mientras que otros lenguajes usan la forma declarativa (es decir, se especifica el resultado deseado, no cómo lograrlo). La descripción de un lenguaje de programación generalmente se divide en dos componentes de sintaxis (forma) y semántica (significado). Algunos lenguajes están definidos por un documento de especificación (por ejemplo, el lenguaje de programación C está especificado por un estándar ISO) mientras que otros lenguajes (como Perl) tienen una implementación dominante que se trata como referencia. Algunos lenguajes tienen ambos, el lenguaje básico definido por un estándar y las extensiones tomadas de la implementación dominante son comunes.

Definiciones

Un lenguaje de programación es una notación para escribir programas, que son especificaciones de un cálculo o algoritmo. Algunos autores restringen el término "lenguaje de programación" a aquellos lenguajes que pueden expresar todos los algoritmos posibles. Los rasgos que a menudo se consideran importantes para lo que constituye un lenguaje de programación incluyen: Función y objetivo Un lenguaje de programación de computadoras es un lenguaje que se usa para escribir programas de computadora, lo que implica que una computadora realice algún tipo de cálculo o algoritmo y posiblemente controle dispositivos externos como impresoras, unidades de disco, robots, etc. Por ejemplo, los programas PostScript son creados con frecuencia por otro programa para controlar una impresora o pantalla de computadora. De manera más general, un lenguaje de programación puede describir la computación en alguna máquina, posiblemente abstracta. Generalmente se acepta que una especificación completa para un lenguaje de programación incluye una descripción, posiblemente idealizada, de una máquina o procesador para ese lenguaje. En la mayoría de los contextos prácticos, un lenguaje de programación involucra una computadora; en consecuencia, los lenguajes de programación se suelen definir y estudiar de esta manera. Los lenguajes de programación se diferencian de los lenguajes naturales en que los lenguajes naturales solo se utilizan para la interacción entre personas, mientras que los lenguajes de programación también permiten a los humanos comunicar instrucciones a las máquinas. Abstracciones Los lenguajes de programación generalmente contienen abstracciones para definir y manipular estructuras de datos o controlar el flujo de ejecución. La necesidad práctica de que un lenguaje de programación admita abstracciones adecuadas se expresa mediante el principio de abstracción. Este principio a veces se formula como una recomendación para que el programador haga un uso adecuado de tales abstracciones. Poder expresivo La teoría de la computación clasifica los lenguajes por los cálculos que son capaces de expresar. Todos los lenguajes completos de Turing pueden implementar el mismo conjunto de algoritmos. ANSI / ISO SQL-92 y Charity son ejemplos de lenguajes que no son completos de Turing, pero que a menudo se denominan lenguajes de programación. Los lenguajes de marcado como XML, HTML o troff, que definen datos estructurados, no suelen considerarse lenguajes de programación. Sin embargo, los lenguajes de programación pueden compartir la sintaxis con los lenguajes de marcado si se define una semántica computacional. XSLT, por ejemplo, es un lenguaje completo de Turing que utiliza en su totalidad sintaxis XML. Además, LaTeX, que se utiliza principalmente para estructurar documentos, también contiene un subconjunto completo de Turing.