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

Carlos R. del Razo Chias.

Lenguaje de programacin I
Tarea 1
1. Programa (Software).
Es una secuencia de operaciones especificadas en un determinado lenguaje de
programacin, cada una de las cuales determina las operaciones que debe realizar la
computadora para la resolucin de un problema.
2. Programacin.
Un programa se escribe en un lenguaje de programacin y las operaciones que conducen
a expresar un algoritmo en forma de programa se llaman Programacin. As pues, los
lenguajes utilizados para escribir programas de computadora son los Lenguajes de
programacin, y Programadores son los escritores y diseadores de programas.
El proceso de traducir un algoritmo en pseudocdigo1 a un lenguaje de programacin se
denomina Codificacin, y el algoritmo escrito en un lenguaje de programacin se
denomina Cdigo fuente.
En la realidad las computadoras no entienden directamente los lenguajes de programacin
sino que se requiere un programa que traduzca el cdigo fuente a otro lenguaje que s
entiende la mquina directamente, pero que es muy complejo para las personas; este
lenguaje se conoce como Lenguaje mquina y el cdigo correspondiente como Cdigo
mquina.
Los programas que traducen el cdigo fuente escrito en un lenguaje de programacin a
cdigo mquina se denominan Traductores.
2.1.

Niveles de programacin.

Trata de explicar como un programa escrito con un determinado lenguaje de programacin


es finalmente ejecutado por una computadora. En este aspecto se habla de tres niveles de
programacin:
1) El nivel de especificacin del problema a solucionar con un programa.
2) El nivel del lenguaje de programacin, donde representaremos los datos y las
sentencias (instrucciones, rdenes) del nivel de especificacin con la gramtica de
un lenguaje de programacin.
3) El nivel mquina, el cual consiste en un modelo simplificado de la arquitectura
interna de una computadora.
2.2.

Paradigmas de programacin.

1 Descripcin de alto nivel de un algoritmo informtico de programacin, compacto e informal, que utiliza las
convenciones estructurales de un lenguaje de programacin verdadero, pero que est diseado para la lectura
humana en lugar de la lectura mquina, y con independencia de cualquier otro lenguaje 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: es 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.
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.
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.
Programacin orientada a objetos: 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:
a) Clase.- Tipo de dato con unas determinadas propiedades y una determinada
funcionalidad (ejemplo: clase persona).
b) 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, ).
c) Herencia.- Propiedad con 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).

3. Lenguajes de programacin.
El diccionario define los lenguajes de programacin como un conjunto de caracteres,
smbolos, representaciones y reglas que permiten introducir y tratar la informacin en una
computadora. Este tipo de lenguaje lo clasificaramos como un Lenguaje artificial.
Para definir un lenguaje de programacin es necesario especificar:
1) El conjunto de smbolos y palabras clave utilizables.
2) Las reglas gramaticales para construir sentencias 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.

3.1.

Tipos de lenguajes.

Desde un punto de vista general, los lenguajes se pueden clasificar en lenguajes de


procedimiento y lenguajes declarativos. En los primeros (como Pascal y C), con el
lenguaje se especifica paso a paso el procedimiento que ha de realizar el ordenador para
procesar la informacin, mientras que en los segundos (como PROLOG) se declaran
hechos que han de dirigir las respuestas de la mquina.
3.2.

Clasificacin de los lenguajes de programacin.

Atendiendo a diferentes criterios podemos clasificar los lenguajes de programacin segn:

1)

Estilos de programacin.
a)
Imperativos: conjunto de instrucciones secuenciales.
b)
Declarativos: Se dividen en:
- Funcionales: basados en funciones formadas por expresiones, los
datos llegan a ellas por una serie de argumentos.
- Lgicos: basados en el clculo de predicados.
c)
Orientados a objetos: centrados en los objetos que van a manipular y no
en la lgica requerida para manipularlos.

2)

Herramienta de creacin y/o ejecucin.


a)
Lenguajes Ensamblados: son una representacin simblica de las
instrucciones
correspondientes
a
una
arquitectura
especfica.
(Ensamblador).
b)
Lenguajes Compilados: son traducidos desde un lenguaje de alto nivel a
lenguaje mquina o bien, a lenguaje ensamblador. (C, BASIC, PASCAL,).
c)
Lenguajes Interpretados: cada instruccin es analizada y ejecutada a la
vez. (HTML, PHP,).
d)
Lenguajes Preprocesados: traducidos primeramente a un lenguaje
intermedio de ms bajo nivel y posteriormente ejecutados. (JAVA).

3)

Atendiendo a su desarrollo histrico.


a)
Primera generacin: asociados a las primeras computadoras, muy
complicados, y en general especficos de cada mquina.
b)
Segunda generacin: son los lenguajes previos a los ms conocidos
actualmente y que se encuentran muy cerca del lenguaje mquina.
c)
Tercera generacin: son los lenguajes ms utilizados actualmente y
basados en un funcionamiento procedural (basados en un conjunto de
instrucciones que definen la forma de solucionar un problema).
d)
Cuarta generacin: son los basados en programacin visual y orientada
a objetos.
e)
Quinta generacin: Creados para la inteligencia artificial y para el
procesamiento de lenguajes naturales.
4) Segn su aplicacin.

a)

b)

c)

d)

e)

3.3.
1)

Cientfico: permiten la solucin de problemas donde existe una alta


manipulacin de nmeros usando principios matemticos y estadsticos
(FORTRAN, C,).
Procesamiento de datos: permiten al programador elaborar programas
donde el fin principal es el de crear, mantener y extraer datos contenidos
en registros y archivos (PL/1, COBOL,).
Procesamiento de texto: su principal caracterstica es la de procesar
texto en lenguaje natural. El texto procesado no tiene ninguna restriccin
en cuanto al lenguaje de programacin utilizado para el desarrollo de
aplicaciones de textos (SNOBOL, XML,).
Inteligencia artificial: permiten la implementacin de aplicaciones que
simulan un comportamiento inteligente. Estos lenguajes son muy
utilizados en aplicaciones como juegos de ajedrez, programas de
comprensin de lenguaje natural, robtica y sistemas expertos (LISP,
PROLOG,).
Programacin de sistemas: permiten el desarrollo de programas que
hacen interfaz entre la computadora, el programador y/o el operador.
Dentro de las aplicaciones comnmente desarrolladas en estos lenguajes
tenemos: compiladores, ensambladores, traductores, sistemas operativos,
etc. Dos de las caractersticas que poseen las aplicaciones que se pueden
desarrollar con estos lenguajes son: la necesidad de tratar con sucesos
impredecibles o excepcionales y la necesidad de coordinar actividades de
varios programas o tareas ejecutndose asncronamente. (C, ADA,
MODULA,)
Desarrollo histrico de los lenguajes de programacin.

Lenguajes Mquina
mquina de forma
informacin utilizando
en lenguaje mquina
finita de unos y ceros.

(cdigo mquina): es el lenguaje que comprende la


directa. Internamente, el ordenador representa la
nicamente unos y ceros. Por tanto, un programa escrito
(o cdigo mquina) estar formado por una secuencia
01011010 10101010

Este lenguaje rara vez se emplea para programar ya que tiene muchos
inconvenientes:

Difcil de escribir y de entender.


Laboriosa modificacin y correccin de errores.
Depende del Hardware (distintos ordenadores -> distintos lenguajes
mquina).

Repertorio reducido de instrucciones.

2)

Lenguajes Simblicos: estos lenguajes utilizan smbolos para la construccin


de sentencias de forma que son ms fciles de entender y corregir.
Lenguaje de bajo nivel (ensamblador). Consta de una serie de palabras
(mnemotcnicos) que hacen referencia a las instrucciones del ordenador.
Caractersticas:

Las instrucciones se representan utilizando mnemotcnicos.


Permiten utilizar la notacin decimal, que utilizamos normalmente, y la
hexadecimal, que es ms prctica para la manipulacin de grupos de
bits.
Trabajan con posiciones de memoria relativas haciendo uso de
etiquetas.
Los datos se referencian por un nombre.
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.
Es necesario un proceso de traduccin para ejecutar un programa
escrito en lenguaje ensamblador.

Lenguaje de medio nivel: Son aquellos que, basndose en los juegos de


instrucciones disponibles (chip set), permiten el uso de funciones a nivel
aritmtico, pero a nivel lgico dependen de literales en ensamblador. Estos
lenguajes estn orientados a procedimientos. Los procedimientos se
componen de procesos. Ejemplos: C y BASIC.
Lenguajes de alto nivel. Estos lenguajes se basan en un proceso de
abstraccin de los elementos de la arquitectura de Von Neumann. Este
proceso tiene un doble cometido: por un lado, el lenguaje de programacin se
independiza de los detalles hardware de la mquina, y por otro lado,
proporciona una notacin ms prxima a la especificacin algortmica de los
problemas que queremos resolver. Permiten que con pocas palabras se logre
hacer lo mismo que se logra con un lenguaje de bajo 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

3.4.

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

Traductores de lenguaje: el proceso de traduccin de un programa.

Se ha visto que el lenguaje que entiende la mquina directamente es el cdigo mquina.


Cualquier programa escrito en un lenguaje diferente a ste debe ser traducido antes de
que el ordenador pueda ejecutarlo. El proceso de traduccin de un programa fuente
escrito en un lenguaje de alto nivel a un lenguaje mquina comprensible por la
computadora se realiza mediante programas llamados Traductores.
Un traductor es un programa que toma como entrada un programa escrito en un lenguaje
fuente (lenguaje comprensible para un intrprete humano empleado para escribir
programas de ordenador) y lo transforma en un programa escrito en lenguaje mquina,
este proceso de conversin se denomina traduccin. Los traductores se dividen en
Compiladores e Intrpretes.
3.5.

Compiladores e intrpretes.

Interprete 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). El
sistema de traduccin consiste en: traducir la primera sentencia del programa a lenguaje
mquina, se detiene la traduccin, se ejecuta la sentencia; a continuacin, se traduce la
siguiente sentencia, se detiene la traduccin, se ejecuta la sentencia y as sucesivamente
hasta terminar el programa.
Compilador es un programa que toma como entrada un programa fuente, escritos en
lenguaje de alto nivel, y los traduce a lenguaje mquina, generando un programa
equivalente llamado programa objeto o cdigo objeto. La traduccin del programa
completo se realiza en una sola operacin denominada Compilacin del programa, es
decir, se traducen todas las instrucciones del programa en un solo bloque. El programa
compilado y depurado (eliminados los errores del cdigo fuente) se denomina programa
ejecutable porque ya se puede ejecutar directamente y cuantas veces se desee; solo
deber volver a compilarse de nuevo en el caso que se modifique alguna instruccin del
programa. De este modo el programa ejecutable no necesita del compilador para su
ejecucin. Los lenguajes compiladores tpicos ms utilizados son: C, C++, JAVA, C#,
PASCAL, FORTRAN y COBOL.
En el desarrollo de software, el programador deber determinar qu tipo de herramienta
utilizar para realizar esta tarea; un intrprete o un compilador. Normalmente se utilizar
un compilador por las siguientes razones:

La fase de traduccin utilizando un compilador slo se realiza una vez (la definitiva).
Con un intrprete 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.
3.6.

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.) y comprueba que
los smbolos del lenguaje (palabras clave, operadores,) se han escrito
correctamente.
b) Anlisis Sintctico (la forma correcta de escribir las sentencias y los datos
de cualquier programa): comprueba si lo obtenido de la fase anterior es
sintcticamente correcto (obedece a la gramtica del lenguaje).
c) Anlisis Semntico (define el significado de las sentencias y los datos que
han sido correctamente escritos): 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 normalmente,
ya que un programa puede tener errores de concepto o expresiones mal calculadas.

3.7.

La compilacin y sus fases.

La compilacin es el proceso de traduccin de programas fuente a programas objeto. El


programa objeto obtenido de la compilacin ha sido traducido normalmente a cdigo
mquina.
Para conseguir el programa mquina real se debe utilizar un programa llamado montador
o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje mquina
directamente ejecutable.
El proceso de ejecucin de un programa escrito en un lenguaje de programacin y
mediante un compilador suele tener los siguientes pasos:
1) Escritura del programa fuente con un editor (programa que permite a una
computadora actuar de modo similar a una mquina de escribir electrnica) y
guardarlo en un dispositivo de almacenamiento.
2) Introducir el programa fuente en memoria.
3) Compilar el programa.
4) Verificar y corregir errores de compilacin (listado de errores).
5) Obtencin del programa objeto.
6) El enlazador (linker) obtiene el programa ejecutable.
7) Se ejecuta el programa y, si no existen errores, se tendr la salida del programa.

Referencias.
Berlanga Llavori, R., Garca Sevilla, P., Gracia Luengo, I., Iesta Quereda, J. M., & Barber Miralles, F.
(2000). Introduccin a la programacin con Pascal. Castelln de la plana: Universitat Jaume.
Lpez, V. (s.f.). Introduccin a la programacin: Pascal. Madrid.
Rodrguez Sala, J. (2003). Introduccin a la programacin: teora y prctica. Alicante: Club
Universitario.

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