Sie sind auf Seite 1von 5

Lenguajes de

programación
Mtra. Yolanda Catalina Navarrete

Laura Avila
Lenguajes de programación.
Un lenguaje de programación es un lenguaje formal que especifica una serie de instrucciones
para que una computadora produzca diversas clases de datos. Los lenguajes de
programación pueden usarse para crear programas que pongan en
práctica algoritmos específicos que controlen el comportamiento físico y lógico de una
computadora.
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su
estructura y el significado de sus elementos y expresiones. Al proceso por el cual se
escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código
fuente de un programa informático se le llama programación.
También la palabra programación se define como el proceso de creación de
un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de
los siguientes pasos:

 El desarrollo lógico del programa para resolver un problema en particular.


 Escritura de la lógica del programa empleando un lenguaje de programación específico
(codificación del programa).
 Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
 Prueba y depuración del programa.
 Desarrollo de la documentación.
Plataforma
es un sistema que sirve como base para hacer funcionar determinados módulos
de hardware o de software con los que es compatible. Dicho sistema está definido por un
estándar alrededor del cual se determina una arquitectura de hardware y una plataforma de
software (incluyendo entornos de aplicaciones). Al definir plataformas se establecen los tipos
de arquitectura, sistema operativo, lenguaje de programación o interfaz de
usuario compatibles.
Ejemplos de plataformas son IBM-PC, que incluye las
arquitecturas I386 (x86), IA64 o AMD64 (x86-64); Macintosh, que incluye la
arquitectura Gecko y PowerPC; y SPARC. Existen programas multiplataforma que permiten
ejecutarse en diversas plataformas. También existen emuladores, que son programas que
permiten ejecutar desde una plataforma programas de otra emulando su funcionamiento,
como por ejemplo UAE, que emula el hardware VICE, un emulador de los
legendarios Commodore 8 bits de mitad de los 80.
Compilador
Un lenguaje compilado es un lenguaje de programación cuyas implementaciones son
normalmente compiladores (traductores que generan código de máquina a partir del código
fuente) y no intérpretes (ejecutores paso a paso del código fuente, donde no se lleva a cabo
una traducción en la preejecución).
El término es un tanto vago. En principio, cualquier lenguaje puede ser implementado con un
compilador o un intérprete. Sin embargo, es cada vez más frecuente una combinación de
ambas soluciones: un compilador puede traducir el código fuente en alguna forma intermedia
(muchas veces llamado Bytecode), que luego se pasa a un intérprete que lo ejecuta.
Enlazador
Es un programa que toma los objetos generados en los primeros pasos del
proceso de compilación, la información de todos los recursos necesarios
(biblioteca), quita aquellos recursos que no necesita, y enlaza el código objeto con
su(s) biblioteca(s) con lo que finalmente produce un fichero ejecutable o una
biblioteca. En el caso de los programas enlazados dinámicamente, el enlace entre
el programa ejecutable y las bibliotecas se realiza en tiempo de carga o
ejecución del programa.

Entornos de desarrollo integrados


Un entorno de desarrollo integrado es un entorno de programación que ha sido
empaquetado como un programa de aplicación, es decir, consiste en un editor de
código, un compilador, un depurador y un constructor de interfaz gráfica (GUI).

Los IDE proveen un marco de trabajo amigable para la mayoría de los lenguajes
de programación tales como C++, PHP, Python, Java, C#, Delphi, Visual Basic,
etc. En algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de
ejecución, en donde se permite utilizar el lenguaje de programación en forma
interactiva, sin necesidad de trabajo orientado a archivos de texto.

Sintaxis

La sintaxis de un lenguaje de programación es la estructura en que se organizan


los distintos elementos sintácticos, como espacios, identificadores, operadores,
etc. Es decir el orden que tienen unos con respecto a otros.
Una sintaxis se evalúa según varios criterios: que sea fácil de leer, de escribir, de
verificar (chequear en busca de errores), fácil de traducir y que carezca de
ambigüedad. Esta última significa que un mismo código puede tener 2 o más
interpretaciones o traducciones posibles, en cuyo caso no se puede decidir que
alternativa elegir.
Los elementos de la sintáxis son: alfabeto, identificadores (nombres de variables,
constantes, etc.), símbolos de operadores (+,-,etc.), espacios en blanco,
delimitadores y corchetes, palabras pregonadas (palabras que se pueden omitir
sin alterar el significado), palabras clave y reservadas (propias del lenguaje),
comentarios y expresiones.
El principal problema de una sintáxis es cómo se la define. Para esto existen
metalenguajes que permiten definir la manera en que se combinan los símbolos y
elementos. Estos metalenguajes o notaciones formales son un conjunto de reglas
que especifican el modelo de construcción de las cadenas aceptadas por el
lenguaje. Es decir que un metalenguaje es un lenguaje que define a un lenguaje
de programación. Sus elementos son símbolo distinguido, metasímbolos y
metavariables.
Símbolo distinguido: Punto de partida para la generación de todas las cadenas.
Metasímbolos: ( | (o), ::= (es), ).Metavariables: Pueden ser terminales o no
terminales.
o Terminales: Son palabras que forman los símbolos no terminales.
o No terminales: Son identificadores que tienen una definición hecha con más
metavariables, de manera que es posible reemplazarlas por sus definiciones.
Otra manera de llamarlo a este tipo de gramáticas es "gramáticas BNF" (Backus
Naur Form), que son un metalenguaje que define las reglas de formación de las
cadenas aceptadas por un lenguaje de programación. Fueron inventadas por
Backus Naur para el desarrollo del lenguaje de programación Algol 60.
Ejemplo: ::= {}+ |
{}+
Existe una representación visual de una gramática BNF, que son
los grafos sintácticos. Esots usan flechas, círculos y rectángulos. Sus ventajas son
que son más fáciles de entender para el ojo humano.
Una vez que tenemos definada la sintáxis de nuestro lenguaje, el compilador
deberá determinar si las cadenas de texto ingresadas por los usuarios son válidas
de acuerdo a esta sintáxis. Para esto se utilizan árboles de análisis sintáctico
y algoritmos de parsing.

Herramientas de compilación.
Un compilador es un programa informático que traduce un programa que ha sido
escrito en un lenguaje de programación a un lenguaje común,reúne diversos
elementos o fragmentos en una misma unidad. 1 usualmente lenguaje de máquina,
aunque también puede ser traducido a un código intermedio (bytecode) o a texto.
Este proceso de traducción se conoce como compilación, compilar consiste en
traducir un programa escrito en un cierto lenguaje a otro.2
La construcción de un compilador involucra la división del proceso en una serie de
fases que variará con su complejidad. Generalmente estas fases se agrupan en
dos tareas: el análisis del programa fuente y la síntesis del programa objeto.

 Análisis: se trata de la comprobación de la corrección del programa fuente, e


incluye las fases correspondientes al análisis léxico (que consiste en la
descomposición del programa fuente en componentes léxicos), análisis
sintáctico(agrupación de los componentes léxicos en frases gramaticales ) y
análisis semántico (comprobación de la validez semántica de las sentencias
aceptadas en la fase de análisis sintáctico).
 Síntesis: su objetivo es la generación de la salida expresada en el lenguaje
objeto y suele estar formado por una o varias combinaciones de fases de
generación de código (normalmente se trata de código intermedio o de código
objeto) y de optimización de código (en las que se busca obtener un código lo
más eficiente posible).
Alternativamente, las fases descritas para las tareas de análisis y síntesis se
pueden agrupar en:
 Analizador o front-end: es la parte que analiza el código fuente, comprueba su
validez, genera el árbol de derivación y rellena los valores de la tabla de
símbolos. Esta parte suele ser independiente de la plataforma o sistema para
el cual se vaya a compilar, y está compuesta por las fases comprendidas entre
el análisis léxico y la generación de código intermedio.
 Generador o back-end: es la parte que genera el código máquina, específico
de una plataforma, a partir de los resultados de la fase de análisis, realizada
por este generador.
Esta división permite que el mismo generador se utilice para crear el código
máquina de varios lenguajes de programación distintos y que el mismo analizador
que sirve para examinar el código fuente de un lenguaje de programación concreto
sirva para producir código máquina en varias plataformas. Suele incluir la
generación y optimización del código dependiente de la máquina.

Das könnte Ihnen auch gefallen