Sei sulla pagina 1di 22

Lenguajes de programacin

Prof. Diego Mosquera


@diegomosuz

Definicin
Se denomina lenguaje de programacin al conjunto de smbolos, reglas
sintcticas y reglas semnticas, que definen las estructuras y el significado
de las expresiones que conforman al conjunto (o conjuntos) de
instrucciones que se requiere dar a uno o varios computadores para que
realicen una o varias tareas.
Matemticamente se definen como lenguajes formales (a diferencia de los
lenguajes naturales) cuyos smbolos primitivos (alfabeto o vocabulario) y
reglas (gramticas formales o sintaxis) para combinar esos smbolos estn
formalmente especificados.
A una cadena de smbolos formado de acuerdo a la gramtica formal se le
denomina Frmula Bien Formada (FBF) o palabra que reconoce el lenguaje.
Por tanto, un lenguaje formal L es igual al conjunto de todas sus FBF. Ntese que
este conjunto es infinito (a diferencia del alfabeto que es un conjunto finito).
Al proceso de interpretacin y dar significado a las FBF de L se le denomina
semntica formal.

Tipos
Por su nivel de abstraccin:
Lenguajes de alto nivel.
Lenguajes de nivel medio.
Lenguajes de alto nivel.

Por su naturaleza:
Lenguajes imperativos.
Lenguajes declarativos:
Lenguajes funcionales.
Lenguajes lgicos.
Lenguajes algebraicos.

Por su naturaleza 1/3


Los lenguajes imperativos (LI): paradigma de programacin en trminos
del estado del programa e instrucciones que cambian dicho estado. La
intencin de los programas es indicarle al computador cmo realizar una
tarea o conjunto de tareas.
Ejemplos: Los estudiantes dan ejemplos de estos lenguajes.

Los lenguajes declarativos (LD): paradigma de programacin en trminos


de declaraciones de definiciones, ecuaciones y transformaciones que
describen el problema y detallan la solucin. La intencin de los programas
es indicarle al computador qu es lo que se desea obtener. Luego, y a travs
de mecanismos de inferencia se obtiene la solucin.
Lenguajes funcionales como Haskell.
Lenguajes lgicos como Prolog.
Lenguajes algebraicos como SQL

Por su naturaleza 2/3


Diferencias clave:
En LI se describe un algoritmo que al ejecutarse hacen variar el estado del programa
hasta encontrar la solucin.
En LD se utilizan sentencias que describen el problema que se requiere solucionar,
pero no las instrucciones para solucionarlo. Estas instrucciones son calculadas por el
lenguaje usando la descripcin dada y mecanismos internos de inferencia.
En los LD el orden de ejecucin no importa dado que no existen efectos colaterales.

Para notar estas diferencias, veamos como ejemplo el programa que


resuelve el problema de encontrar el factorial de un nmero natural.

Por su naturaleza 3/3


Ejemplo (factorial)
En C:

En Haskell:

int factorial(int n){


int i;
int f = 1;
for (i = 2; i <= n; i++)
f = f * i;
return f;
}

factorial :: Integer -> Integer


factorial n = product [1 .. n]

En Prolog:
factorial(0, 1) :- !.
factorial(N, F) :- N1 is N - 1, factorial(N1, F1), F is N*F1.

Cul utilizaremos en este curso?


El desarrollo de compiladores para lenguajes de programacin es un
trabajo complejo.
A este nivel tenemos un conocimiento completo acerca de los LI, por lo que
podramos concentrarnos en el desarrollo de un compilador sin entrar en
detalles de programacin.
La definicin de un LI es mucho ms simple que la definicin de un LD.
Las fases que involucran el desarrollo de un compilador son siempre las
mismas, independientemente de la naturaleza del lenguaje. Sobretodo la
fase de anlisis lxico y anlisis sintctico.

Instrucciones en un LI
Instrucciones de Entrada/Salida.
Skip.
Secuenciacin.
Asignacin.
Instrucciones de control:
Seleccin.
Iteracin.

Llamadas a subprogramas.
Definicin de subprogramas.
Instrucciones de clculo.
Instrucciones de formato.

Aspectos bsicos de diseo de un LI


Adems de pensar en el alfabeto, vocabulario, sintaxis y semntica (aspectos bsicos de
cualquier lenguaje)
y operadores, tipos de datos, etc. (aspectos necesarios de un LP)
es importante considerar lo siguiente:

Objetivo del lenguaje:

Eficiencia.
Portabilidad.
La posibilidad de verificacin.
La integridad.
Facilidad de uso.
Exactitud.
Robustez.
La extensibilidad.
Compatibilidad.
Reutilizacin.
Independencia.
Simplicidad sintctica y semntica.

Par qu ser utilizado


el lenguaje?. Propsito.

Aspectos bsicos de diseo de un LI


Adems de pensar en el alfabeto, vocabulario, sintaxis y semntica (aspectos bsicos de
cualquier lenguaje)
y operadores, tipos de datos, etc. (aspectos necesarios de un LP)
es importante considerar lo siguiente:
Objetivo del lenguaje:

Eficiencia:

Portabilidad:
La posibilidad de verificacin.
La integridad.
Facilidad de uso.
Exactitud.
Robustez.
La extensibilidad.
Compatibilidad.
Reutilizacin.
Independencia.
Simplicidad sintctica y semntica.

Capacidad de generar cdigo


ejecutable eficiente (optimizabilidad).

Aspectos bsicos de diseo de un LI


Adems de pensar en el alfabeto, vocabulario, sintaxis y semntica (aspectos bsicos de
cualquier lenguaje)
y operadores, tipos de datos, etc. (aspectos necesarios de un LP)
es importante considerar lo siguiente:
Objetivo del lenguaje:
Eficiencia:
:
La posibilidad de verificacin.
La integridad.
Facilidad de uso.
Exactitud.
Robustez.
La extensibilidad.
Compatibilidad.
Reutilizacin.
Independencia.
Simplicidad sintctica y semntica.

Portabilidad

Facilidad para ser ejecutados en


distintos entornos lgicos y fsicos.

Aspectos bsicos de diseo de un LI


Adems de pensar en el alfabeto, vocabulario, sintaxis y semntica (aspectos bsicos de
cualquier lenguaje)
y operadores, tipos de datos, etc. (aspectos necesarios de un LP)
es importante considerar lo siguiente:
Objetivo del lenguaje:
Eficiencia:
Portabilidad:

La posibilidad de verificacin:

La integridad.
Facilidad de uso.
Exactitud.
Robustez.
La extensibilidad.
Compatibilidad.
Reutilizacin.
Independencia.
Simplicidad sintctica y semntica.

Capacidad para soportar


procedimientos de pruebas o
ensayos.

Aspectos bsicos de diseo de un LI


Adems de pensar en el alfabeto, vocabulario, sintaxis y semntica (aspectos bsicos de
cualquier lenguaje)
y operadores, tipos de datos, etc. (aspectos necesarios de un LP)
es importante considerar lo siguiente:

Objetivo del lenguaje:


Eficiencia:
Portabilidad:
La posibilidad de verificacin:

Integridad:

Facilidad de uso.
Exactitud.
Robustez.
La extensibilidad.
Compatibilidad.
Reutilizacin.
Independencia.
Simplicidad sintctica y semntica.

Nivel de proteccin frente a procesos


que traten de alterarlo.

Aspectos bsicos de diseo de un LI


Adems de pensar en el alfabeto, vocabulario, sintaxis y semntica (aspectos bsicos de
cualquier lenguaje)
y operadores, tipos de datos, etc. (aspectos necesarios de un LP)
es importante considerar lo siguiente:

Objetivo del lenguaje:


Eficiencia:
Portabilidad:
La posibilidad de verificacin:
Integridad:

Facilidad de uso:

Exactitud.
Robustez.
La extensibilidad.
Compatibilidad.
Reutilizacin.
Independencia.
Simplicidad sintctica y semntica.

Comodidad y claridad en la
interaccin con el usuario.

Aspectos bsicos de diseo de un LI


Adems de pensar en el alfabeto, vocabulario, sintaxis y semntica (aspectos bsicos de
cualquier lenguaje)
y operadores, tipos de datos, etc. (aspectos necesarios de un LP)
es importante considerar lo siguiente:

Objetivo del lenguaje:


Eficiencia:
Portabilidad:
La posibilidad de verificacin:
Integridad:
Facilidad de uso:

Exactitud:

Robustez.
La extensibilidad.
Compatibilidad.
Reutilizacin.
Independencia.
Simplicidad sintctica y semntica.

Nivel de precisin que alcanzan los


resultados obtenidos.

Aspectos bsicos de diseo de un LI


Adems de pensar en el alfabeto, vocabulario, sintaxis y semntica (aspectos bsicos de
cualquier lenguaje)
y operadores, tipos de datos, etc. (aspectos necesarios de un LP)
es importante considerar lo siguiente:

Objetivo del lenguaje:


Eficiencia:
Portabilidad:
La posibilidad de verificacin:
Integridad:
Facilidad de uso:
Exactitud:

Robustez:

La extensibilidad.
Compatibilidad.
Reutilizacin.
Independencia.
Simplicidad sintctica y semntica.

Capacidad para funcionar


correctamente para situaciones
extremas.

Aspectos bsicos de diseo de un LI


Adems de pensar en el alfabeto, vocabulario, sintaxis y semntica (aspectos bsicos de
cualquier lenguaje)
y operadores, tipos de datos, etc. (aspectos necesarios de un LP)
es importante considerar lo siguiente:

Objetivo del lenguaje:


Eficiencia:
Portabilidad:
La posibilidad de verificacin:
Integridad:
Facilidad de uso:
Exactitud:
Robustez:

La extensibilidad:

Compatibilidad.
Reutilizacin.
Independencia.
Simplicidad sintctica y semntica.

Capacidad para adaptar su


funcionamiento al crecimiento de sus
objetivos.

Aspectos bsicos de diseo de un LI


Adems de pensar en el alfabeto, vocabulario, sintaxis y semntica (aspectos bsicos de
cualquier lenguaje)
y operadores, tipos de datos, etc. (aspectos necesarios de un LP)
es importante considerar lo siguiente:

Objetivo del lenguaje:


Eficiencia:
Portabilidad:
La posibilidad de verificacin:
Integridad:
Facilidad de uso:
Exactitud:
Robustez:
La extensibilidad:

Compatibilidad:
Reutilizacin.
Independencia.
Simplicidad sintctica y semntica.

Capacidad de poder ser aplicados en


conjuncin con otros programas.

Aspectos bsicos de diseo de un LI


Adems de pensar en el alfabeto, vocabulario, sintaxis y semntica (aspectos bsicos de
cualquier lenguaje)
y operadores, tipos de datos, etc. (aspectos necesarios de un LP)
es importante considerar lo siguiente:

Objetivo del lenguaje:


Eficiencia:
Portabilidad:
La posibilidad de verificacin:
Integridad:
Facilidad de uso:
Exactitud:
Robustez:
La extensibilidad:
Compatibilidad:

Reutilizacin:
Independencia.
Simplicidad sintctica y semntica.

Posibilidad de uso (total o parcial) en


nuevos contextos.

Aspectos bsicos de diseo de un LI


Adems de pensar en el alfabeto, vocabulario, sintaxis y semntica (aspectos bsicos de
cualquier lenguaje)
y operadores, tipos de datos, etc. (aspectos necesarios de un LP)
es importante considerar lo siguiente:

Objetivo del lenguaje:


Eficiencia:
Portabilidad:
La posibilidad de verificacin:
Integridad:
Facilidad de uso:
Exactitud:
Robustez:
La extensibilidad:
Compatibilidad:
Reutilizacin:

Independencia:
Simplicidad sintctica y semntica.

Posibilidad de uso multiplataforma.

Aspectos bsicos de diseo de un LI


Adems de pensar en el alfabeto, vocabulario, sintaxis y semntica (aspectos bsicos de
cualquier lenguaje)
y operadores, tipos de datos, etc. (aspectos necesarios de un LP)
es importante considerar lo siguiente:

Objetivo del lenguaje:


Eficiencia:
Portabilidad:
La posibilidad de verificacin:
Integridad:
Facilidad de uso:
Exactitud:
Robustez:
La extensibilidad:
Compatibilidad:
Reutilizacin:
Independencia:

Rapidez y facilidad de escritura de


programas en el lenguaje (capacidad
expresiva del lenguaje).

Simplicidad sintctica y semntica:

Intro-Lectura_obligada
Leer intro-lectura_obligada.pdf para aclarar conceptos bsicos.
Tarea. Realizar una lista de 20 lenguajes de programacin y decir a qu
paradigma pertenece (asegrese de incluir para todos los paradigmas).

Potrebbero piacerti anche