Вы находитесь на странице: 1из 7

Lenguajes de Programacin

Lenguaje artificial que se utiliza para expresar programas de ordenador.


Cada ordenador, segn su diseo, entiende un cierto conjunto de
instrucciones elementales (lenguaje mquina). No obstante, para facilitar la
tarea del programador, se dispone tambin de lenguajes de alto nivel ms
fciles de manejar y que no dependen del diseo especfico de cada
ordenador. Los programas escritos en un lenguaje de alto nivel no podrn
ser ejecutados por un ordenador mientras no sean traducidos al lenguaje
propio de ste.
Para definir un lenguaje de programacin es necesario especificar:
Conjunto de smbolos y palabras clave utilizables.
Reglas gramaticales para construir sentencias (instrucciones,
ordenes) sintctica y semnticamente correctas.
a) Sintaxis: Conjunto de normas que determinan cmo escribir las
sentencias del lenguaje.
b) Semntica: Interpretacin de las sentencias. Indica el significado de las
mismas.

Paradigmas de programacin
Un paradigma de programacin es una coleccin de patrones conceptuales
que moldean la forma de razonar sobre problemas, de formular soluciones y
de estructurar programas. Los paradigmas de programacin son:
Programacin imperativa
Programacin funcional
Programacin lgica
Programacin orientada a objetos

Programacin imperativa: En este paradigma, un programa es una


secuencia finita de instrucciones, que se ejecutan una tras otra. Los datos
utilizados se almacenan en memoria principal y se referencian utilizando
variables.
leer(X)
leer(Y)
resultado= x + y
escribir(resultado)

Ejemplo de lenguajes que utilizan este paradigma: Pascal, Ada, Cobol, C, Modula2 y Fortran.

Programacin funcional: Paradigma en el que todas las sentencias son


funciones en el sentido matemtico del trmino. Un programa es una
funcin que se define por composicin de funciones ms simples.
La misin del ordenador ser evaluar funciones.

predecesor(x)=x-1, si x>0
sucesor(x)=x+1
suma(x,0)=x
suma(x, y)=sucesor(suma(x, predecesor(y)))
?- suma(3,2)

Ejemplo de lenguaje: LISP.

Programacin lgica: En este paradigma un programa consiste en


declarar una serie de hechos (elementos conocidos, relacin de objetos
concretos) y reglas (relacin general entre objetos que cumplen unas
propiedades) y luego preguntar por un resultado.

Mujer(Rosa)
Mujer(Marta)
Mujer(Laura)
Padres(Rosa, Carlos, Pilar)
Padres(Marta, Carlos, Pilar)
Padres(Laura, Carlos, Pilar)
Hermanas(X, Y):- mujer(X), mujer(Y), padres(X, P, M), padres(Y, P, M)
?- hermanas(Rosa, Marta)
?- hermanas(Rosa, X)

Ejemplo: Prolog.

Programacin orientada a objetos (POO): El paradigma orientado a


objetos (OO) se refiere a un estilo de programacin. Un lenguaje de
programacin orientado a objetos (LOO) puede ser tanto imperativo como
funcional o lgico. Lo que caracteriza un LOO es la forma de manejar la
informacin que est basada en tres conceptos:
Clase.- Tipo de dato con unas determinadas propiedades y una
determinada funcionalidad (ejemplo: clase persona).
Objeto.- Entidad de una determinada clase con un determinado
estado (valores del conjunto de sus propiedades) capaz de interactuar
con otros objetos (ejemplos: Pedro, Sonia, ...).
Herencia.- Propiedad por la que es posible construir nuevas clases a
partir de clases ya existentes (ejemplo: la clase persona podra
construirse a partir de la clase ser vivo).
Ejemplos de LOO: Smalltalk, C++, Java.

Desarrollo histrico de los lenguajes de programacin


Lenguajes mquina (cdigo mquina): Es el lenguaje que comprende la
mquina de forma directa. Internamente, el ordenador representa la
informacin utilizando nicamente unos y ceros. Por tanto, un programa
escrito en lenguaje mquina (o cdigo mquina) estar formado por una
secuencia finita de unos y ceros.

01011010 10101010 ...


Este lenguaje rara vez se emplea para programar ya que tiene muchos
inconvenientes:
Difcil de escribir y entender.
Laboriosa modificacin y correccin de errores.
Depende del hardware (distintos ordenadores distintos lenguajes
mquina).
Repertorio reducido de instrucciones.

Lenguajes simblicos: Estos lenguajes utilizan smbolos para la


construccin de sentencias de forma que son ms fciles de entender y
corregir.
Leguaje de bajo nivel (ensamblador). Caractersticas:
Las instrucciones se representan utilizando mnemotcnicos.
Los datos se referencian por un nombre.
MOV 7,SP ,ADD X
Se mantiene una relacin 1 a 1 respecto al lenguaje mquina (una
instruccin en ensamblador representa una instruccin en cdigo
mquina).
Sigue dependiendo de la mquina y por tanto el programador debe
conocer el procesador utilizado.
Lenguajes de alto nivel. Caractersticas:
Lenguajes ms naturales. Estructura prxima a los lenguajes
naturales.
Repertorio de instrucciones amplio, potente y fcilmente utilizable.
a:=b+4

if a>b then b=0

Independientes de la mquina.
Programas legibles y ms fciles de entender.
Mantenimiento y correccin de errores ms sencilla.

Generaciones de los lenguajes:


1. Primera generacin:

Lenguajes mquina y lenguaje ensamblador.


Dependen totalmente de la mquina.
2. Segunda generacin (finales de los 50 y principios de los 60):
Fortran: Cientfico y de ingeniera.
Cobol: Aplicaciones de procesamiento de datos.
Algol: Predecesor de lenguajes de 3 generacin.
Basic: Originalmente para ensear a programar.
3. Tercera generacin (hacia los aos 70 crisis del software):
Lenguajes de programacin estructurada.
Posibilidades procedimentales y de estructura de datos.
a) De propsito general:
- Pascal: Bloques estructurados, tipificacin de datos.
-C: Originalmente para sistemas, gran flexibilidad.
- Ada: para aplicaciones de tiempo real.
b) Orientados a Objetos:
- Smalltalk.
- Eiffel.
- C++.
- Java.
c) Especializados (sintaxis diseada para una aplicacin particular):
- LISP: Demostracin de teoremas.
- Prolog: inteligencia artificial.
- Apl: tratamiento de vectores y matrices.
4. Cuarta generacin (finales de los aos 80):
Alto nivel de abstraccin.
No son necesarios detalles algortmicos.
Ejemplo: Sql (Structured Query Language) orientados a tratamiento
de datos.

Traductores
Cualquier programa escrito en un lenguaje diferente a ste debe ser
traducido antes de que el ordenador pueda ejecutarlo.
Un traductor es un programa que toma como entrada un programa escrito
en un lenguaje fuente y lo transforma en un programa escrito en lenguaje
mquina. El proceso de conversin se denomina traduccin, que puede
realizarse de dos formas diferentes: por interpretacin o por compilacin.

Compiladores e intrpretes
Intrprete: Es un programa que toma como entrada un programa escrito en
lenguaje fuente y lo va traduciendo y ejecutando instruccin por instruccin
(de una en una).
Compilador: Es un programa que toma como entrada un programa fuente y
genera un programa equivalente llamado programa objeto o cdigo objeto.
Interpretacin vs Compilacin: En el desarrollo de software, el
programador deber determinar qu tipo de herramienta utilizar para
realizar esta tarea; un interprete o un compilador. Normalmente se emplear
un compilador por las siguientes razones:
La fase de traduccin utilizando un compilador slo se realiza una
vez (la definitiva). Con un interprete hay que traducir cada vez que se
ejecuta el programa, lo que hace que dicha ejecucin sea ms lenta.
El cdigo generado por un compilador puede optimizarse, siendo as
ms eficiente.
Diferentes mdulos de un programa se pueden compilar por
separado y despus ser enlazados (linkados) para generar el
programa ejecutable final. Si se modifica un mdulo, para compilar el
programa completo bastar con traducir este mdulo y volver a
linkarlo con el resto; no es necesario volver a traducir todos los
mdulos, por lo que tambin se ahorra tiempo de compilacin.

El proceso de traduccin: Se divide en dos grandes fases: anlisis y


sntesis.

Fase de anlisis: Consiste en ver si el cdigo del programa fuente est


escrito de acuerdo a las reglas sintcticas y semnticas que define el
lenguaje fuente. Se realizan tres tipos de anlisis:
a) Anlisis lxico
- Elimina del programa fuente toda la informacin innecesaria
(espacios y lneas en blanco, comentarios, etc.).
- Comprueba que los smbolos del lenguaje (palabras clave,
operadores, ...) se han escrito correctamente.
b) Anlisis sintctico
- Comprueba si lo obtenido de la fase anterior es sintcticamente
correcto (obedece a la gramtica del lenguaje).
c) Anlisis semntico
- Comprueba el significado de las sentencias del programa.
Fase de sntesis: Consiste en generar el cdigo objeto equivalente al
programa fuente. Slo se genera cdigo objeto cuando el programa fuente
est libre de errores de anlisis, lo cual no quiere decir que el programa se
ejecute correctamente, ya que un programa puede tener errores de
concepto o expresiones mal calculadas.

Citas Bibliogrficas
Introduccin a la Programacin. Teora y Prctica.
Jess Javier Rodrguez Sala
Editorial Club Universitario, 2003

Вам также может понравиться