Diferencia entre revisiones de «Lenguaje de programación»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Página blanqueada
Diegusjaimes (discusión · contribs.)
m Revertidos los cambios de 189.180.239.33 a la última edición de Diegusjaimes
Línea 1: Línea 1:
[[Archivo:Programming language textbooks.jpg|thumb|right|200px|Varios libros sobre diversos '''lenguajes de programación'''.]]

Un '''lenguaje de programación''' es un [[idioma artificial]] diseñado para expresar [[computación|computaciones]] que pueden ser llevadas a cabo por máquinas como las [[computadora]]s. Pueden usarse para crear [[software|programas]] que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado de un conjunto de símbolos y reglas [[sintaxis|sintácticas]] y [[semántica]]s que definen su estructura y el significado de sus elementos y expresiones.

Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y '[[lenguaje informático]]'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo el [[HTML]]. (lenguaje para el marcado de [[página web|páginas web]] que no es propiamente un lenguaje de programación sino un conjunto de instrucciones que permiten diseñar el contenido y el texto de los documentos)

Permite especificar de ''manera precisa'' sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un [[lenguaje]] que intenta estar ''relativamente'' próximo al lenguaje humano o natural, tal como sucede con el lenguaje [[Léxico]]. Una característica relevante de los lenguajes de programación es precisamente que más de un programador puedan tener un conjunto común de instrucciones que puedan ser comprendidas entre ellos para realizar la construcción del programa de forma colaborativa.

Los procesadores usados en las computadoras entienden únicamente instrucciones en [[lenguaje de máquina]]. Todo programa escrito en otro lenguaje puede ser ejecutado de dos maneras:

* Mediante un programa que va adaptando las instrucciones conforme son encontradas. A este proceso se lo llama ''interpretar'' y a los programas que lo hacen se los conoce como [[intérprete informático|intérpretes]]. Ejemplos de esto son [[bash]], clásico interprete de comandos en estaciones [[unix]] que fue escrito para el proyecto [[GNU]] o [[Python]], intérprete multipropósito.
* Traduciendo el [[código fuente|código escrito del programa]] (lo que se denomina [[código fuente]]), a su equivalente en lenguaje máquina. A este proceso se le llama ''compilar'' y al programa traductor se le denomina [[compilador]]. Ejemplos de esto son: El [[lenguaje C]], que combina en su sintaxis características de medio y bajo nivel y el compilador [[gcc]] usado en el proyecto [[GNU]].

== Historia ==

La necesidad de recordar secuencias de programación para las acciones usuales llevó a denominarlas con nombres fáciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia de posiciones se le denominó "instrucciones", y a este conjunto de instrucciones se le llamó [[lenguaje ensamblador]]. Posteriormente aparecieron diferentes lenguajes de programación, los cuales reciben su denominación porque tienen una estructura [[sintáctica]] similar a los lenguajes escritos por los humanos.

== Implementación ==

La implementación de un lenguaje es la que provee una manera de que se ejecute un programa para una determinada combinación de software y hardware. Existen básicamente dos maneras de implementar un lenguaje: Compilación e interpretación.
Compilación es la traducción a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman [[compilador]]es. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente.

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la compilación para utilizarlo en una ejecución futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa [[Intérprete (informática)|intérprete]], almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el procesamiento de los datos. El código objeto no se graba para utilizarlo posteriormente.

La siguiente vez que se utilice una instrucción, se la deberá interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo o bucle, cada instrucción del bucle tendrá que volver a ser interpretada en cada ejecución repetida del ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una ejecución del código.

== Véase también ==
* [[Computadora]]
* [[Programación]]
* [[Lenguaje de alto nivel]]
* [[Lenguaje interpretado]]
* [[Lenguaje de programación esotérico|Lenguajes esotéricos]]

== Enlaces externos ==
{{wikiversidad|Lenguajes de Programación}}
* [http://www.levenez.com/lang/history.html Árbol genealógico de los lenguajes de programación]
* [http://www.levenez.com/lang/ Árbol cronológico de los lenguajes de programación] (en inglés)
* [http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm Lista de lenguajes de programación] (en inglés)
* [http://www.alegsaonline.com/art/13.php Paradigmas de los lenguajes de programación] (clasificación)

{{destacado|he}}
{{destacado|it}}
{{destacado|vi}}

[[Categoría:Lenguajes de programación]]

[[af:Programmeertaal]]
[[als:Programmiersprache]]
[[am:የፕሮግራም ቋንቋ]]
[[an:Luengache de programazión]]
[[ar:لغة برمجة]]
[[arz:لغة برمجه]]
[[ast:Llinguaxe de programación]]
[[bat-smg:Pruogramavėma kalba]]
[[be:Мова праграмавання]]
[[be-x-old:Мова праграмаваньня]]
[[bg:Език за програмиране]]
[[bn:প্রোগ্রামিং ভাষা]]
[[br:Yezh programmiñ]]
[[bs:Programski jezik]]
[[bug:ᨅᨔ ᨀᨚᨇᨘᨈᨛᨑᨛ]]
[[ca:Llenguatge de programació]]
[[cs:Programovací jazyk]]
[[cv:Компьютер чĕлхи]]
[[da:Programmeringssprog]]
[[de:Programmiersprache]]
[[el:Γλώσσα προγραμματισμού]]
[[en:Programming language]]
[[eo:Programlingvo]]
[[et:Programmeerimiskeel]]
[[eu:Programazio-lengoaia]]
[[fa:زبان‌های برنامه‌نویسی]]
[[fi:Ohjelmointikieli]]
[[fr:Langage de programmation]]
[[gl:Linguaxe de programación]]
[[he:שפת תכנות]]
[[hi:प्रोग्रामिंग भाषा]]
[[hr:Programski jezik]]
[[hsb:Programěrowanske rěče]]
[[hu:Programozási nyelv]]
[[ia:Linguage de programmation]]
[[id:Bahasa pemrograman]]
[[ilo:Lengguahe ti panangprograma]]
[[is:Forritunarmál]]
[[it:Linguaggio di programmazione]]
[[ja:プログラミング言語]]
[[jbo:samplabau]]
[[ka:პროგრამირების ენა]]
[[kab:Timeslayin n usihel]]
[[ko:프로그래밍 언어]]
[[la:Lingua programmandi]]
[[lb:Programméiersprooch]]
[[lt:Programavimo kalba]]
[[lv:Programmēšanas valoda]]
[[mk:Програмски јазик]]
[[ml:പ്രോഗ്രാമിംഗ് ഭാഷ]]
[[mn:Программчлалын хэл]]
[[mr:प्रोग्रॅमिंग भाषा]]
[[ms:Bahasa pengaturcaraan]]
[[nl:Programmeertaal]]
[[nn:Programmeringsspråk]]
[[no:Programmeringsspråk]]
[[pl:Język programowania]]
[[pt:Linguagem de programação]]
[[ro:Limbaj de programare]]
[[ru:Язык программирования]]
[[sah:Программалааhын тыла]]
[[simple:Programming language]]
[[sk:Programovací jazyk]]
[[sl:Programski jezik]]
[[sq:Gjuhë programimi]]
[[sr:Програмски језик]]
[[su:Basa program]]
[[sv:Programspråk]]
[[ta:நிரல் மொழி]]
[[te:ప్రోగ్రామింగు భాష]]
[[tg:Забони барномасозӣ]]
[[th:ภาษาโปรแกรม]]
[[tl:Wikang pamprograma]]
[[tr:Programlama dili]]
[[uk:Мова програмування]]
[[ur:برمجہ زبان]]
[[vi:Ngôn ngữ lập trình]]
[[war:Yinaknan han programa]]
[[zh:编程语言]]
[[zh-min-nan:Thêng-sek gí-giân]]
[[zh-yue:程式語言]]

Revisión del 16:04 19 ene 2010

Varios libros sobre diversos lenguajes de programación.

Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones.

Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo el HTML. (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación sino un conjunto de instrucciones que permiten diseñar el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje Léxico. Una característica relevante de los lenguajes de programación es precisamente que más de un programador puedan tener un conjunto común de instrucciones que puedan ser comprendidas entre ellos para realizar la construcción del programa de forma colaborativa.

Los procesadores usados en las computadoras entienden únicamente instrucciones en lenguaje de máquina. Todo programa escrito en otro lenguaje puede ser ejecutado de dos maneras:

  • Mediante un programa que va adaptando las instrucciones conforme son encontradas. A este proceso se lo llama interpretar y a los programas que lo hacen se los conoce como intérpretes. Ejemplos de esto son bash, clásico interprete de comandos en estaciones unix que fue escrito para el proyecto GNU o Python, intérprete multipropósito.
  • Traduciendo el código escrito del programa (lo que se denomina código fuente), a su equivalente en lenguaje máquina. A este proceso se le llama compilar y al programa traductor se le denomina compilador. Ejemplos de esto son: El lenguaje C, que combina en su sintaxis características de medio y bajo nivel y el compilador gcc usado en el proyecto GNU.

Historia

La necesidad de recordar secuencias de programación para las acciones usuales llevó a denominarlas con nombres fáciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia de posiciones se le denominó "instrucciones", y a este conjunto de instrucciones se le llamó lenguaje ensamblador. Posteriormente aparecieron diferentes lenguajes de programación, los cuales reciben su denominación porque tienen una estructura sintáctica similar a los lenguajes escritos por los humanos.

Implementación

La implementación de un lenguaje es la que provee una manera de que se ejecute un programa para una determinada combinación de software y hardware. Existen básicamente dos maneras de implementar un lenguaje: Compilación e interpretación. Compilación es la traducción a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente.

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la compilación para utilizarlo en una ejecución futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el procesamiento de los datos. El código objeto no se graba para utilizarlo posteriormente.

La siguiente vez que se utilice una instrucción, se la deberá interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo o bucle, cada instrucción del bucle tendrá que volver a ser interpretada en cada ejecución repetida del ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una ejecución del código.

Véase también

Enlaces externos