Está en la página 1de 10

UNIDAD 3.

INTRODUCCION A LA INVSTIGACION

Caracteristicas del lenguaje de programacion


Lenguaje de programacin

Captura de la microcomputadora Commodore PET-32 mostrando un programa en el


lenguaje de programacin BASIC, bajo el emulador VICE en una distribucin GNU/Linux.
Un lenguaje de programacin es un idioma artificial diseado para expresar procesos que
pueden ser llevadas a cabo por mquinas como lascomputadoras. Pueden usarse para
crear programas que controlen el comportamiento fsico y lgico de una mquina, para
expresar algoritmos con precisin, o como modo de comunicacin humana. 1 Est formado
por un conjunto de smbolos y reglas sintcticas y semnticas 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 y se mantiene elcdigo fuente de un programa informtico se le llama
programacin.
Tambin la palabra programacin se define como el proceso de creacin de
un programa de computadora, mediante la aplicacin de procedimientos lgicos, a travs
de los siguientes pasos:

El desarrollo lgico del programa para resolver un problema en particular.

Escritura de la lgica del programa empleando un lenguaje de programacin


especfico (codificacin del programa).

Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de mquina.

Prueba y depuracin del programa.

Desarrollo de la documentacin.

Existe un error comn que trata por sinnimos los trminos 'lenguaje de programacin' y
'lenguaje informtico'. Los lenguajes informticos engloban a los lenguajes de programacin
y a otros ms, como por ejemplo HTML (lenguaje para el marcado de pginas web que no

es propiamente un lenguaje de programacin, sino un conjunto de instrucciones que


permiten disear el contenido de los documentos).
Permite especificar de manera precisa sobre qu datos debe operar una computadora,
cmo deben ser almacenados o transmitidos y qu acciones debe tomar bajo una variada
gama de circunstancias. Todo esto, a travs de un lenguaje que intenta
estar relativamente prximo al lenguaje humano o natural. Una caracterstica relevante de
los lenguajes de programacin es precisamente que ms de un programador pueda usar un
conjunto comn de instrucciones que sean comprendidas entre ellos para realizar la
construccin de un programa de forma colaborativa.

Estructura bsica de un programa.


Las partes principales de un programa estn relacionadas con dos bloques: declaraciones
e instrucciones.
En las instrucciones podemos diferenciar tres partes fundamentales
Entrada de Datos:
La constituyen todas las instrucciones que toman los datos de entrada desde un dispositivo
externo y los almacena en la memoria principal para que puedan ser procesados.

Proceso o algoritmo: Est formado por las instrucciones que modifican los objetos a
partir de su estado inicial (datos de entrada) hasta el estado final (resultados) dejando los
objetos que lo contiene disponibles en la memoria principal.

Salida de resultados: Conjunto de instrucciones que toman los datos finales (resultado)
de la memoria principal y los envan a los dispositivos externos.

El teorema de Bhm y Jacopini (1966) dice que un programa propio puede ser escrito
utilizando slo tres tipos de estructuras de control:
1. Estructura secuencial
Una estructura de programa es secuencial si las instrucciones se ejecutan una tras otra, a
modo de secuencia lineal, es decir que una instruccin no se ejecuta hasta que finaliza la
anterior, ni se bifurca el flujo del programa.
zz

2. Estructura selectiva o de seleccin


La estructura selectiva permite que la ejecucin del programa se bifurque a una instruccin
(o conjunto) u otra/s, segn un criterio o condicin lgica establecida, slo uno de los
caminos en la bifurcacin ser el tomado para ejecutarse.

Estructura de control selectiva simple

Estructura de control selectiva doble

Estructura de control selectiva multiple

3. Estructura de control cclica o repetitiva

Estructura de control desde

Estructura de control mientras

para esta estructuras son necesarios los operadores logicos y de relacin.


Operadores de relacin
Mayor a

>

Menor a

<

Mayor o igual a

>=

Menor o igual a

<=

Diferente a

~=

Operadores lgicos
Y (and)

&

O (or)

No (not)

Exclusivo o (or)

xor

Con el uso de los operadores de relacin se construyen las condiciones simples y con el
uso de los operadores de relacin y lgicos se construyen las condiciones compuestas.

Anidamiento
El cuerpo de cualquier estructura puede ser instrucciones simples u otras estructuras, que
a su vez pueden contener a otras.

Traduccin de un programa: compilacin, enlace de un programa, errores en tiempo


de compilacin.
Un compilador es un programa informtico que traduce un programa escrito en un
lenguaje de programacin a otro lenguaje de programacin, generando un programa
equivalente que la mquina ser capaz de interpretar. Usualmente el segundo lenguaje es
lenguaje de mquina, pero tambin puede ser un cdigo intermedio (bytecode), o
simplemente texto. Este proceso de traduccin se conoce como compilacin. []
Un compilador es un programa que permite traducir el cdigo fuente de un programa en
lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de mquina).
De esta manera un programador puede disear un programa en un lenguaje mucho ms
cercano a cmo piensa un ser humano, para luego compilarlo a un programa ms
manejable por una computadora.
Partes de un compilador
La construccin de un compilador involucra la divisin del proceso en una serie de fases
que variar con su complejidad. Generalmente estas fases se agrupan en dos tareas: el
anlisis del programa fuente y la sntesis del programa objeto.

Anlisis: Se trata de la comprobacin de la correccin del programa fuente, e


incluye las fases correspondientes al Anlisis Lxico (que consiste en la
descomposicin del programa fuente en componentes lxicos), Anlisis Sintctico
(agrupacin de los componentes lxicos en frases gramaticales ) y Anlisis

Semntico (comprobacin de la validez semntica de las sentencias aceptadas en


la fase de Anlisis Sintctico).

Sntesis: Su objetivo es la generacin de la salida expresada en el lenguaje objeto


y suele estar formado por una o varias combinaciones de fases de Generacin de
Cdigo (normalmente se trata de cdigo intermedio o de cdigo objeto) y de
Optimizacin de Cdigo (en las que se busca obtener un cdigo lo ms eficiente
posible).

Alternativamente, las fases descritas para las tareas de anlisis y sntesis se pueden
agrupar en Front-end y Back-end:

Front-end: es la parte que analiza el cdigo fuente, comprueba su validez, genera


el rbol de derivacin y rellena los valores de la tabla de smbolos. 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 Anlisis Lxico y la Generacin de
Cdigo Intermedio.

Back-end: es la parte que genera el cdigo mquina, especfico de una plataforma,


a partir de los resultados de la fase de anlisis, realizada por el Front End.

Esta divisin permite que el mismo Back End se utilice para generar el cdigo mquina de
varios lenguajes de programacin distintos y que el mismo Front End que sirve para
analizar el cdigo fuente de un lenguaje de programacin concreto sirva para generar
cdigo mquina en varias plataformas distintas. Suele incluir la generacin y optimizacin
del cdigo dependiente de la mquina.
El cdigo que genera el Back End normalmente no se puede ejecutar directamente, sino
que necesita ser enlazado por un programa enlazador (linker).

Preproceso

Lo primero que el compilador de C hace es pasar nuestro programa por el


preprocesador.El preprocesador se encarga de interpretar cada una de las directivas que
aparecen en el programa y de expandir las macros. Respecto a las directivas, son todos a
aquellas lneas que comienzan con un smbolo #. Hay un conjunto de directivas que son
parte del estndar ANSI se comentan en el apndice.

Compilacin del programa.

Una vez que el programador acaba de escribir el programa en su terminal y lo almacena


en un archivo debe traducirlo a cdigo ejecutable por la maquina. Este proceso se llama
en su conjunto compilacin del cdigo fuente en C.
#include<stdio.h>
Hace que se inserte el fichero stdio.h en el lugar donde aparece esa lnea. Como el lector
puede ver si examina el fichero stdio.h, lo que hay en el son declaraciones de prototipos
de funciones y de tipos de datos, perfectamente validos en C.
El compilador se encarga de la etapa de preproceso, justo antes de iniciar la compilacin.
Por lo tanto , esta etapa pasa normalmente desapercibida, aunque puede indicrsele al
compilador que solo efectu el preproceso, para ver cmo queda el programa despus de
l. La forma de solicitrselo depende de cada compilador en concreto. Una vez finalizado
el preproceso , nuestro programa que da listo para que pueda comenzarse su traduccin
a cdigo ejecutable.

Enlace

La siguiente etapa de compilacin es el enlace con las funciones presentes en las


libreras de funciones. Si nuestro programa utiliza solo funciones ANSI, no suele ser
necesario indicarle al compilador en que libreras estn esas funciones. Sin embargo hay
excepciones. Por ejemplo si utilizamos funciones matemticas de la librera estndar en
nuestro programa (es decir en el programa aparece #include< math.h>, opcin lm. Sin
embargo, si utilizamos funciones definidas en una librera propia o bien en una librera no
estndar, debemos indicrselo al compilador mediante algn parmetro.

Errores en tiempo de compilacin

El compilador es capaz de detectar algunos errores que pueden cometerse en el


desarrollo de un programa escrito en C. Evidentemente, no puede detectar todos ya que
un programa puede funcionar perfectamente pero no hacer lo que se espera de l. Los
errores detectados por el compilador son de dos clases: errores propiamente dichos
(errors), y advertencias (warnings)

Los errores se deben a cuestiones sintcticas relacionadas con el lenguaje. El compilador


enumera los errores que se encontraron, y luego detiene la compilacin. El mensaje de
error que aparece siempre indica al menos tres cosas:
*El nombre del fichero en donde se ha encontrado el error.
*la lnea del fichero en donde se ha detectado el error.
*un mensaje describiendo brevemente el error.

Las advertencias no indican errores, sino que llaman la atencin al programador sobre los
posibles usos incorrectos del lenguaje. Las advertencias, a diferencia de los errores no
detienen el proceso de compilacin, pero casi siempre sealan un error oculto. En
general, si aparece un warning hay que intentar eliminarlo. Si el compilador encuentra el
error , intentara seguir compilando el programa para encontrar todos los errores posibles,
detenindose cuando le resulte imposible seguir.

Ejecucin de un programa.
A un programa en ejecucin se le suele llamar tambin proceso.
El proceso de ejecucin de un programa escrito en un lenguaje de programacin y
mediante un compilador tiene 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 con el compilador.
4. Verficar y corregir errores de compilacin.
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.

Se denomina tiempo de ejecucin (runtime en ingls) al intervalo de tiempo en el que


un programa de computadora se ejecuta en un sistema operativo. Este tiempo se inicia
con la puesta en memoria principal del programa, por lo que el sistema operativo
comienza a ejecutar sus instrucciones. El intervalo finaliza en el momento en que ste
enva al sistema operativo la seal de terminacin, sea sta una terminacin normal, en
que el programa tuvo la posibilidad de concluir sus instrucciones satisfactoriamente, o
una terminacin anormal, en el que el programa produjo algn error y el sistema debi
forzar su finalizacin.
Este trmino suele emplearse, en oposicin a tiempo de compilacion, para indicar si una
accin o hecho sucede en uno u otro tiempo.

ELEMENTOS BSICOS DE UN PROGRAMA


En programacin se debe separar la diferencia entre el diseo del algoritmo y su
implementacin en un lenguaje especfico. Por ello, se debe distinguir claramente entre los
conceptos de programacin y el medio en que ellos se implementan en un lenguaje
especfico.
Sin embargo, una vez que se comprendan los conceptos de programacin, como
utilizarlos, la enseanza de un nuevo lenguaje es relativamente fcil.
Los lenguajes de programacin como los restantes lenguajes- tienen elementos bsicos
que se utilizan como bloques constructivos, as como reglas para las que esos elementos
se combinan. Estas reglas se denominan sintaxis del lenguaje. Solamente las
instrucciones
sintcticamente correctas pueden ser interpretadas por la computadora y los programas
que contengan errores de sintaxis con rechazados por la mquina.
Los elementos bsicos constitutivos de un programa o algoritmo son:
. palabras reservadas (inicio, fin, si entonces..., etc),
. identificadores (nombres de variables esencialmente),
. Caracteres especiales (coma, apstrofo, etc.),
. constantes,
. variables,
. expresiones,
. instrucciones.
Adems de estos elementos bsicos, existen otros elementos que forman parte de los
programas, cuya comprensin y funcionamiento ser vital para el correcto diseo de un
algoritmo y naturalmente la codificacin del programa.

Estos elementos son:


. bucles,
. contadores,
. acumuladores,
. interruptores,
. estructuras:
- secuenciales,
- selectivas,
- repetitivas.
El amplio conocimiento de todos los elementos de programacin y el modo de su
integracin en los programas constituyen las tcnicas de programacin que todo buen
programador debe conocer.

Errores en tiempo de ejecucin.


Los errores en tiempo de ejecucin son los que se producen durante la ejecucin del
programa. Son los ms difciles de encontrar, no son detectados por el compilador, ya que
son errores de lgica, no de sintaxis.Aunque al compilar un programa no de errores, el
programa puede funcionar incorrectamente y/o a dar errores durante su ejecucin. Por
ejemplo:
Un programa puede producir resultados errneos, al equivocarnos (errores lgicos) al
programar el algoritmo (sumar en vez de restar, etc.).
Un programa puede interrumpirse bruscamente, por ejemplo si tenemos que hacer una
divisin y el divisor es cero,etc.
Los errores que se pueden producir en la fase de compilacin son:
Errores fatales: Son raros. Indican errores internos del compilador.Cuando ocurren la
compilacin se detiene inmediatamente.
Errores de sintaxis: Son los errores tpicos de sintaxis. No detienen la compilacin sino
que al finalizar sta se mostrar la lista con todos los errores encontrados. Algunos
errores suelen ser consecuencia de otros cometidos con anterioridad. Con este tipo de
errores no se puede obtener un programa objeto y por lo tanto tampoco el ejecutable.
Advertencias o avisos (warnings): Indican que hay lneas de cdigo sospechosas que
a pesar de no infringir ninguna regla sintctica, el
compilador las encuentra susceptibles de provocar un error. Cuando se detecta un
warning la compilacin no se detiene. Si en un programa
fuente slo se detectan warnings s que se podr obtener un programa objeto, que tras el
linkado dar lugar a un programa ejecutable.

Encontrar la causa que los provoca es una labor en ocasiones complicada, razn por la

cual los EID


(Entornos Integrados de Desarrollo,) nos proporcionan una herramienta llamada
Depurador que nos ayuda a encontrar los errores lgicos y dems errores producidos en
tiempo de ejecucin.
Un depurador (debugger), es un programa diseado especficamente para la deteccin,
verificacin y correccin de errores. Los depuradores nos permiten trazar el programa
(ejecutarlo sentencia a sentencia) y visualizar el contenido de las variables y direcciones
de memoria durante la ejecucin del programa.
Adems permiten alterar el flujo de ejecucin del mismo, cambiar los valores de
las variables e introducir puntos de parada.

También podría gustarte