Download lenguajes de programación. - fundamentos de sistemas de

Document related concepts
Transcript
FUNDAMENTOS DE DESARROLLO DE SISTEMAS DE INFORMACIÓN
UNIDAD IV. HERRAMIENTAS EN EL PROCESO DE DESARROLLO DE SW
LENGUAJES DE PROGRAMACIÓN.
Es un conjunto de reglas y estándares para escribir un programa. Los lenguajes de programación sirven
para escribir programas que permitan la comunicación usuario/máquina. Los lenguajes utilizados para
escribir programas de computadoras que pueden ser entendidos por ellas se denominan lenguajes de
programación.
Los lenguajes de programación se clasifican en tres grandes categorías: máquina, bajo nivel
(ensamblador) y alto nivel.
Los lenguajes de programación cierran el abismo entre las computadoras, que sólo trabajan con números
binarios, y los humanos, que preferimos utilizar palabras y otros sistemas de numeración. Mediante los
programas se indica a la computadora qué tarea debe realizar y cómo efectuarla, pero para ello es preciso
introducir estas órdenes en un lenguaje que el sistema pueda entender. En principio, la computadora sólo
entiende las instrucciones en código máquina, es decir, el específico de la computadora. Sin embargo, a
partir de éstos se elaboran los llamados lenguajes de alto y bajo nivel.
Generaciones de los lenguajes de programación.
a. Lenguaje máquina, primera generación:
Lenguaje original de la computadora, un programa debe estar escrito en el lenguaje de la máquina
para poder ser ejecutado. Éste es generado por software y no por el programador. El programador
escribe en un lenguaje de programación, el cual es traducido al lenguaje de máquina mediante
intérpretes y compiladores. Fue utilizado en las primeras computadoras. Es un lenguaje de
programación que trabaja sin símbolos y hace referencia a las direcciones reales de la memoria y a
los códigos binarios de las instrucciones. Este lenguaje interactúa con el hardware y constituyen el
nivel más bajo de programación. Es utilizado muy raramente para el desarrollo de programas de
aplicación. También es conocido como lenguaje de primera generación. Todas las instrucciones y
datos se especifican en ceros y unos (binario). En la actualidad es poco frecuente su uso. Los
lenguajes máquina son aquellos cuyas instrucciones son directamente entendibles por la
computadora y no necesitan traducción posterior para que la UCP (Unidad Central de
Procesamiento) pueda comprender y ejecutar el programa. Las instrucciones en lenguaje máquina
se expresan en términos de la unidad de memoria más pequeña, el bit (dígito binario 0 ó bien 1),
en esencia una secuencia de bits que especifican la operación y las celdas de memoria implicadas
en una operación. Una serie de instrucciones en lenguaje máquina son:
0010 0000 0000 1001
1001 0001 1001 1110
Como se puede observar, estas instrucciones serán fáciles de leer por la computadora y difíciles
por un programador, y viceversa. Esta razón hace difícil escribir programas en código o lenguaje
máquina y requiere buscar otro lenguaje para comunicarse con la computadora, pero que sea más
fácil leer o escribir y leer por el programador. Para evitar la tediosa tarea de escribir programas en
lenguaje máquina se han diseñado otros lenguajes de programación que facilitan la escritura y
posterior ejecución de los programas. Estos programas son los de bajo y alto nivel.
b. Lenguaje de bajo nivel, o de segunda generación:
Utilizan códigos muy cercanos a los de la máquina, lo que hace posible la elaboración de
programas muy potentes y rápidos, pero son de difícil aprendizaje.
UNIDAD IV. HERRAMIENTAS EN EL PROCESO DE DESARROLLO DE SW
1
FUNDAMENTOS DE DESARROLLO DE SISTEMAS DE INFORMACIÓN
Lenguaje ensamblador. Es un lenguaje de programación de bajo nivel, en que las
instrucciones y las direcciones de memoria están representadas por símbolos. Permite la
utilización de nombres simbólicos en lugar de ceros y unos. De esta manera se podrá
utilizar la palabra "suma" para indicarle a la computadora que se requiere sumar dos
números. Este lenguaje es utilizado raramente para el desarrollo de software de aplicación y
con frecuencia es llamado lenguaje de segunda generación.
c. Lenguaje de alto nivel, tercera generación:
Por el contrario, son de uso mucho más fácil, ya que en ellos un solo comando o instrucción puede
equivaler a millares en código máquina. El programador escribe su programa en alguno de estos
lenguajes mediante secuencias de instrucciones. Antes de ejecutar el programa la computadora lo
traduce a código máquina de una sola vez (lenguajes compiladores) o interpretándolo instrucción
por instrucción (lenguajes intérpretes). Ejemplos de lenguajes de alto nivel: Pascal, Cobol, Basic,
Fortran, C++. Un Programa de computadora, es una colección de instrucciones que, al ser
ejecutadas por el UCP de una máquina, llevan a cabo una tarea o función específica. Este conjunto
de instrucciones que forman los programas son almacenados en archivos denominados archivos
ejecutables puesto que, al teclear su nombre (o hacer “clic” sobre el icono que los identifica) logras
que la computadora los cargue y corra, o ejecute las instrucciones del archivo. El contenido de un
archivo ejecutable no puede ser entendido por el usuario, ya que no está hecho para que la gente
lo lea, sino para que la computadora sea quien lo lea. Los archivos de programas ejecutables
contienen el código máquina, que la CPU identifica como sus instrucciones. Son lo que conocemos
como Programas Objeto. Dado que sería muy difícil que los programadores crearan programas
directamente en código de máquina, usan lenguajes más fáciles de leer, escribir y entender para la
gente.
El programador teclea instrucciones en un editor, que es un programa parecido a un simple
procesador de palabras, estas instrucciones son almacenadas en archivos denominados
programas fuentes (código fuente). Si los programadores necesitan hacer cambios al programa
posteriormente vuelven a correr el editor y cargan el programa fuente para modificarlo. El proceso
de conversión de programas fuente a programas objeto se realiza mediante un programa
denominado compilador. El compilador toma un programa fuente y lo traduce a programa objeto y
almacena este último en otro archivo. También se le conoce como lenguaje de tercera generación.
Generalmente se utiliza para el desarrollo de programas o software de aplicación. Su principal
característica es que una instrucción codificada en lenguaje de alto nivel equivale a varias
instrucciones en lenguaje maquinal o ensamblador. Además, las personas pueden comprender
mejor las instrucciones, y esto hace que se reduzcan el tiempo y el costo para realizar programas.
Los programas escritos en este lenguaje requieren su traducción o compilación a lenguaje
maquinal a través de unos programas denominados compiladores.
d. Lenguajes de muy alto nivel, de cuarta generación (4GL).
Es el lenguaje de muy alto nivel cuya característica principal es permitir a los usuarios con poco
conocimiento sobre computación y lenguajes de programación, desarrollar sus propios programas
de aplicación sin la participación operativa del personal del departamento de informática. Este tipo
de programas o sistemas se conoce como cómputo de usuario final. De manera común son
lenguajes que permiten la interacción directa del usuario en funciones de consulta y actualización
de información. Los lenguajes 4GL son mucho más orientados al usuario que los lenguajes de
generaciones anteriores, y los programas se desarrollan especificando instrucciones muy próximas
al lenguaje humano. Típicamente los lenguajes 4GL también se denominan lenguajes no
procedimentales, ya que los programadores simplemente especifican qué es lo que quieren que el
ordenador realice y no cómo. Estos lenguajes se utilizan en ámbitos altamente especializados o de
investigación. Un ejemplo: Visual Basic.
UNIDAD IV. HERRAMIENTAS EN EL PROCESO DE DESARROLLO DE SW
2
FUNDAMENTOS DE DESARROLLO DE SISTEMAS DE INFORMACIÓN
e. Lenguajes naturales, quinta generación.
Existen lenguajes naturales de dos tipos. Por un lado están los lenguajes humanos: el español,
inglés, etc. Por otro lado están los lenguajes de programación de quinta generación que usan un
lenguaje humano para ofrecer una relación con el ordenador más intuitiva. Los lenguajes naturales
de quinta generación están todavía en su infancia, y actualmente puede considerarse que están
más cerca de los lenguajes 4GL que de los lenguajes humanos.
TRADUCTOR.
Unos programas especiales llamados traductores (compiladores e intérpretes) convierten las instrucciones
escritas en lenguajes de programación en instrucciones escritas en lenguaje máquina (0 y 1 bits) que ésta
pueda entender
COMPILADOR.
Es un programa que traduce un lenguaje de alto nivel al lenguaje máquina. Un programa compilado indica
que ha sido traducido y está listo para ser ejecutado. La ejecución de los programas compilados es más
rápida que la de los interpretados, ya que el intérprete debe traducir mientras está en la fase de ejecución
(saca todos los errores). Un compilador es un programa que traduce el programa fuente (conjunto de
instrucciones de un lenguaje de alto nivel, por ejemplo BASIC o Pascal) a programa objeto (instrucciones
en lenguaje máquina que la computadora puede interpretar y ejecutar). Se requiere un compilador para
cada lenguaje de programación. Un compilador efectúa la traducción, no ejecuta el programa. Una vez
compilado el programa, el resultado en forma de programa objeto será directamente ejecutable. Presentan
la ventaja considerable frente a los intérpretes de la velocidad de ejecución, por lo que su uso será mejor
en aquellos programas probados en los que no se esperan cambios y que deban ejecutarse muchas
veces. En caso de que se opte por un interpretador se debe considerar que el intérprete resida siempre en
memoria. Traduce un programa que se encuentra escrito en algún lenguaje de alto nivel (programa fuente)
a lenguaje maquinal. Normalmente el compilador analiza el léxico y verifica la sintaxis del programa, y en
una segunda fase hace la traducción. Al programa compilado se le denomina programa objeto y está listo
para que la computadora lo ejecute.
Como se puede observar, los compiladores (intérpretes, traductores) son una pieza fundamental para el
trabajo del programador, ya que son los que permiten obtener código máquina directamente ejecutable de
un programa escrito en un lenguaje de más alto nivel. Las tecnologías de compilación constituyen una
parte muy importante de la evolución de los lenguajes de programación. Según los lenguajes pertenecen
a generaciones más avanzadas, se requieren compiladores más complejos.
Un aspecto muy importante de los compiladores es la idea de portabilidad, que permite producir
programas para distintos tipos de computadoras a partir de un mismo programa en algún lenguaje de alto
nivel. Por ejemplo, si tenemos un programa en el lenguaje C, y utilizamos el compilador de C para PC,
entonces podremos generar el programa en código máquina para PC con Windows y por tanto ejecutar el
programa en un PC. Si, con el mismo programa en C, utilizamos el compilador para un ordenador UNIX
de HP entonces obtendremos un ejecutable para esa máquina. Para que esto sea posible es necesario
que nuestros programas no utilicen funciones particulares a ninguna máquina. En muchas ocasiones es
imposible evitar usar este tipo de funciones.
EDITOR.
Un editor es un programa que permite escribir texto o números en un archivo utilizando un formato
estándar (ASCII). Es distinto de un procesador de textos en el sentido de que cada procesador de textos
UNIDAD IV. HERRAMIENTAS EN EL PROCESO DE DESARROLLO DE SW
3
FUNDAMENTOS DE DESARROLLO DE SISTEMAS DE INFORMACIÓN
utiliza sus códigos propios para organizar el texto y la impresión del mismo; por eso los textos creados por
un procesador sólo pueden ser leídos con ese procesador. Mientras que todos los editores escriben con
un mismo código estándar. Existen en los procesadores de texto mandatos especiales para pasar un
documento a formato texto del DOS.
DEPURADOR.
Cuando se escriben programas, es normal cometer errores (bugs). De hecho, en promedio, un
programador comete un error cada 10 líneas de programa. Esto significa que la probabilidad de que el
programa funcione a la primera vez es prácticamente nula. Por lo tanto, el desarrollo de un programa
siempre incorpora una etapa de depuración (debugging), que consiste en buscar y resolver los errores
cometidos durante la programación. Para facilitar la etapa de depuración es conveniente usar
herramientas especializadas para estos efectos. La más común es el depurador o también llamado
“debugger”.
Un depurador es una herramienta que permite intervenir durante la ejecución de un programa, para saber
cómo se está ejecutando. El depurador permite:
Ejecutar paso a paso un programa (stepping).
Establecer puntos de detención (breakpoints).
Examinar el contenido de las variables y objetos.
Conocer el encadenamiento de llamadas de procedimientos.
Retomar la ejecución hasta un nuevo punto de detención.
Depuración manual:
Cuando no se dispone de un depurador, se debe recurrir a la depuración manual. Ésta consiste en
preparar el programa para poder conocer cómo se está ejecutando el programa. La técnica más usual de
depuración de programas consiste en colocar instrucciones para imprimir en puntos estratégicos del
programa, desplegando el contenido de las variables.
Referencias:
o
o
Hernández,
Antonio
y
Ramos
Raúl.
¿Qué
es
la
informática
aplicada
las ciencias del deporte?. Recuperado en noviembre de 2003, de http://www.efdeportes.com/efd33a/informa.htm
Méndez,
Justo.
Lenguajes
de
Programación.
Recuperado
en
noviembre
de
2003,
http://www.monografias.com/trabajos/lengprog/lengprog.shtml
Actividad:
o REALIZAR EN EQUIPO DE 2 LA SÍNTESIS DE ESTE MATERIAL. Llenar el cuadro y
presentar ejemplos.
UNIDAD IV. HERRAMIENTAS EN EL PROCESO DE DESARROLLO DE SW
4
a
de